Close

Led ws2812b pomoc

Úvodní stránka Fórum Vaše projekty Arduino Led ws2812b pomoc

Aktuálně je na stránce zobrazeno 15 příspěvků - 16. až 30. (celkem z 52)
  • Autor
    Příspěvky
  • #8100
    keksik334
    Účastník

    jo brzdovku uz tam mam 😀 ale zadne animace dalsi 😀
    jinak zeptam se je mozny aby bral vstup pro sepni az treba nad dva volty?

    #8101
    Vojtěch Vosáhlo
    Účastník

    Jestli chápu správně otázku, tak na vstup arduina můžete pustit až 5v. Ale nejsem si jistej že je to to na co jste se ptal ?

    #8103
    keksik334
    Účastník

    jde o to ze mi to falesne spousti… tak ze budu muset dat asi odpor mezi zem a vstupni pin? uz ho tam mam nabastlenej a pak to funguje

    #8104
    Vojtěch Vosáhlo
    Účastník

    Jo, to je důležitý a já to nezmínil… Když jse to měl bez odporu, arduino dostávalo 2 stavy, high a floating, to je ale špatně, my chceme aby dostávalo high a low a to se vyřeší právě tím pulldown rezistorem na zem. Dalo by se to vyřešit i v programu, dá se udělat to stejné v procesoru, ale většinou se to tak nedělá. Kdyby něco ještě zlobilo, tak je možný že na pinu arduina je malé napětí. Teď by tam měly být asi 4 volty když je na blinkru napětí pokud se nepletu. Kdyby jste dělal s menšími napětímy, musí se brát v potaz že arduino má hranici napětí někde kolem 1,6 v, aspoň myslím. Míň než 1.6 je 0 a nad 1.6 je 1.
    Hodně štěstí s dalšími projekty.

    #8105
    keksik334
    Účastník

    tak a ted dalsi orisek 😀 je mozne aby poustel zaroven animaci kdyz je na obou pinech HIGH?
    tehne stav dela to kdyz sepnu oba tak jednou pusti levej podruhe pravej pasek a tak se to strida 🙂

    #8106
    Vojtěch Vosáhlo
    Účastník

    Zas takový oříšek to není 😀

    Nahoru do kódu, k těm všem defines vložíte tohle:

    ////////////POCET LED JEDNOHO Z PASKU
    #define NUM_LEDS NUM_LEDS_L_PASEK

    Musí to být pod nastavením levého pásku, nebo níže…

    Hlavní smyčka void loop bude vypadat takhle:

    void loop() {
        if(digitalRead(P_BLINKR_PIN) && !digitalRead(L_BLINKR_PIN))
        {
          colorWipe(0xff,0xa2,0x00, 40, 1);
          colorWipe(0x00,0x00,0x00, 5, 1);
        }
    
        if(digitalRead(L_BLINKR_PIN) && !digitalRead(P_BLINKR_PIN))
        {
          colorWipe(0xff,0xa2,0x00, 40, 0);
          colorWipe(0x00,0x00,0x00, 5, 0);
        }
    
         if(digitalRead(L_BLINKR_PIN) && digitalRead(P_BLINKR_PIN))
        {
          colorWipe(0xff,0xa2,0x00, 40, 2);
          colorWipe(0x00,0x00,0x00, 5, 2);
        }
      
    }

    A toto:

    if(pasek == 2){
        for(uint16_t i=0; i<NUM_LEDS; i++) {
          setPixelL_PASEK(i, red, green, blue);
          setPixelP_PASEK(i, red, green, blue);
          showL_PASEK();
          showP_PASEK();
          delay(SpeedDelay);
         }
        }

    přidáte do funkce ColorWipe pod obě if co už tam jsou.
    Tohle by mělo vše vyřešit.

    Pokud se chcete kouknout kde má co být, celý kód by měl vypadat asi takto http://pastebin.com/cqmXj9J8

    #8107
    keksik334
    Účastník

    super az to pofrci zkusim to
    ted mam ale jiny problem 😀
    kdyz mam vse zapojene v moto nechce mi to spustit animaci
    kdyz pichnu pin na 5v arduina spusti se animace ale jakmile se napichnu na blinkr nesepne
    je fakt ze se to blbe meri kolik tam je jak to broblikava ne pokazde ho stihnu zmerit merakem ale obcas to stihne a zmeri treba 2,5v nebo 3v a arduino nesepne

    #8108
    Vojtěch Vosáhlo
    Účastník

    Nemá cenu zkoušet 😀
    2.5 nebo 3 na pinu arduina? Už za tím děličem? Na světla by mělo jít 12v ne? Zkuste to přeměřit třeba na brzdovce, jestli je tam opravdu 12v. Pak zkontrolujte polaritu, na jaký části blinkru je + a na jaký – Pokud nic moc nezjistíte, nahrajte přiložený program do arduina, přendejte jeden z děličů na pin arduina A0 a otevřete ser. monitor (Ctrl + Shift + M) na 9600 baud. Pojedou vám tam hodnoty pinu A0. Pusťte blinkr a pozorujte hodnoty, kdyžtak sem pak hoďte co vám vyjíždí když svítí blinkr.

    const int analogInPin = A0;  
    int sensorValue = 0;     
    void setup() {
    
      Serial.begin(9600);
    }
    
    void loop() {
    
      sensorValue = analogRead(analogInPin);
    
      Serial.print(sensorValue);
      delay(100);
    }
    #8109
    Vojtěch Vosáhlo
    Účastník

    Oprava, to předtím ani nemusíte zkoušet!
    Teď jsem ještě koukal a 3v jsou přesně někde na té arduino hranici LOW a HIGH.
    Co jste použil za rezistory na dělič a jaké je napětí na světle, ně na pinu arduina?

    #8111
    keksik334
    Účastník

    tim jak to docela rychle blika nejsem schopnej to zmerit ale par krat jem tam videl 12V delic mam 220k 100k

    #8112
    keksik334
    Účastník

    ted jsem to napojil na svetlo ktere neblika je tam 13,6v za delicem mam 4v a ani to mi to nesepne jenom kdyz ho dam na 5v arduina nebo 3,3 to taky sepne ale tech 4 za delicem ne

    #8113
    Vojtěch Vosáhlo
    Účastník

    Pokud to sepne 3.3v z arduina je problém jinde

    Nemáte při ruce přesnější rozdíl? nějaké dva které by se opravdu lišily o polovinu nebo o trochu míň? Jako třeba 100k a 140-160k? Těch +20k na tě 220 už z toho dělá trochu moc malý napětí.

    Jedna další věc, která mi netrkla, spojte ZEM arduina se ZEMÍ jednoho z těch blinkrů, pak by to mělo jít.

    Pozor aby to byly opravdu země, ať si neodpálíte arduino. A vy arduino nenapájíte z motorky?

    #8114
    keksik334
    Účastník

    mam pouze 10k,100k,220k zkusim 10k a 5k

    #8117
    Vojtěch Vosáhlo
    Účastník

    Jak jsem napsal nahoře…

    Jedna další věc, která mi netrkla, ale musí tam být. Spojte ZEM arduina se ZEMÍ jednoho z těch blinkrů, pak by to mělo jít.

    Pozor aby to byly opravdu země, ať si neodpálíte arduino. A vy arduino nenapájíte z motorky?

    Přestřelujem se tu komentářema a já jsem vždy pozadu 😀

    #8118
    keksik334
    Účastník

    arduino je napajene z motorky prez7805 propojil jsem zem arduina se zemi blinkru a porad nic 😀 odpory jsem nemenil 10k a 5K mam to zkusit?

Aktuálně je na stránce zobrazeno 15 příspěvků - 16. až 30. (celkem z 52)
  • Pro reakci na toto téma se musíte přihlásit.