0

Arduino LED pronásledovač

V tomto Arduino projektu pro začátečníky si vytvoříme LED pronásledovač s využitím 12 LED diod na nepájivém poli. Ukázkový program pro tento projekt vytváří iluzi pohybu jedné LED diody zleva doprava a zpět, přičemž v ten stejný čas se pohybuje druhá LED dioda zprava doleva.

Video uvedené níže ukazuje finální verzi projektu s LED pronásledovačem.

Potřebné součástky

Pro sestrojení LED pronásledovače potřebujeme následující součástky:

  • 12 LED diod
  • 12 odporů o hodnotě 220 až 470 ohmů (dle typu LED diody)
  • Arduino UNO nebo podobnou Arduino desku
  • Nepájivé pole a propojovací vodiče

Schéma zapojení

Celý obvod můžete sestavit podle schématu uvedeného níže. Obvod obsahuje zapojení LED diody s odporem, které se opakuje pro všech 12 LED diod. Tyto LED diody s odpory jsou pak zapojeny mezi Arduinem a jeho piny D2 až D13 a zemí.

Odpory zobrazené na obrázku mají hodnotu 470 ohmů, ale podle použitých LED diod a volby svítivosti je možné vybrat odpory s hodnotou cca 220 až 470 ohmů.

Dual LED Chaser Arduino Project Breadboard Layout

Dual LED Chaser Arduino Project Circuit Diagram

Ukázkový kód LED pronásledovače

Po úspěšném zapojení celého obvodu stačí zkopírovat uvedený ukázkový kód a nahrát ho do připojené Arduino desky. Po úspěšném nahrání můžete pozorovat pronásledování dvou LED diod.

Rychlost, jakou se přepínají jednotlivé LED diody, lze nastavit pomocí změny proměnné SPEED_MS, přičemž tato proměnná odpovídá rychlosti přechodu mezi LED diodami v milisekundách.

// change speed of display here
#define SPEED_MS  100

Zvýšením hodnoty proměnné SPEED_MS docílíme zpomalení přechodu LED diod a naopak snížením času docílíme rychlejšího pohybu. Pokud zadáme velice malé hodnoty, můžeme dostat pro naše oko konstantní svit všech LED diod.

//---------------------------------------------------------------------
//  Program:      dual_chaser
//
//  Description:  12 LED dual chaser. One led moves from left to right
//                while the second LED moves from right to left.
//                LEDs and series resistors connected to pins 2 to 13.
//
//  Date:         8 April 2016      Author: W.A. Smith
//                http://startingelectronics.org
//---------------------------------------------------------------------

// change speed of display here
#define SPEED_MS  100

void setup() {
  // set up pins 2 to 13 as outputs
  for (int i = 2; i <= 13; i++) {
    pinMode(i, OUTPUT);
  }
}

uint16_t chase2 = 13; // keeps track of second LED movement

void loop() {
  // move first LED from left to right and second from right to left
  for (int i = 2; i < 13; i++) {
    allLEDsOff();
    digitalWrite(i, HIGH);      // chaser 1
    digitalWrite(chase2, HIGH); // chaser 2
    chase2--;
    // stop LEDs from appearing to stand still in the middle
    if (chase2 != 7) {
      delay(SPEED_MS);
    }
  }

  // move first LED from right to left and second LED from left to right
  for (int i = 13; i > 2; i--) {
    allLEDsOff();
    digitalWrite(i, HIGH);      // chaser 1
    digitalWrite(chase2, HIGH); // chaser 2
    chase2++;
    // stop LEDs from appearing to stand still in the middle
    if (chase2 != 8) {
      delay(SPEED_MS);
    }
  }
}

// function to switch all LEDs off
void allLEDsOff(void)
{
  for (int i = 2; i <= 13; i++) {
    digitalWrite(i, LOW);
  }
}

Převzato a přeloženo: https://startingelectronics.org/beginners/arduino-projects-for-beginners/dual-chaser/

Arduino Uno, Mega, Senzory, Moduly za

VÝHODNOU CENU

Luboš

Napsat komentář

Vaše emailová adresa nebude zveřejněna.