Lekcija 98-8: Svjetlo za hodanje s tipkalom i LED diodama pomoću Arduina
Ovaj projekat vam pokazuje kako napraviti "hodajuće svjetlo" koje napreduje jedan korak svaki put kada pritisnete dugme. Umjesto svjetla koje radi po vlastitom tajmeru, dobijate direktnu, taktilnu kontrolu: svaki pritisak pomjera osvijetljenu LED diodu za jednu poziciju naprijed, a nakon posljednje LED diode vraća se na prvu. Ovo je jedan od najkorisnijih gradivnih blokova u učenju Arduina, jer vas uči kako kombinovati digitalni ulaz (dugme) sa rotirajućim automatom stanja (koja LED dioda je trenutno upaljena) — obrazac koji ćete stalno koristiti.
Kada jednom shvatite ovaj obrazac, ista logika pokreće ogroman spektar stvarnih projekata. Evo nekoliko praktičnih ideja koje možete napraviti s njim:
- Selektor menija na uređaju gdje svaki pritisak ističe sljedeću opciju.
- Sekvencijalni indikator koraka za mašinu ili proces (korak 1, korak 2, korak 3...).
- Prikaz rezultata ili nivoa koji ručno pomjerate pomoću dugmeta.
- Indikator "sljedeći kanal" ili "sljedeći način rada" za kontroler rasvjete.
- Jednostavna igra ili kviz gdje igrači naizmjenično pale sljedeću lampicu.
- Sekvencer releja ili opterećenja gdje svaki pritisak aktivira sljedeći izlaz po redu.
Ključna prednost u odnosu na automatsko pokretno svjetlo je kontrola: ništa se ne dešava dok ne pritisnete, tako da svjetlo napreduje samo kada vi odlučite. Video također napominje da ista ideja prebacivanja i sekvenciranja može pokretati relej za uključivanje AC svjetla ili kontrolu motora, ne samo LED dioda (u videu na 19:52).
Hardver i komponente
Lista dijelova je kratka i jeftina:
- Arduino ploča (Uno, Nano, Mega ili bilo koja kompatibilna ploča).
- Pet LED dioda — 5 mm ili 3 mm, bilo koje boje koje želite.
- Pet otpornika za ograničavanje struje, 200 Ω do 1000 Ω (video koristi 1 kΩ).
- Jedan prekidač na pritisak (momentarni taktilni prekidač je idealan).
- Breadboard i nekoliko DuPont kablova.
Kratka napomena o LED diodama: katoda je kraća nožica i strana s ravnom ivicom, dok je anoda duža nožica (u videu na 03:13). Vrijednost otpornika nije kritična — veći otpornik jednostavno čini LED diodu tamnijom, tako da će bilo šta od oko 300 Ω do 1000 Ω raditi dobro (u videu na 05:33).
Vodič za povezivanje
Povezivanje je u suštini isto kao kod standardnog pokretnog svjetla s pet LED dioda, uz dodano jedno dugme. Anoda svake LED diode spaja se na vlastiti Arduino pin, a svaka katoda se preko vlastitog otpornika spaja na zajedničku ground šinu na breadboardu. U ovoj izradi LED diode su povezane na pinove 3, 4, 5, 6 i 7 (u videu na 31:37). Dugme se postavlja na breadboard s jednom nožicom na ground i drugom nožicom na pin 2 — isti pin koji kod koristi za dugme (u videu na 37:04).
Pošto kod omogućava Arduino interni pull-up otpornik, nije potreban vanjski otpornik na dugmetu. Kada dugme nije pritisnuto, pin čita HIGH, a kada ga pritisnete, pin se povlači na ground i čita LOW (u videu na 14:02).
Objašnjenje koda
Kompletan program je dostupan ispod ovog članka. Ovdje se fokusiramo na dijelove koje ćete zapravo htjeti mijenjati.
Na vrhu skice, svaka LED dioda i dugme su dodijeljeni pinu. Ovdje prilagođavate izradu da odgovara vašem vlastitom povezivanju:
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
Varijabla LED_ON je srce projekta. Pamti koja LED dioda je trenutno osvijetljena, počevši od LED1. Svaki put kada pritisnete dugme, kod pomjera LED_ON na sljedeću LED diodu u nizu i gasi prethodnu, tako da je uvijek upaljena samo jedna LED dioda.
Također postoji malo kašnjenje nakon svakog pritiska:
delay(200); // debounce / give the user time between presses
Ova pauza od 200 milisekundi sprječava da se jedan fizički pritisak registruje kao više pritisaka. Ako vam se prst trese ili dugme djeluje preosjetljivo, povećajte ovaj broj; ako želite brži odziv, smanjite ga. Imajte na umu da ako ga postavite prenisko, svjetlo može neočekivano preskočiti naprijed (u videu na 41:20).
Glavna logika se nalazi u loop(). Ona čita dugme, i samo kada je dugme pritisnuto (očitavanje LOW) pomjera svjetlo naprijed. Sekvenca koristi lanac if / else if provjera za prelazak sa LED1 na LED2 na LED3, i tako dalje, vraćajući se na LED1 nakon posljednje. Ako želite promijeniti smjer ili redoslijed LED dioda, ovo je blok koji treba urediti — jednostavno ponovo dodijelite koji pin slijedi koji.
Projekat uživo i demonstracija
Nakon uploadovanja koda, pritiskom na dugme pali se prva LED dioda; otpuštanjem dugmeta ta LED dioda ostaje upaljena. Sljedeći pritisak pomjera svjetlo na drugu LED diodu, zatim treću, četvrtu i petu, a sljedeći pritisak se vraća na prvu — neprekidna rotacija (u videu na 40:22).
Lijepa nuspojava kašnjenja od 200 milisekundi je da ako držite dugme pritisnuto, svjetlo nastavlja napredovati samostalno svakih 200 milisekundi, što projekt efektivno pretvara u automatsko pokretno svjetlo dok je dugme držano (u videu na 42:07). Otpustite dugme i ono se zaustavlja na trenutnoj LED diodi. Ovo vam daje i ručno pomjeranje i rad bez ruku pomoću jednog dugmeta.
Ako biste radije da svjetlo radi automatski bez ikakvog dugmeta, to je zasebna izrada. Automatska verzija je obrađena u Lekcija 98-7: Pokretno svjetlo korištenjem Arduino i 5 LED dioda.
Povezani projekti iz ovog videa
- Lekcija 98-1: Kako uključiti i isključiti LED diodu pomoću Arduino
- Lekcija 98-2: Kako uključiti i isključiti LED diodu pomoću push dugmeta sa Arduino
- Lekcija 98-3: Kako uključiti/isključiti toggle LED diodu pomoću push dugmeta sa Arduino
- Lekcija 98-4: Postepeno paljenje i gašenje LED svjetla pomoću Arduino: Kontrola svjetline
- Lekcija 98-5: Postepeno paljenje svjetla kada je dugme pritisnuto pomoću Arduino
- Lekcija 98-6: Seesaw LED igra sa Arduino
- Lekcija 98-7: Pokretno svjetlo korištenjem Arduino i 5 LED dioda
- Lekcija 98-9: LED mjerač napona pomoću Arduino ili pokretno svjetlo sa potenciometrom
- Lekcija 98-10: Arduino semafor
Poglavlja
- [00:00] Pregled 10 Arduino LED projekata
- [01:22] Uvod u Arduino kurs korak po korak
- [02:29] Razumijevanje LED dioda: simboli, polaritet i pinovi
- [03:49] Izračunavanje otpornika za ograničavanje struje LED diode
- [30:47] Pokretno svjetlo sa 5 LED dioda: ožičenje i princip
- [32:52] Kod pokretnog svjetla: pinovi, tajming i petlja
- [36:41] Pomjeranje svjetla pomoću push dugmeta
- [37:44] Pokretno svjetlo sa push dugmetom: objašnjenje koda
- [40:22] Demonstracija i podešavanje kašnjenja pritiska
- [57:16] Završne napomene i odjava kursa
This code has not been parsed yet. Please return to the admin panel to parse it.
Stvari koje bi vam mogle zatrebati
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Resursi i reference
-
DokumentacijaDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Eksterno
-
Eksterno
-
Eksterno
Datoteke📁
Arduino biblioteke (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Korisnički priručnik
-
SunFounder 3-u-1 Arduino Smart Car priručnik za sastavljanjeOvaj dokument prikazuje korak po korak sastavljanje SunFounder 3-u-1 Arduino Smart Car-a
SunFounder_car_assembly_manual.pdf1.20 MB