KULTUROSFERA

Alarma de parcare: Arduino cu senzor de distanță

Lecția-suport: Lanțul de informație și forma pieselor

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

  1. Creează un circuit nou în Circuits și pune pe planșă un Arduino Uno R3.
  2. 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ă:
    • VCC5V pe Arduino (firul roșu);
    • GNDGND (firul negru);
    • TRIG → pinul 7 (de aici Arduino trimite comanda „măsoară!");
    • ECHO → pinul 6 (pe aici se întoarce răspunsul).
  3. Adaugă un piezo (difuzorul mic și rotund): un picior la pinul 3, celălalt la GND.
  4. 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

  1. Deschide editorul de cod (Code, mod Blocks). Creează o variabilă distanta (zona de variabile din paletă).
  2. Î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.
  3. 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).
  4. 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ă

  1. 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).
  2. Rulează: obstacol la peste 30 cm — liniște; sub 30 cm — țiuit. Alarma ta de parcare trăiește.
  3. 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 în if / 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ă.