Lecția 98-6: Joc LED cu balansoar folosind Arduino
Proiectul LED cu balansoar este un exercițiu clasic pentru începători care predă unul dintre cele mai importante concepte din programarea Arduino: alternarea a două ieșiri într-un ritm temporizat. Folosind doar două LED-uri, două rezistențe și câteva fire de conexiune, vei construi un circuit în care un LED verde și un LED roșu se aprind pe rând, imitând mișcarea sus-jos a unui balansoar din parc. Este o construcție simplă, dar introduce elementele de bază fundamentale — definirea pinilor, constantele de temporizare și apelurile secvențiale digitalWrite() — care apar în aproape fiecare schiță Arduino pe care o vei scrie vreodată.
Deoarece modelul de balansoar este de fapt doar „aprinde un lucru, stinge-l, aprinde celălalt lucru, stinge-l, repetă", aceeași structură se extinde în zeci de utilizări practice. Iată câteva idei pentru a-ți stimula imaginația:
- Lumini indicatoare alternative — o pereche „sigur / alertă" pe un panou de control care alternează.
- Simulare de trecere la nivel cu calea ferată — două lămpi care clipesc alternativ pe măsură ce un tren se apropie.
- Indicator de direcție cu două benzi — un afișaj cu săgeți „încoace / încolo" pentru o alee de acces sau o parcare.
- Decorațiune de sărbători — LED-uri roșii și verzi care își schimbă locul pentru un efect festiv de clipire.
- Fundament de învățare — abilitățile de temporizare și secvențiere de aici sunt aceleași pe care le vei folosi mai târziu pentru semafoare, lumini de mers și animații cu mai multe LED-uri.
Cum funcționează efectul de balansoar
Un LED este o diodă care emite lumină, iar simbolul său este un triunghi care indică spre o linie. Linia plată este catodul (negativ), iar spatele triunghiului este anodul (pozitiv). Pe un LED fizic, piciorul mai lung este anodul, iar piciorul mai scurt, cu latura plată, este catodul. Curentul circulă de la anod la catod, astfel încât anodul se conectează spre pinul Arduino, iar catodul se conectează printr-un rezistor la masă (în video la 02:29).
Rezistența contează. Un LED mic tipic are nevoie de aproximativ 2 V la bornele sale și aproximativ 10 mA de curent. Dacă Arduino-ul tău furnizează 5 V, restul de 3 V trebuie să fie căzuți de rezistență. Folosind legea lui Ohm, R = V / I = 3 V / 0,01 A = 300 Ω. Orice valoare de la aproximativ 300 Ω până la 1000 Ω va funcționa — valorile mai mari pur și simplu fac LED-ul mai slab (în video la 03:49).
Pentru balansoar, cele două LED-uri sunt conectate identic: fiecare anod merge la propriul pin Arduino, iar fiecare catod trece prin propriul rezistor către o șină de masă comună. Singura diferență dintre cele două este pinul de care sunt atașate.
Hardware și componente
- 1 × placă Arduino (Uno, Nano, Mega sau similar)
- 2 × LED-uri — unul roșu, unul verde (orice două culori funcționează)
- 2 × rezistențe, 300 Ω până la 1000 Ω (220 Ω sau 330 Ω sunt alegeri comune)
- 1 × breadboard
- Fire de conexiune (fire DuPont)
- Cablu USB pentru programare și alimentare
Atât — fără butoane, fără potențiometre, fără senzori. Aceasta este în mod deliberat cea mai redusă listă de piese posibilă, astfel încât să te poți concentra în întregime pe logica codului.
Ghid de conectare
Conectarea este simetrică și ușor de urmărit. Introdu ambele LED-uri în breadboard. Conectează anodul (piciorul mai lung) al LED-ului verde la pinul 2 al Arduino și anodul LED-ului roșu la pinul 3 al Arduino. Fiecare catod (piciorul mai scurt) se conectează la un capăt al propriului rezistor, iar celălalt capăt al ambelor rezistențe se unește într-o șină comună care merge la pinul GND al Arduino (în video la 27:45).
Deoarece ambele LED-uri împart aceeași șină de masă, este nevoie de un singur fir de masă de la breadboard înapoi la Arduino. Cele două fire de semnal — unul la pinul 2, unul la pinul 3 — sunt singurele conexiuni care se schimbă între cele două LED-uri.
Explicația codului
Schița este intenționat de scurtă, astfel încât fiecare linie să fie semnificativă. Iată părțile pe care vei dori de fapt să le ajustezi:
Definirea pinilor
const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED
Aceste două constante îi spun Arduino-ului la ce pini sunt conectate LED-urile. Dacă ai conectat LED-urile la pini diferiți — să zicem pinul 8 și pinul 9 — acesta este singurul loc în care trebuie să modifici. Cuvântul cheie const înseamnă că valoarea este fixă pe durata de viață a programului și nu poate fi suprascrisă accidental mai târziu.
Constanta de temporizare
const int ON_TIME = 500;Această singură valoare controlează cât timp rămâne aprins fiecare LED, în milisecunde. Valoarea implicită de 500 înseamnă că fiecare LED este aprins timp de o jumătate de secundă, astfel încât un ciclu complet verde-apoi-roșu durează o secundă. Reduceți-o la 200 pentru o clipire rapidă sau măriți-o la 1000 pentru un ritm lent și deliberat de o secundă per LED (în video la 30:17). Deoarece ambele LED-uri împart această constantă, ele rămân întotdeauna sincronizate — balansoarul rămâne echilibrat.
Configurare
În interiorul setup(), cele două pini sunt declarați ca ieșiri cu pinMode(), iar monitorul serial este pornit la 9600 baud, astfel încât să puteți urmări mesajele de stare ale LED-urilor derulându-se. Aceasta rulează o singură dată, când placa primește alimentare.
Bucla
Funcția loop() este locul unde se întâmplă balansoarul. Ea execută patru acțiuni în secvență: aprinde LED-ul verde, așteaptă ON_TIME milisecunde, îl stinge, apoi face același lucru pentru LED-ul roșu. Când bucla ajunge la sfârșit, o ia automat de la început — acesta este întregul comportament de „balansoar". Nu există nicio variabilă de stare și nicio condiție de verificat, deoarece modelul este pur secvențial.
Proiect live și demonstrație
Odată ce codul este încărcat, veți vedea LED-ul verde aprinzându-se timp de o jumătate de secundă, apoi LED-ul roșu, apoi verde din nou, la nesfârșit. Deschiderea monitorului serial (Tools → Serial Monitor, sau Ctrl+Shift+M) afișează „Green LED ON" și „Red LED ON" pe măsură ce modelul rulează, ceea ce este o modalitate practică de a confirma că temporizarea corespunde cu cea pe care ați setat-o.
Încercați să schimbați ON_TIME la 200 și să reîncărcați — LED-urile vor alterna vizibil mai rapid. Setați-l la 1000 și balansoarul devine o alternanță lentă și deliberată. De asemenea, puteți deconecta Arduino de la USB și alimenta de la o baterie sau un adaptor de 5 V; schița rulează identic deoarece este deja stocată în memoria plăcii.
Proiecte similare din acest video
- Lecția 98-1: Cum să aprinzi și să stingi un LED cu Arduino
- Lecția 98-2: Cum să aprinzi și să stingi un LED folosind un buton cu Arduino
- Lecția 98-3: Cum să aprinzi/stingi un LED cu comutare folosind un buton cu Arduino
- Lecția 98-4: Estomparea unui LED folosind Arduino: Controlul luminozității
- Lecția 98-5: Estompează lumina când un buton este apăsat folosind Arduino
- Lecția 98-7: Lumină călătoare folosind Arduino și 5 LED-uri
- Lecția 98-8: Lumină călătoare cu buton și LED-uri cu Arduino
- Lecția 98-9: Metru de nivel de tensiune cu LED-uri folosind Arduino sau lumină călătoare cu potențiometru
- Lecția 98-10: Semafor cu Arduino
Capitole
- [00:00] Prezentarea generală a celor 10 proiecte cu LED-uri Arduino
- [01:22] Introducere în cursul pas cu pas Arduino
- [02:29] Înțelegerea LED-urilor: simbol, anod și catod
- [03:49] Calcularea rezistenței serie pentru LED cu legea lui Ohm
- [27:32] Prezentarea proiectului cu LED-uri balansoar
- [27:45] Schema de conectare pentru proiectul balansoar
- [28:28] Explicarea codului balansoarului
- [30:06] Demonstrarea balansoarului cu temporizări diferite
- [30:47] Prezentarea generală a proiectului cu lumină călătoare
- [36:41] Lumină călătoare controlată de buton
- [42:25] Bară de tensiune cu LED-uri și potențiometru
- [49:25] Proiectul de semafor cu Arduino
This code has not been parsed yet. Please return to the admin panel to parse it.
Lucruri de care ai putea avea nevoie
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Resurse și referințe
-
DocumentațieDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Extern
-
Extern
-
Extern
Fișiere📁
Biblioteci Arduino (zip)
-
Codul sursă al kitului de învățare Smart Car 3-în-1 de la SunFounder
3in1-kit-main-v2.zip12.80 MB
Manualul utilizatorului
-
Manual de asamblare pentru SunFounder 3-in-1 Arduino Smart CarAcest document prezintă asamblarea pas cu pas a SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB