Lekcia 98-8: Chôdza so svetlom pomocou tlačidla a LED diód s Arduinom
Tento projekt vám ukáže, ako zostaviť „kráčajúce svetlo“, ktoré sa posunie o jeden krok vždy, keď stlačíte tlačidlo. Namiesto svetla, ktoré beží na vlastnom časovači, získate priamu, hmatovú kontrolu: každé stlačenie posunie rozsvietenú LED o jednu pozíciu dopredu a po poslednej LED sa vráti späť na prvú. Toto je jeden z najužitočnejších stavebných blokov pri učení sa s Arduinom, pretože vás naučí kombinovať digitálny vstup (tlačidlo) s rotujúcim stavovým automatom (ktorá LED práve svieti) — vzor, ktorý budete neustále opakovane používať.
Keď raz pochopíte tento vzor, tá istá logika poháňa obrovské množstvo reálnych projektov. Tu je niekoľko praktických nápadov, ktoré s ním môžete zostaviť:
- Selektor ponuky na zariadení, kde každé stlačenie zvýrazní ďalšiu možnosť.
- Sekvenčný indikátor krokov pre stroj alebo proces (krok 1, krok 2, krok 3...).
- Zobrazenie skóre alebo úrovne, ktoré posúvate manuálne tlačidlom.
- Indikátor „ďalší kanál“ alebo „ďalší režim“ pre ovládač osvetlenia.
- Jednoduchý herný alebo kvízový bzučiak, kde si hráči striedavo rozsvecujú ďalšiu lampu.
- Sekvencer relé alebo záťaže, kde každé stlačenie aktivuje ďalší výstup v poradí.
Kľúčovou výhodou oproti automatickému bežiacemu svetlu je kontrola: nič sa nedeje, kým nestlačíte, takže svetlo sa posunie len vtedy, keď sa vy rozhodnete. Video tiež poznamenáva, že tá istá myšlienka prepínania a sekvencovania môže poháňať relé na spínanie AC svetla alebo ovládanie motora, nielen LED (vo videu v 19:52).
Hardvér a komponenty
Zoznam dielov je krátky a lacný:
- Doska Arduino (Uno, Nano, Mega alebo akákoľvek kompatibilná doska).
- Päť LED — 5 mm alebo 3 mm, akékoľvek farby sa vám páčia.
- Päť rezistorov obmedzujúcich prúd, 200 Ω až 1000 Ω (video používa 1 kΩ).
- Jeden tlačidlový spínač (ideálny je momentový taktilný spínač).
- Nepájivá doska a niekoľko prepojovacích vodičov DuPont.
Rýchla poznámka k LED: katóda je kratšia nožička a strana s plochým okrajom, zatiaľ čo anóda je dlhšia nožička (vo videu v 03:13). Hodnota rezistora nie je kritická — vyšší rezistor jednoducho stlmí LED, takže čokoľvek od približne 300 Ω do 1000 Ω bude fungovať dobre (vo videu v 05:33).
Sprievodca zapojením
Zapojenie je v podstate rovnaké ako pri štandardnom päť-LED kráčajúcom svetle, s pridaným jedným tlačidlom. Anóda každej LED sa pripája k vlastnému pinu Arduina a katóda každej LED sa pripája cez vlastný rezistor k spoločnej zemniacej lište na nepájivej doske. V tejto zostave sú LED pripojené k pinom 3, 4, 5, 6 a 7 (vo videu v 31:37). Tlačidlo je umiestnené na nepájivej doske jednou nožičkou k zemi a druhou nožičkou k pinu 2 — rovnaký pin, ktorý kód používa pre tlačidlo (vo videu v 37:04).
Pretože kód povoľuje interný pull-up rezistor Arduina, na tlačidle nie je potrebný žiadny externý rezistor. Keď tlačidlo nie je stlačené, pin číta HIGH, a keď ho stlačíte, pin sa stiahne k zemi a číta LOW (vo videu v 14:02).
Vysvetlenie kódu
Celý program je k dispozícii pod týmto článkom. Tu sa zameriame na časti, ktoré budete skutočne chcieť zmeniť.
V hornej časti náčrtu je každá LED a tlačidlo priradené k pinu. Tu prispôsobíte zostavu tak, aby zodpovedala vášmu vlastnému zapojeniu:
const int pushButtonPin = 2; // push button pin
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int LED_ON = LED1; // which LED is currently lit
Premenná LED_ON je srdcom projektu. Pamätá si, ktorá LED práve svieti, pričom začína na LED1. Zakaždým, keď stlačíte tlačidlo, kód posunie LED_ON na ďalšiu LED v sekvencii a vypne predchádzajúcu, takže vždy svieti len jedna LED.
Po každom stlačení je tiež malé oneskorenie:
delay(200); // debounce / give the user time between presses
Táto 200 milisekundová pauza zabraňuje tomu, aby sa jedno fyzické stlačenie zaregistrovalo ako viacero stlačení. Ak sa vám trasie prst alebo sa tlačidlo zdá príliš citlivé, zvýšte toto číslo; ak chcete rýchlejšiu odozvu, znížte ho. Majte na pamäti, že príliš nízke nastavenie môže spôsobiť, že svetlo neočakávane preskočí dopredu (vo videu v 41:20).
Hlavná logika sa nachádza v loop(). Číta tlačidlo a iba keď je tlačidlo stlačené (čítanie LOW), posunie svetlo. Sekvencia používa reťazec kontrol if / else if na prechod z LED1 na LED2 na LED3 atď., pričom sa po poslednej vráti späť na LED1. Ak chcete zmeniť smer alebo poradie LED diód, toto je blok, ktorý treba upraviť — jednoducho priraďte, ktorý pin nasleduje po ktorom.
Živý projekt a demonštrácia
Po nahratí kódu stlačenie tlačidla rozsvieti prvú LED diódu; uvoľnenie ju nechá svietiť. Ďalšie stlačenie presunie svetlo na druhú LED diódu, potom na tretiu, štvrtú a piatu a nasledujúce stlačenie sa vráti na prvú — nepretržité otáčanie (vo videu v čase 40:22).
Príjemným vedľajším efektom oneskorenia 200 milisekúnd je, že ak tlačidlo podržíte stlačené, svetlo sa samo posúva každých 200 milisekúnd, čím sa projekt efektívne zmení na automatické kráčajúce svetlo, kým je tlačidlo podržané (vo videu v čase 42:07). Uvoľnite tlačidlo a zastaví sa na aktuálnej LED dióde. To vám poskytuje manuálne krokovanie aj beh bez rúk z jedného tlačidla.
Ak by ste radšej chceli, aby svetlo bežalo automaticky úplne bez tlačidla, to je samostatná konštrukcia. Automatická verzia je pokrytá v Lekcia 98-7: Kráčajúce svetlo pomocou Arduino a 5 LED diód.
Súvisiace projekty z tohto videa
- Lekcia 98-1: Ako zapnúť a vypnúť LED diódu pomocou Arduino
- Lekcia 98-2: Ako zapnúť a vypnúť LED diódu pomocou tlačidla s Arduino
- Lekcia 98-3: Ako zapnúť/vypnúť prepínaciu LED diódu pomocou tlačidla s Arduino
- Lekcia 98-4: Stmievanie LED svetla pomocou Arduino: ovládanie jasu
- Lekcia 98-5: Stmievanie svetla pri stlačení tlačidla pomocou Arduino
- Lekcia 98-6: Hra s LED diódami na hojdačke s Arduino
- Lekcia 98-7: Kráčajúce svetlo pomocou Arduino a 5 LED diód
- Lekcia 98-9: Merač úrovne napätia LED pomocou Arduino alebo kráčajúce svetlo s potenciometrom
- Lekcia 98-10: Arduino semafor
Kapitoly
- [00:00] Prehľad 10 Arduino LED projektov
- [01:22] Úvod do kurzu Arduino krok za krokom
- [02:29] Pochopenie LED diód: symboly, polarita a piny
- [03:49] Výpočet rezistora obmedzujúceho prúd LED
- [30:47] Kráčajúce svetlo s 5 LED diódami: zapojenie a princíp
- [32:52] Kód kráčajúceho svetla: piny, časovanie a slučka
- [36:41] Posúvanie svetla pomocou tlačidla
- [37:44] Kráčajúce svetlo s tlačidlom: prehľad kódu
- [40:22] Demonštrácia a úprava oneskorenia stlačenia
- [57:16] Záverečné poznámky a ukončenie kurzu
This code has not been parsed yet. Please return to the admin panel to parse it.
Veci, ktoré by ste mohli potrebovať
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Zdroje a referencie
-
DokumentáciaDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Externé
-
Externé
-
Externé
Súbory📁
Knižnice Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Používateľská príručka
-
Montážny manuál SunFounder 3-v-1 Arduino Smart CarTento dokument ukazuje krok za krokom montáž SunFounder 3-v-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB