Codice Arduino e video per sensore di distanza a ultrasuoni HC-SR04 con display OLED SSD1306
In questo tutorial mostreremo come utilizzare il sensore di distanza a ultrasuoni HC-SR04 insieme al display OLED SSD1306 per visualizzare le misurazioni di distanza. Questo progetto ti permette di misurare distanze senza bisogno di un computer, rendendolo ideale per varie applicazioni, inclusa la robotica. Al termine di questo progetto avrai un sistema funzionante che mostra le letture di distanza direttamente sullo schermo OLED.


Man mano che procediamo, spiegherò il cablaggio necessario per entrambi i componenti e fornirò una guida passo passo del codice Arduino che integra questi componenti. Questo ti aiuterà a capire come il sensore misura la distanza e come visualizzare quei dati sul display OLED. Per ulteriori chiarimenti, puoi fare riferimento al video associato a questo tutorial (nel video a 00:00).
Hardware spiegato
Le componenti principali di questo progetto sono il sensore di distanza a ultrasuoni HC-SR04 e il display OLED SSD1306. L'HC-SR04 funziona utilizzando onde ultrasoniche; emette un impulso sonoro tramite il pin di trigger e rileva l'eco sul pin di echo. Calcolando il tempo impiegato dal suono per tornare, può determinare la distanza da un oggetto. Questo sensore è molto efficace per misurazioni a corto raggio, tipicamente fino a 400-500 cm.
Il display OLED SSD1306 è un display con interfaccia I2C che permette di visualizzare testo e grafica. Comunica tramite due pin: SDA (linea dati) e SCL (linea di clock). Nella nostra configurazione, questi pin sono collegati a pin specifici dell'Arduino, consentendo una facile integrazione e controllo.
Dettagli della scheda tecnica
| Produttore | Vari |
|---|---|
| Numero di parte | HC-SR04 |
| Tensione logica/I/O | 5 V |
| Tensione di alimentazione | 5 V |
| Corrente di uscita (per canale) | 15 mA |
| Corrente di picco (per canale) | 20 mA |
| Linee guida sulla frequenza PWM | Non applicabile |
| Soglie logiche di ingresso | da 0.3*Vcc a 0.7*Vcc |
| Caduta di tensione / RDS(on) / saturazione | Non applicabile |
| Limiti termici | 0-70 °C |
| Pacchetto | modulo a 4 pin |
| Note / varianti | Modulo standard |
- Assicurare un'alimentazione adeguata (5 V) per entrambi i componenti.
- Usare resistenze di pull-up se necessario per la comunicazione I2C.
- Mantieni corte le linee trigger ed echo per evitare interferenze.
- Controllare l'orientamento del sensore a ultrasuoni per misurazioni accurate.
- Utilizzare una superficie stabile per il display per evitare vibrazioni meccaniche.
Istruzioni di cablaggio

Per collegare il sensore ultrasonico HC-SR04, inizia collegando il pin VCC (di solito rosso) al pin 5V dell'Arduino. Successivamente, collega il pin GND (tipicamente nero o giallo) a uno dei pin GND dell'Arduino. Il pin trigger (spesso blu) dovrebbe essere collegato al pin digitale 12 dell'Arduino, mentre il pin echo (di solito verde) dovrebbe essere collegato al pin digitale 11.
Per il display OLED SSD1306, collega il pin VCC al pin 5V dell'Arduino e il pin GND a GND. Il pin SCL deve essere collegato al pin A5 e il pin SDA al pin A4 sull'Arduino. Se stai usando un modello di Arduino diverso che dispone di pin I2C dedicati, collega invece il display direttamente a quei pin.
Esempi di codice e guida passo passo
Nella funzione setup inizializziamo il display e la comunicazione seriale. L'estratto seguente mostra come viene configurato il display:
void setup() {
Serial.begin(9600);// set serial monitor with 9600 baud
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D
}Qui il display viene inizializzato con l'indirizzo I2C, permettendogli di comunicare con l'Arduino. Il monitor seriale è inoltre configurato per stampare i valori di distanza.
Nel ciclo principale cancelliamo il display, misuriamo la distanza e la stampiamo. Il seguente frammento di codice mostra come gestiamo la misurazione della distanza:
void loop() {
display.clearDisplay();
String distance = String(sonar.ping_cm());// get distance and convert it to string for display
robojaxText(distance +"cm", 3, 20, 3, false);
display.display();
delay(50); // Wait 50ms between pings
}Questo ciclo misura continuamente la distanza e aggiorna il display con la lettura corrente. La funzione robojaxText viene utilizzata per visualizzare il testo sullo schermo OLED.
Dimostrazione / Cosa aspettarsi
Quando la configurazione è completa e il codice è stato caricato, dovresti vedere la distanza visualizzata sullo schermo OLED in centimetri. Man mano che avvicini o allontani un oggetto dal sensore, il valore visualizzato dovrebbe cambiare di conseguenza. Assicurati che il sensore sia orientato correttamente e non sia ostruito (nel video a 02:30).
Timestamp del video
- 00:00- Introduzione al progetto
- 01:15- Istruzioni di cablaggio
- 02:30- Spiegazione del codice
- 04:00- Dimostrazione del sensore
Risorse e riferimenti
-
EsternoLibreria Ultrasonica HC-SR04 dal sito ufficiale di Arduinoplayground.arduino.cc
File📁
Nessun file disponibile.