Categories: Arduino

Sensore di prossimità ad ultrasuoni HC-SR04

Ben ritrovati su 9minuti.it, oggi vedremo quello che è, a mio parere, uno dei sensori ad ultrasuoni più versatili e divertenti da usare, ovvero il sensore di prossimità (o di distanza) HC-SR04.

Il sensore ad ultrasuoni HC-SR04 è composto da due ‘occhioni’, uno dei quali invia un’onda sonora, la quale rimbalza sulla superficie che si trova davanti e viene letta dall’altro ‘occhio’.

Se mi chiedessero quali sono i limiti del sensore ad ultrasuoni HC-SR04 risponderei che non fa il caffè.

Un limite che ho riscontrato, oltre ovviamente a non passare i vetri e non fare il caffè, cosa piuttosto ovvia, è che se posto contro una superficie molto irregolare, come ad esempio un maglione di lana a maglie larghe, smette di funzionare.

La lana infatti assorbe le onde e impedisce a queste di tornare indietro.

La precisione è notevole e su distanze di circa un paio di metri ha una tolleranza di pochi centrimetri.

Il collegamento

 

Sensore di prossimità ad ultrasuoni HC-SR04

Lo sketch

Passiamo ora allo sketch e alla spiegazione riga per riga.

#define ultrasuoni_out 13
#define ultrasuoni_in 12
float durata;
float distanza;

void setup() {

  pinMode(ultrasuoni_out, OUTPUT);
  pinMode(ultrasuoni_in, INPUT);
  
  Serial.begin(9600);
}

void loop() {

  digitalWrite(ultrasuoni_out, HIGH);
  delay(10);
  digitalWrite(ultrasuoni_out, LOW);

  durata = pulseIn(ultrasuoni_in, HIGH);
  distanza = 0.034 * durata / 2;

  Serial.print(distanza);
  Serial.print(" cm\n");

  delay(100);
}

1 – Definiamo il pin 11 con il nome ultrasuoni_out
2 – Definiamo il pin 12 con il nome ultrasuoni_in
3 – Creiamo la variabile di tipo float durata
4 – Creaiamo la variabile di tipo float distanza
8 – Dichiariamo che il pin ultrasuoni_out verrà usato come OUTPUT
9 – Dichiariamo che il pin ultrasuoni_in verrà usato come INPUT
11 – Chiamiamo il metodo begin() dell’oggetto Serial per far partire la comunicazione seriale.
16 – Accendiamo il pin ultrasuoni_out
17 – Delay di 10 millisecondi
18 – Spegnamo il pin ultrasuoni_out
20 – Assegnamo alla variabile durata il valore restituito dalla funzione pulseIn(), la quale tiene conto del tempo in millisecondi da quando il pin è su HIGH e poi nuovamente su LOW. Se vi interessa approfondire QUA ci sono maggiori informazioni.
21 – Sapendo qual è la velocità del suono (0.034) e il tempo che le onde sonore hanno impiegato (durata) possiamo ricavare la distanza percorsa. Dividiamo per due perché abbiamo sia un’andata che un ritorno.
23, 24 – Facciamo una stampa sul Serial Monitor della nostra distanza appena calcolata.
26 – Delay di 100 millisecondi

Divertiamoci con il sensore di prossimità ad ultrasuoni

Non ci resta altro da fare, ormai abbiamo capito come utilizzarlo e lo possiamo impiegare in uno dei nostri progetti con Arduino.

Un esercizio carino che prevede l’utilizzo di questo sensore consiste nel illuminare un led a seconda di quant’è la distanza, utilizzando quindi gli if e gli else.

Ad esempio,

if ( distanza < 50){
   digitalWrite(13, HIGH);
}

else{
   digitalWrite(13, LOW);
}

Ovviamente dobbiamo ricordarci di aggiungere il pin 13 come OUTPUT nel setup().

Se ti è piaciuto l’articolo ti prego di farmelo sapere nei commenti e di condividerlo sulle tue pagine social in modo da supportare il blog.

Vi ringrazio per l’attenzione e rimango a disposizione per aiutarvi nel caso doveste averne bisogno.

Alessandro

Alessandro Oppo

Alessandro è un milanese che vorrebbe scappare da Milano, è appassionato di informatica ma vorrebbe vivere senza telefono, è un artigiano eppure vorrebbe robotizzare tutto, impara una cosa e già vorrebbe studiare dell’altro. Autodidatta da sempre, gli piace sbattere la testa finché tutto non funziona come vuole lui, spesso ci riesce anche! Visita il suo blog personale alexoppo.com Il motto che si ripete dentro la testa è: “Se ci sono riusciti gli altri ci posso riuscire anche io”.

Recent Posts

Ponti sospesi: cosa abbiamo sbagliato? cosa si potrebbe fare?

Poco prima di Natale ho avuto la fortuna di poter partecipare a un evento chiamato…

11 mesi ago

Siamo quel che facciamo? – racconto breve

Armando quel giorno era particolarmente stanco. Tutto, per quanto andasse bene, sembrava metterlo sotto pressione.…

1 anno ago

Il limite è sempre la mente – Racconto breve

Armando guardò l’orologio e vide il proprio riflesso sul quadrante bianco. Il riflesso però non…

1 anno ago

L’ultimo giorno del carcere – Racconto breve

I muri sono muri, lo sono sempre, anche quando le porte sono aperte. Era la…

1 anno ago

Riflessioni sul carcere

Pochi di noi riflettono sull’esistenza nella nostra società del carcere. Il carcere è la concretizzazione…

1 anno ago

Come dovremmo dialogare secondo me

Spesso intraprendiamo delle conversazioni e delle chiacchierate piuttosto inconsapevolmente. Voglio dire che non siamo molto…

1 anno ago