Sensore ultrasuoni HC-SR04

postato in: Arduino, Articoli | 0

arduino

 

L’elettronica negli ultimi decenni ha fatto molti progressi.

Andando avanti è diventata sempre più complessa e complicata, ma allo stesso tempo più facile da utilizzare.

Questa frase sembra una contraddizione ma è la pura realtà.

Oggi, se una persona vuole un dispositivo che misuri la temperatura dell’ambiente, gli basta acquistare pochi componenti e farselo da solo.

Un componente molto utile, per rendere lo sviluppo più semplice, è la famosa piattaforma Arduino, ossia un microcontrollore, programmabile, che può essere utilizzato per svariati progetti.

In questo post vediamo come utilizzare il sensore ad ultrasuoni HC-SR04, collegandolo ad esso.

Ultrasuoni

Prima di andare a vedere come utilizzare questo sensore cerchiamo di capire dove possiamo utilizzarlo, e per fare questo, vediamo prima cosa sono gli ultrasuoni.

 

Come, forse, molti di voi sapranno, le onde sonore sono espresse in Hertz (Hz). Fisicamente, noi esseri umani possiamo sentire solo le onde che vanno dai 20 Hz, ai 20 kHz. Per esempio le onde della voce umana sono intorno ai 4 kHz.

Dopo i 20 kHz troviamo gli ultrasuoni, che noi umani non riusciamo a sentire, mentre altri esseri viventi come cani, delfini o pipistrelli riescono a sentire e usare. Ad esempio i pipistrelli riescono ad utilizzarle per orientarsi.

 

Come può essere utile tale sensore dal punto di vista dell’elettronica?

Queste onde sono ampiamente utilizzate dai dispositivi medici, ai radar che sono presenti sulle navi o aerei. Anche i robot utilizzano questo sensore per evitare gli ostacoli, un po’ come fanno i pipistrelli.

 

Vediamo ora come utilizzarle con Arduino.

 

sensore

 

 

Come possiamo vedere dalla foto qui sopra, il sensore ha 4 pin che possono essere collegati ad Arduino.

Il primo pin, quello più a sinistra, è utilizzato per la sua alimentazione, collegandolo ai 5V di Arduino. Il secondo pin, chiamato “trig”, lo utilizziamo per far inviare il segnale dal nostro sensore. Una volta che il segnale è stato inviato, dobbiamo attendere che rimbalzi su qualche oggetto, in tal modo riusciamo a stabilire la distanza tra il sensore e l’oggetto. Quando il sensore riceve il segnale rimbalzato, lo notificherà ad Arduino utilizzando il terzo pin “echo”. Infine il quarto pin deve essere collegato al GND di Arduino.

Come la maggior parte dei componenti elettronici, anche questo sensore ha un suo datasheet, quindi se volete maggiori informazioni potete consultare il suo a questo link.

 

Funzionamento sensore

Vediamo ora più in dettaglio come si comporta questo sensore.

Come descritto prima, sul pin trig, ossia il secondo, inviamo un segnale di lunghezza 10 µS. A questo punto, il sensore manderà un segnale di 40kHz nell’ambiente, e attenderà che esso ritorni indietro per determinare la distanza.

Se il segnale torna indietro, quindi e` rimbalzato incontrando un ostacolo, il sensore manderà un segnale di una lunghezza prestabilita ad Arduino.

Se non torna indietro, allora vuol dire che l’ostacolo è fuori portata del sensore, quindi “lontano”.

Nel primo caso, la lunghezza del segnale che il sensore manda ad Arduino è determinata dalla distanza che ha percorso.

Come facciamo quindi a sapere quanto ha percorso prima di incontrare l’oggetto? Basta utilizzare questa formuletta, (presa dal datasheet):

 

distanza = (durata del segnale ricevuto x velocità del suono) / 2

 

dove “durata del segnale ricevuto” è la lunghezza del segnale che ci manda il sensore attraverso il pin “echo”, mentre la velocità del suono è 340 m / s, utilizzando l’aria come resistenza.

Nel secondo caso le cose non cambiano. La portata massima del sensore, quindi quanto può “vedere” lontano, è di 4 metri. Inserendo questo parametro nell’equazione di sopra, non è difficile ricavarsi il tempo relativo alla distanza massima supportata da esso, ossia 38 mS.

Ora che abbiamo descritto il funzionamento, procediamo con il collegamento dei cavetti, e scriviamo il codice che andremo successivamente a caricare su Arduino.

 

Collegamento

Colleghiamo il rispettivamente il pin 1 e 4 ai 5V di Arduino e al GND.

Il pin 2, quello di trig, lo colleghiamo al pin 9 di Arduino, mentre il pin 3 “echo” lo colleghiamo al pin 8 di Arduino.

 

Codice

 

int pin_trig = 9;

int pin_echo = 8;

 

void setup() {

pinMode(pin_trig, OUTPUT);

pinMode(pin_echo, INPUT);

Serial.begin(9600);

}

 

void loop() {

digitalWrite(pin_trig, LOW);

digitalWrite(pin_trig, HIGH);

delayMicroseconds(10);

digitalWrite(pin_trig, LOW);

 

int dist = (0.34 * pulseIn(pin_echo, HIGH)) / 2;

Serial.println(dist);

delay(1000);

}

 

 

Vediamo ora il codice

Prima di tutto dichiariamo le variabili, pin_trig e pin_echo, che sono i numeri dei pin di Arduino che sono stati usati per la comunicazione con il sensore.

Nella funzione void setup, indichiamo che il pin pin_trig sarà destinato all’output, mentre il pin_echo sarà in modalità INPUT. Infine impostiamo il “baud rate” della seriale a 9600 bps.

Vediamo ora la funzione principale void loop.

Come prima cosa impostiamo il livello di tensione bassa con LOW sul pin del trig, e subito dopo la mettiamo su HIGH, e attendiamo 10 µS per poi rimetterla su LOW. In questo modo inviamo un segnale di lunghezza 10 µS sul pin di trig.

Nella riga successiva troviamo questa istruzione:  long dist = (0.34 * pulseIn(pin_echo, HIGH)) / 2;, in poche parole applichiamo la formula per ricavarci la distanza. Con pulseIn misuriamo la lunghezza in tempo del segnale che ci manda il sensore attraverso il pin di echo, una volta trovata la lunghezza lo dobbiamo moltiplicare per la velocità del suono, e infine dividere per 2. Per avere la distanza in cm, dobbiamo convertire da metri a centimetri, quindi da 340 m abbiamo 34000 cm. Infine, siccome ciò che il sensore ci manda è in microsecondi, convertiamo il nostro 34000 cm / s in microsecondi, ossia dividiamolo per 10^6 (poichè i secondi stanno al denominatore).

Ora abbiamo la distanza in cm salvata nella variabile dist, quindi la inviamo, attraverso la porta seriale, al nostro computer.

 

Conclusioni

Oggi abbiamo visto come utilizzare il sensore ad ultrasuoni, e come interfacciarlo, con la porta seriale di Arduino, al nostro computer. Non resta che sbizzarrirvi con i vostri progetti includendo questo magnifico sensore;)

 

FONTI

-Immagini Joel Garia

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

Lascia un commento