řeším problém s kombinací arduino pro mini a pásek adresovatelných led diod WS2812b.
Napájení 5V zdroj dostatečně silný, DIN na pinu 6 seriově přes odpor 470 ohmu, 15ks led diod, u pásku mám kondenzátor 470 mikro Faradů.
Kód následující:
Kód: Vybrat vše
#include <Adafruit_NeoPixel.h> // přičlenění knihovny
#define pocet 15 // počet LED v pásku
#define pin 6 // výstup signálu na pinu
Adafruit_NeoPixel LED = Adafruit_NeoPixel(pocet,pin,NEO_GRB + NEO_KHZ800);
// inicializace - definuje objekt LED třídy Adafruit_NeoPixel, parametry jsou počet diod v řadě
// pin pro výstup signálu, pořadí barev a kmitočet pulzů
int zelena,cervena,modra; // pracovní proměnné
void setup() {
LED.begin(); // vynulování paměti vyhrazené LED
}
void loop() { // smyčka demonstračního programu
for (int barva=0; barva<=6; barva++){ // ... pro 7 barev
switch (barva) { // nastavení složek aktuální barvy
case 0: {zelena = 255; cervena = 0 ; modra = 0 ; break;}
case 1: {zelena = 255; cervena = 255; modra = 0 ; break;}
case 2: {zelena = 0 ; cervena = 255; modra = 0 ; break;}
case 3: {zelena = 0 ; cervena = 255; modra = 255; break;}
case 4: {zelena = 0 ; cervena = 0 ; modra = 255; break;}
case 5: {zelena = 255; cervena = 0 ; modra = 255; break;}
case 6: {zelena = 255; cervena = 255; modra = 255; break;}
}
for (int i=0; i<pocet; i++){ // nalití barvy do všech LED
LED.setPixelColor(i, zelena, cervena, modra); // nastavení jedné LED
LED.show(); // přenesení dat do fyzických LED
delay(50); // zpomalení nalití
}
for (int i=255; i>=0; i--){ // stmívání všech LED současně
LED.setBrightness(i); // nastavení jasu
delay(3); // zpomalení stmívání
LED.show(); // přenesení dat do fyzických LED
}
LED.setBrightness(255); // vrácení jasu na plnou hodnotu
} // konec cyklu pro jednu barvu
}
Pokud udělám stejné zapojení s Arduino Nano, vše běží bez problémů. Nevím kde může být problém. U Pro Mini jsem zkoušel i jiné piny, u kterých je v technickém listě uvedeno, že umí PWM.
Nesetkal jste se někdo s tímto problémem, případně nenapadá někoho, čím by to mohlo být způsobené?
Děkuji.
L.