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

Napsat komentář