Misurare la distanza con un sensore ad ultrasuoni hc-sr04 può essere utile in molte occasioni, ad esempio in un sistema anti-intrusione che deve far suonare un allarme o un sistema robotizzato che deve evitare ostacoli.

In questo tutorial viene utilizzato il sensore ad ultrasuoni HC-SR04, dispositivo economico e con un buon range operativo.

I sensori ad ultrasuoni non forniscono direttamente la misura della distanza dell’oggetto più vicino, ma misurano il tempo impiegato da un segnale sonoro a raggiungere l’oggetto e ritornare al sensore.

L’impulso ad ultrasuoni inviato dal HC-SR04 è di circa 40KHz il tempo viene misurato in microsecondi, la tensione di funzionamento è di 5V, quindi potremo alimentarlo direttamente utilizzando Arduino.

HC-SR04

Il sensore HC-SR04 dispone di 4 pin: Vcc (+5V), Trigger, Echo, GND. Si invia un impulso alto sul pin Trigger per almeno 10 microsecondi, a questo punto il sensore invierà il ping sonoro e aspetterà il ritorno delle onde riflesse, il sensore risponderà sul pin Echo con un impulso alto della durata corrispondente a quella di viaggio delle onde sonore, dopo 38 millisecondi si considera che non sia stato incontrato alcun ostacolo. Per sicurezza si aspettano in genere 50-60 millisec per far si che non vi siano interferenze con la misura successiva. Per maggiori informazioni consultate il datasheet.

2014-04-04 13.00.232014-04-04 13.00.07

Per convertire l’intervallo di tempo misurato in una lunghezza, bisogna ricordare che la velocità del suono è di 331,5 m/s a 0 °C e di 343,4 m/s a 20 °C ed in generale varia secondo la relazione v = 331,4 + 0,62 T dove la temperatura T è misurata in °C.
Per la realizzazione del nostro metro elettronico assumiamo di lavorare ad una temperatura ambiente di 20 °C e quindi la velocità del suono sarà di 343 m/s (approssimiamo) che vuol dire anche 0,0343 cm/microsecondi.

Quindi, ricordando che v=s/t (v: velocità, s: spazio, t: tempo) allora lo spazio percorso sarà:

s = v*t

da cui

s = 0,0343 *t

però, per calcolare lo spazio percorso, bisogna tener conto che il suono percorre due volte la distanza da misurare (giunge sull’oggetto e ritorna indietro al sensore) quindi il valore di t ottenuto deve essere diviso per 2. La formula corretta per la misura dello spazio percorso è:

s = 0,0343 * t/2

eseguendo la divisione di 0,0343/2 possiamo scrivere:

s = 0,01715 * t

oppure:

s = t/58,31

approssimando

s = t/58

formula più semplice da ricordare.

Come connettere il sensore ad Arduino:

2014-04-04 12.52.27 2014-04-04 12.52.43

Per connettere il sensore HC-SR04 ad arduino basta collegare i 2 pin di alimentazione rispettivamente a Vcc e Gnd e gli altri 2 pin (Trigger e Echo) a 2 ingressi digitali.

Ecco lo schema di collegamento:

Sensore Ultrasuoni con Arduino

Scketch con monitor Seriale:

 

Scketch con display lcd:

AGGIORNAMENTO GIUGNO 2015

Di recente ho trovato per il web una libreria in grado di migliorare la lettura e la sensibilità di questo sensore. Potete scaricare la libreria QUI.

Ricordate di copiare la libreria in \Documents\Arduino\libraries\…

oppure in

C:\ProgramFiles\Arduino\libraries\…

Posto qui un esempio, i collegamenti sono uguali a quelli dell’esempio con monitor seriale 😉 .

 

Ciao, se ti è piaciuto il mio blog e se qualche articolo ti è stato d’aiuto, se te la senti e se vuoi, incentiva il mio lavoro offrendomi un caffè o qualunque altra cosa preferisci farmi ricevere. Cercherò di dare il meglio di me e di inserire articoli sempre più interessanti e utili 🙂 . Clicca QUI per la donazione!