Close

TinyLab: Používáme LED

Arduino kit TinyLab - tlačítka

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

Napsat komentář