Alarma de parcare: Arduino cu senzor de distanță
Când o mașină dă cu spatele și începe să țiuie tot mai insistent, în bara ei lucrează exact sistemul pe care îl construiești azi: un senzor ultrasonic măsoară distanța, un microcontroler o compară cu un prag, un difuzor dă alarma. La finalul laboratorului vei avea în Tinkercad o alarmă de parcare funcțională — și, în premieră, vei vedea prin ochii programului, cu monitorul serial, ce valori măsoară senzorul în timp real.
Ce îți trebuie
- Contul de tinkercad.com și circuitul din laboratorul 6 — LED-ul care clipește. Azi construim peste ce știi de acolo.
- Browser, nimic de instalat.
- Timp: 45 de minute — 10 pentru montaj, 20 pentru program și monitorul serial, 15 pentru misiune.
Montajul: senzorul și difuzorul
- Creează un circuit nou în Circuits și pune pe planșă un Arduino Uno R3.
- Din componente, caută senzorul ultrasonic de distanță (Ultrasonic Distance Sensor). Tinkercad are două variante — una cu 3 pini, una cu 4 (HC-SR04, cea din kiturile reale). Folosește-o pe cea cu 4 pini și leagă:
- VCC → 5V pe Arduino (firul roșu);
- GND → GND (firul negru);
- TRIG → pinul 7 (de aici Arduino trimite comanda „măsoară!");
- ECHO → pinul 6 (pe aici se întoarce răspunsul).
- Adaugă un piezo (difuzorul mic și rotund): un picior la pinul 3, celălalt la GND.
- Un minut de fizică, pentru că merită: senzorul scoate un sunet prea înalt ca să-l auzi (ultrasunet), sunetul lovește obstacolul, se întoarce, iar senzorul cronometrează dus-întorsul. Distanță din timp — exact ca liliecii și ca radarul de parcare adevărat.
Programul citește distanța
- Deschide editorul de cod (Code, mod Blocks). Creează o variabilă
distanta(zona de variabile din paletă). - În blocul care se repetă la nesfârșit, pune: set distanta to + blocul de citire a senzorului ultrasonic (îl găsești la intrări: read ultrasonic distance sensor). Setează în el trigger pe pinul 7, echo pe pinul 6 și unitatea cm.
- Acum partea nouă — fereastra către interiorul programului. Adaugă blocul print to serial monitor și pune în el variabila
distanta. Pornește simularea și deschide Serial Monitor (butonul de sub editorul de cod). - Trage de obiectul verde care apare lângă senzor când simularea rulează — el e „mașina din spate". Apropie-l și depărtează-l: numerele din monitorul serial curg și se schimbă în timp real.
Decizia: aproape înseamnă alarmă
- Ai măsurarea; adaugă judecata. Din categoria de control, trage un bloc if / else sub citirea senzorului, cu condiția
distanta < 30:- pe ramura if: pornește piezo-ul — blocul de ton/sunet pe pinul 3 (alege o notă sau o frecvență în jur de 800 Hz) și un wait de 0.2 secunde;
- pe ramura else: oprește tonul pe pinul 3 (blocul de „no tone" sau tonul oprit).
- Rulează: obstacol la peste 30 cm — liniște; sub 30 cm — țiuit. Alarma ta de parcare trăiește.
- Un pas mai aproape de mașina reală: alarma adevărată țiuie tot mai des cu cât ești mai aproape. Transformă
if / elseînif / else if / else(în blocuri: if-ul cu mai multe ramuri):- sub 10 cm: bipuri cu pauză de 0.1 s — panică;
- între 10 și 30 cm: bipuri cu pauză de 0.4 s — atenție;
- peste 30 cm: liniște.
Dacă nu merge
- Distanța afișată e mereu 0 sau nu se schimbă. TRIG și ECHO inversate, sau pinii din blocul de citire nu se potrivesc cu firele din circuit. Blocul și montajul trebuie să spună aceeași poveste.
- Monitorul serial e gol. Blocul de print lipsește din repetiție, sau simularea nu rulează. Monitorul afișează doar ce trimite programul, doar cât timp programul merge.
- Piezo-ul țiuie fără oprire, oricât de departe e obstacolul. Pe ramura else lipsește oprirea tonului. Odată pornit, tonul rămâne pornit până îl oprești explicit — programul trebuie să spună și „stop", nu doar „start".
- Alarma reacționează cu întârziere mare. Ai blocuri wait prea lungi în repetiție: cât timp programul așteaptă, nu citește senzorul. Pauzele peste jumătate de secundă fac sistemul „surd".
- Simularea merge greu. Oprește simularea când editezi și pornește-o doar la test. Multe componente + serial monitor deschis încarcă browserul.
Misiunea ta
Nivel de bază: alarma cu două praguri (panică / atenție / liniște) funcționează, iar monitorul serial afișează distanța continuu.
Extindere: adaugă un LED roșu (cu rezistorul lui de 220 de ohmi, pe pinul 8 — știi schema din laboratorul 6) care se aprinde odată cu alarma de panică. Acum sistemul avertizează și pentru șoferii cu muzica tare.
Provocare: fă mesajul din monitorul serial demn de un produs adevărat: în loc de numere seci, programul scrie Distanta: 25 cm - ATENTIE sau Distanta: 80 cm - liber (blocul de print acceptă text lipit de variabile). Apoi calibrează: alege pragurile astfel încât zona de „atenție" să înceapă exact la lățimea unui penar ținut în fața senzorului.
Ai terminat când:
- cele trei zone de distanță dau trei comportamente diferite, verificate cu obstacolul din simulator;
- poți citi în monitorul serial valoarea exactă la care alarma își schimbă starea;
- LED-ul de la extindere se aprinde doar în zona de panică;
- poți descrie sistemul în lanțul: senzorul măsoară → programul compară → piezo și LED acționează.