Hľadať kód

Lekcia 98-6: Hojdacia LED hra s Arduinom

Lekcia 98-6: Hojdacia LED hra s Arduinom

Projekt seesaw LED je klasickým cvičením pre začiatočníkov, ktoré učí jeden z najdôležitejších konceptov programovania Arduino: ako striedať dva výstupy v časovom rytme. Pomocou iba dvoch LED, dvoch rezistorov a niekoľkých prepojovacích vodičov zostavíte obvod, v ktorom sa zelená a červená LED striedajú v svietení, napodobňujúc pohyb hore a dole detskej hojdačky. Je to jednoduchá konštrukcia, ale predstavuje základné stavebné prvky — definície pinov, časové konštanty a sekvenčné volania digitalWrite() — ktoré sa objavujú takmer v každom Arduino skici, ktorú kedy napíšete.

dve LED s rezistorom na nepájivom poli pripojené k Arduinu
dve LED s rezistorom na nepájivom poli pripojené k Arduinu

Pretože vzor hojdačky je v skutočnosti len "zapni jednu vec, vypni ju, zapni druhú vec, vypni ju, opakuj," rovnaká štruktúra sa škáluje do desiatok praktických použití. Tu je niekoľko nápadov, ktoré podnietia vašu predstavivosť:

  • Striedavé indikačné svetlá — pár "bezpečné / upozornenie" na ovládacom paneli, ktorý sa strieda tam a späť.
  • Simulácia železničného priecestia — dve lampy blikajúce striedavo, keď sa blíži vlak.
  • Dvojsmerná značka — zobrazenie šípky "choď tam / choď onam" pre príjazdovú cestu alebo parkovisko.
  • Sviatočná dekorácia — červené a zelené LED si vymieňajú miesta pre sviatočný blikajúci efekt.
  • Základ pre učenie — zručnosti v časovaní a sekvenovaní sú tu rovnaké, aké neskôr použijete pre semafory, chodiace svetlá a multi-LED animácie.

Ako funguje efekt hojdačky

LED je dióda, ktorá emituje svetlo, a jej symbol je trojuholník smerujúci na čiaru. Plochá čiara je katóda (negatívna) a zadná časť trojuholníka je anóda (pozitívna). Na fyzickej LED je dlhšia nožička anóda a kratšia, plochá nožička je katóda. Prúd tečie od anódy ku katóde, takže anóda sa pripája k pinu Arduina a katóda sa pripája cez rezistor k zemi (vo videu v 02:29).

Rezistor je dôležitý. Typická malá LED chce približne 2 V na sebe a asi 10 mA prúdu. Ak vaše Arduino dodáva 5 V, zvyšné 3 V musí zniesť rezistor. Pomocou Ohmovho zákona, R = V / I = 3 V / 0,01 A = 300 Ω. Čokoľvek od asi 300 Ω do 1000 Ω bude fungovať — vyššie hodnoty jednoducho robia LED tmavšou (vo videu v 03:49).

Pre hojdačku sú obe LED zapojené identicky: každá anóda ide na svoj vlastný pin Arduina a každá katóda ide cez svoj vlastný rezistor na spoločnú zemniacu lištu. Jediný rozdiel medzi nimi je, ku ktorému pinu sú pripojené.

Hardvér a komponenty

  • 1 × Arduino doska (Uno, Nano, Mega alebo podobná)
  • 2 × LED — jedna červená, jedna zelená (fungujú akékoľvek dve farby)
  • 2 × rezistory, 300 Ω až 1000 Ω (220 Ω alebo 330 Ω sú bežné voľby)
  • 1 × nepájivé pole
  • Prepojovacie vodiče (DuPont vodiče)
  • USB kábel pre programovanie a napájanie

To je všetko — žiadne tlačidlá, žiadne potenciometre, žiadne senzory. Toto je zámerne najskromnejší možný zoznam súčiastok, aby ste sa mohli plne sústrediť na logiku kódu.

Sprievodca zapojením

Arduino schéma pre dve LED hojdačka
Arduino schéma pre dve LED hojdačka
Arduino zapojenie pre dve LED hojdačka
Arduino zapojenie pre dve LED hojdačka

Zapojenie je symetrické a ľahko sledovateľné. Vložte obe LED do nepájivého poľa. Pripojte anódu (dlhšiu nožičku) zelenej LED k Arduinu pin 2 a anódu červenej LED k Arduinu pin 3. Každá katóda (kratšia nožička) sa pripája k jednému koncu svojho vlastného rezistora a druhý koniec oboch rezistorov sa spája so spoločnou lištou, ktorá vedie k GND pinu Arduina (vo videu v 27:45).

Pretože obe LED zdieľajú rovnakú zemniacu lištu, je potrebný iba jeden zemniaci vodič z nepájivého poľa späť k Arduinu. Dva signálne vodiče — jeden k pinu 2, jeden k pinu 3 — sú jediné spojenia, ktoré sa medzi oboma LED menia.

Vysvetlenie kódu

Skica je zámerne krátka, aby každý riadok mal význam. Tu sú časti, ktoré budete skutočne chcieť upraviť:

Definície pinov

const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED

Tieto dve konštanty hovoria Arduinu, ku ktorým pinom sú LED pripojené. Ak ste svoje LED zapojili k iným pinom — napríklad pin 8 a pin 9 — toto je jediné miesto, ktoré potrebujete zmeniť. Kľúčové slovo const znamená, že hodnota je pevná počas životnosti programu a nemôže byť neskôr náhodne prepísaná.

Časová konštanta

const int ON_TIME = 500;

Táto jediná hodnota určuje, ako dlho zostane každá LED rozsvietená, v milisekundách. Predvolená hodnota 500 znamená, že každá LED svieti pol sekundy, takže celý cyklus zelená-potom-červená trvá jednu sekundu. Znížte ju na 200 pre rýchle blikanie alebo zvýšte na 1000 pre pomalý, zámerný rytmus jednej sekundy na LED (vo videu v 30:17). Keďže obe LED zdieľajú túto konštantu, vždy zostávajú synchronizované — hojdačka zostáva vyvážená.

Nastavenie

Vnútri setup() sú dva piny deklarované ako výstupy pomocou pinMode() a sériový monitor sa spustí na 9600 baudov, takže môžete sledovať, ako sa posúvajú správy o stave LED. Toto sa spustí raz, keď sa doska zapne.

Slučka

Funkcia loop() je miesto, kde sa hojdačka odohráva. Vykonáva štyri akcie v poradí: rozsvieti zelenú LED, počká ON_TIME milisekúnd, zhasne ju, potom to isté urobí s červenou LED. Keď slučka dosiahne koniec, automaticky sa spustí od začiatku — to je celé správanie „hojdačky". Neexistuje žiadna stavová premenná ani žiadna podmienka na kontrolu, pretože vzor je čisto sekvenčný.

Živý projekt a demonštrácia

Po nahratí kódu uvidíte, že zelená LED svieti pol sekundy, potom červená LED, potom opäť zelená, donekonečna. Otvorenie sériového monitora (Nástroje → Sériový monitor alebo Ctrl+Shift+M) zobrazuje „Green LED ON" a „Red LED ON" vytlačené počas behu vzoru, čo je praktický spôsob, ako potvrdiť, že časovanie zodpovedá tomu, čo ste nastavili.

Skúste zmeniť ON_TIME na 200 a znova nahrať — LED budú viditeľne rýchlejšie striedať. Nastavte ju na 1000 a hojdačka sa stane pomalým, zámerným striedaním. Môžete tiež odpojiť Arduino od USB a napájať ho z batérie alebo 5 V adaptéra; náčrt beží identicky, pretože je už uložený v pamäti dosky.

Súvisiace projekty z tohto videa

Kapitoly

  • [00:00] Prehľad 10 Arduino LED projektov
  • [01:22] Úvod do kurzu Arduino krok za krokom
  • [02:29] Pochopenie LED: symbol, anóda a katóda
  • [03:49] Výpočet sériového odporu LED pomocou Ohmovho zákona
  • [27:32] Predstavenie projektu hojdačky LED
  • [27:45] Schéma zapojenia projektu hojdačky
  • [28:28] Vysvetlenie kódu hojdačky
  • [30:06] Demonštrácia hojdačky s rôznym časovaním
  • [30:47] Prehľad projektu bežiaceho svetla
  • [36:41] Bežiace svetlo ovládané tlačidlom
  • [42:25] LED pruhový merač napätia s potenciometrom
  • [49:25] Projekt Arduino semafor

Obrázky

Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
330_ohm_resistor
330_ohm_resistor
dve LED s rezistorom na nepájivom poli pripojené k Arduino
dve LED s rezistorom na nepájivom poli pripojené k Arduino
938-Lessson 98-LED-6: Arduino code two LED, See-saw
Jazyk: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Súbory📁

Knižnice Arduino (zip)

Používateľská príručka