It shows how to use an ultrasound sensor

Dependencies:   mbed HCSR04

Sensore di distanza ad ultrasuoni

Il sensore ad ultrasuoni, emette un treno di impulsi, tipicamente ad una frequenza di 40Khz. Nota la velocità del suono nell'aria e' possibile calcolare la distanza dell'oggetto dal sensore, misurando il tempo necessario per ricevere l'eco del suono emesso.

Sensore HC-SR04

Si tratta di un sensore economico e con un buon raggio d'azione.

/media/uploads/StefanoArrigoni/hc-sr04.jpg

Questo sensore presenta quattro pin. Due pin sono dedicati all'alimentazione a 5V, gli altri due sono dedicati al trigger per l'invio del treno di impulsi ed per la ricezione del tempo trascorso fino alla ricezione dell'eco. Il segnale di trigger e' un impulso della durata di almeno 10 us. Il segnale sul pin di echo e' un impulso della durata pari al tempo impiegato dalle onde sonore per tornare riflesse. Se il tempo e' superiore a 38ms si ritiene che non ci sia alcun ostacolo.

/media/uploads/StefanoArrigoni/ultrasounddiagram.png

Quando il pin di trigger del sensore viene tenuto alto per una durata di 10us, il sensore invia un treno di 8 impulsi di ultrasuoni a 40Khz. Il sensore poi tiene alta l'uscita echo per un tempo che e' proporzionale alla distanza dell'oggetto dal sensore.

Calcolo della distanza

La velocità del suono nell'aria, alla temperatura di 20° è di circa 343,4 m/s, che per semplicità approssimiamo a 340 m/s. La legge in funzione della temperatura t: V = 331.4 + 0.62*t, che può essere utilizzata nel caso serva maggiore precisione.

Il sensore restituisce il tempo, espresso in microsecondi, impiegato dalle onde sonore per essere emesse e tornare riflesse.

La velocità del suono espressa in cm/us e' pari a:

340m/s = 34000 cm/s

ed essendo

1s = 10^-6us

la velocità del suono espressa in cm/us sara':

34000 [cm/s] = 34000/10^-6 [cm/us] = 3,4 * 10^-2 [cm/us]

Poiché il tempo fornito dal sensore comprende sia il tempo che impiega il treno di impulsi a raggiungere l'ostacolo che a tornare riflesso da questo, dovremo dividere per 2 il tempo misurato.

Dunque lo spazio percorso in un verso, ossia la distanza sara'

S = v * t

S = 3.4 * 10^-2 * t/2 = 1,7 * 10^-2 * t cm

Il circuito

/media/uploads/StefanoArrigoni/hcr04circuit.png

Download repository: zip gz

Files at revision 2:5bf40be27308

Name Size Actions
[up]
HCSR04.lib 67 Revisions Annotate
main.cpp 882 Revisions Annotate
mbed.bld 65 Revisions Annotate