V minulém dílu jsme se zabývali potenciometrem, který nalezneme na desce TinyLab. Dnes se budeme věnovat čtveřici LED ve spodním rohu desky.
Nastavení přepínačů
LED jsou připojené k pinům (zleva) 13, 12, 11, 10. Proto musíme přepnout spínače u těchto pinů na desce Leonardo do polohy ON. Jedná se o přepínače označené čísly 5, 6, 7 a 8. Také přepneme trojici spínačů pod sedmisegmentovým displejem do polohy To Control LEDs.
Nyní už si můžeme ledkami zablikat, třeba pomocí následujícího kódu.
void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); } void loop() { digitalWrite(13, HIGH); digitalWrite(12, HIGH); digitalWrite(11, HIGH); digitalWrite(10, HIGH); delay(500); digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, LOW); digitalWrite(10, LOW); delay(500); }
Zkrácení pomocí pole
Nyní si celý příklad přepíšeme pomocí pole a cyklů. Čísla pinů LED si uložíme do pole, kterým pak budeme v cyklech procházet.
byte leds[] = {10, 11, 12, 13}; void setup() { for(byte i = 0; i < 4; i++){ pinMode(leds[i], OUTPUT); } } void loop() { for(byte i = 0; i < 4; i++){ digitalWrite(leds[i], HIGH); } delay(500); for(byte i = 0; i < 4; i++){ digitalWrite(leds[i], LOW); } delay(500); }
Blikající had
Když už máme piny LED v jednom poli, můžeme jednoduše vytvořit program, který bude pořád dokola diodami blikat jednou po druhé.
byte leds[] = {10, 11, 12, 13}; void setup() { for(byte i = 0; i < 4; i++){ pinMode(leds[i], OUTPUT); } } void loop() { for(byte i = 0; i < 4; i++){ digitalWrite(leds[i], HIGH); delay(500); digitalWrite(leds[i], LOW); delay(500); } }
Měníme rychlost pohybu
Budeme dále pokračovat v úpravách předchozího kódu a umožníme měnit rychlost pohybu LED při běhu programu. Využijeme k tomu komponentu z minulého dílu – potenciometr. Nezapomeňte přepnout přepínač u analogového pinu A0 do polohy ON (je označený pouze nulou, jen na levé straně desky Leonardo).
byte leds[] = {10, 11, 12, 13}; void setup() { for(byte i = 0; i < 4; i++){ pinMode(leds[i], OUTPUT); } } void loop() { for(byte i = 0; i < 4; i++){ int pot = analogRead(A0); digitalWrite(leds[i], HIGH); delay(pot); digitalWrite(leds[i], LOW); delay(pot); } }
Dnes to bylo jednoduché, že? Napadne vás další úprava blikání? Podělte se v komentářích, nebo na našem novém fóru arduino-forum.cz.
Tak zase příště u představení další komponenty.