Close

TinyLab: Používáme LED

Arduino Kit TinyLab All-in-one

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.

Zbyšek Voda

Zbyšek Voda

Už nějaký čas se zajímám o věci kolem Internetu věcí a otevřeného hardware a software. Tak jsem se také v roce 2010 dostal k Arduinu, pro které dodnes programuji a taky píšu články o práci s ním. Baví mě vymýšlet, jak staré věci používat novým způsobem.
Zbyšek Voda

Latest posts by Zbyšek Voda (see all)

Napsat komentář