Come utilizzare il sensore ad ultrasuoni HC-SR04 con Arduino
Chi non more se rivede, dicono a Roma…
Periodo di esperimenti elettronici per adesso. Voglio parlarti del sensore HC-SR04 e del suo utilizzo con Arduino.
In maniera molto semplice ti spiego come funziona… In pratica questo simpatico sensore emette un impulso ad ultrasuoni e calcola il tempo impiegato dall’impulso per raggiungere il primo ostacolo di fronte a lui e tornare in dietro. Tutto questo avviene in frazioni di secondi, anzi per essere più precisi, le operazioni avvengono nell’ordine dei microsecondi.
Info tecniche
E’ bene dare qualche informazione tecnica sul sensore, ma se vuoi passare subito all’azione, salta questa parte e vai direttamente alla sezione “Schema dei collegamenti”.
Direttamente dai datasheet reperibili in rete ecco qualche info:
Volt di operazione DC-5V
Corrente di operazione 15mA
Frequenza di operazione 40Khz
Massima distanza percepita 4m
Minima distanza percepita 2cm
Angolo di misurazione 15 gradi
Input Trigger un segnale TTL alto di 10us
Output Echo un segnale TTL alto della durata proporzionale alla distanza percepita
Dimensioni 45x20x15mm
Questo tipo di sensore, può quindi essere utilizzato per creare dei sistemi di rivelazione di presenza, misurazione di distanze, consentire ai robot di evitare ostacoli…
Bene! Tornando allo scopo di questa piccola guida, vediamo come interfacciare il nostro HC-SR04 con Arduino
Schema dei collegamenti
Ho collegato i PIN Vcc e GND rispettivamente ai PIN +5 e GND di Arduino così da poter alimentare il sensore.
I PIN Trigger ed Echo, collegati ai PIN digitali 8 e 9 di Arduino.
Passiamo al codice…
Il codice
Il codice è ampiamente commentato al suo interno, quindi non mi va di riscrivere le stesse cose due volte 😉
//Definizione dei pin
static int trigger = 8;
static int echo = 9;
//variabili utilizzate per calcolare la distanza
long durata; //tempo che impieghera' il suono a percorrere una certa distanza
long distanza; //la distanza che ha percorso il suono
void setup() {
//abilito la comunicaizone seriale per rendermi conto di cio' che accade
Serial.begin(9600);
//settiamo il funzionamento dei pin
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
//metto a LOW l'ingresso del PIN echo e del PIN trigger
digitalWrite(echo, LOW);
digitalWrite(trigger, LOW);
//inizializzo le variabili
durata = 0;
distanza = 0;
}
void loop() {
//Invio un impulso HIGH sul pin del trigger
digitalWrite(trigger, HIGH);
//lo lascio al valore HIGH per 10 microsecondi
delayMicroseconds(10);
//lo riporto allo stato LOW
digitalWrite(trigger, LOW);
//ottengo il numero di microsecondi per i quali il PIN echo e' rimasto allo stato HIGH
//per fare questo utilizzo la funzione pulseIn()
durata = pulseIn(echo, HIGH);
// La velocita' del suono e' di 340 metri al secondo, o 29 microsecondi al centimetro.
// il nostro impulso viaggia in andata e ritorno, quindi per calcoalre la distanza
// tra il sensore e il nostro ostacolo occorre fare:
distanza = durata / 29 / 2;
//invio i dati alla porta seriale cosi' da poterli vedere con il Monitor Seriale
Serial.print("Durata : ");
Serial.print(durata);
Serial.print(" - Distanza : ");
Serial.println(distanza);
}
A fine pagina trovi il link per scaricare il sorgente o per clonare l’intero progetto da GitHub, ma prima di andare…
- Assicurati che tutti i collegamenti siano corretti;
- Ricordati di impostare la porta COM del tuo Arduino;
- Imposta la stessa velocità seriale definita in Serial.begin(9600), nel Monitor Seriale
- E ricorda che io non mi assumo nessuna responsabilità per eventuali danni o disastri che causi 😀
…carica il codice su Arduino e scopriamo se funziona!
A fine pagina trovi il link per scaricare il pacchetto con codici e schemi di collegamento. Come sempre ti ricordo che acquistando prodotti Amazon passando attraverso i link del mio sito, io percepisco una piccola commissione (parliamo di centesimi) in buoni regalo. Questi buoni sommati alle eventuali donazioni PayPal, servono a mantenere attivo il sito web e ad acquistare nuovi componenti.
Prodotti Amazon
Auto Amazon Links: Nessun prodotto trovato.
Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE.
AZDelivery Scheda Microcontrollore con Cavo USB e con eBook
13,99 €ELEGOO UNO R3 Advanced Starter Kit per progetti per Principianti con Kit di apprendimento Italiano Compatibile con i progetti IDE di Arduino
ELEGOO UNO R3 Project Basic Starter Kit per Principianti, Incluso Kit di Apprendimento Tutorial in Italiano, Compatibile con Arduino IDE
29,99 €Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino.
Auto Amazon Links: Nessun prodotto trovato.
Il mio video
Approfondimenti
Se vuoi puoi clonare il progetto da GitHub cliccando qui.


![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #1](https://m.media-amazon.com/images/I/51z3unD0rSL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #2](https://m.media-amazon.com/images/I/51qwMwhIEpL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #3](https://m.media-amazon.com/images/I/41xRusra-PL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #4](https://m.media-amazon.com/images/I/51Pj4AYoI2L._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #5](https://m.media-amazon.com/images/I/51aGD+zFqLL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #6](https://m.media-amazon.com/images/I/51qB0r6PqYL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #7](https://m.media-amazon.com/images/I/518XcmBXXAL._SL120_.jpg)
![Arduino UNO R4 WiFi [ABX00087] - Scheda di sviluppo con microcontrollore ARM Cortex-M4 e WiFi integrato, ideale per progetti IoT, automazione e applicazioni connesse con Arduino IDE. #8](https://m.media-amazon.com/images/I/41mGAFfpn9L._SL120_.jpg)

















![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #1](https://m.media-amazon.com/images/I/51L0AYnxlBL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #2](https://m.media-amazon.com/images/I/5111WEC6vgL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #3](https://m.media-amazon.com/images/I/41752hu+9BL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #4](https://m.media-amazon.com/images/I/51gDXfwE4qL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #5](https://m.media-amazon.com/images/I/519n0CHiF5L._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #6](https://m.media-amazon.com/images/I/515PpgJcSfL._SL120_.jpg)
![Arduino UNO R4 Minima [ABX00080] - Scheda di sviluppo con microcontrollore ARM Cortex-M4, ideale per progetti IoT, automazione e applicazioni con IDE Arduino. #7](https://m.media-amazon.com/images/I/519E0KPfiHL._SL120_.jpg)
RSS - Articoli
Commentati Recentemente