ARDUINO – SENSORE DI PARCHEGGIO
Buongiorno a tutti,
avete sempre una vecchia auto ma vi piacerebbe montasse uno di quei sensori acustici per parcheggiare in retromarcia? Nell’esperimento di oggi ne ho costruito uno con arduino.
Per questo prototipo ho utilizzato:
-Il microcontrollore arduino Uno
-Un sensore di distanza a ultrasuoni HC-SR04
-Un Piezo
-Due LED, uno rosso e uno verde
-Un interruttore a pressione
-Un controller Analogico della sainsmart
-Resistenze e cavetteria adeguati (220 Ohm per i LED e 10 kOhm per l’interruttore)
Il funzionamento è relativamente semplice:
Non appena riceve corrente il sistema illumina i due LED e fa suonare il piezo due volte, per controllare che tutto funzioni.Premendo il pulsante si attiva il sistema, premendolo nuovamente lo si disattiva. Quando il sistema è attivo il LED verde rimane illuminato, a segnalare appunto lo stato di attività.Il sistema rileva poi quando il joystick è inclinato verso l’utente, quando cioè si sta comandando all’ipotetica automobile di andare in retromarcia. Spostando il controller nella posizione retro si attiva quindi il sensore, e il LED rosso si accende ad indicare che stiamo andando in retromarcia e che di conseguenza il sensore di parcheggio è attivo.Il sensore a ultrasuoni rileva la distanza. Siccome utilizza il tempo di ritorno dell’eco del suono che emette funziona perfettamente in qualsiasi condizione di luminosità, sia nella luce più accecante che nell’oscurità più profonda. Il microcontrollore analizza la distanza rilevata dal sensore e comunica al piezo la frequenza con cui suonare.Nello specifico il piezo suonerà per 15 millisecondi ogni intervallo, la durata dell’intervallo è di 15 millisecondi * (distanza rilevata in centimetri – 2).Il -2 è dovuto al fatto che il sensore a ultrasuoni può misurare una distanza minima di 3 cm, ed era mia intenzione che una volta giunti a questa distanza il suono del piezo fosse continuo (in questo modo, infatti, emetterà suoni della durata di 15 millisecondisecondi ogni 15 * (3 – 2)cm. Quindi ogni 15 millisecondi si avvierà un suono della durata di 15 millisecondi, producendo, appunto, un suono continuo).Per calcolare l’intervallo trascorso si utilizza la funzione millis() che restituisce il tempo trascorso dall’avvio del microcontrollore. Ogni volta che il tempo trascorso supera l’intervallo (quello legato alla distanza rilevata dal sensore) la variabile previousTime viene aggiornata al tempo corrente. In questo modo la differenza (millis() – previousTime) ci da la differenza tra il tempo corrente e quello trascorso dall’ultimo suono emesso dal piezo, se questo tempo è superiore all’intervallo il piezo suona nuovamente, la variabile previousTime viene aggiornata nuovamente e così via.