Codice Arduino e video per sensore di distanza a ultrasuoni HC-SR04 con display OLED SSD1306

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.

How HC-SR04 ulrasonic sensor work
SSD1306 OLED display

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

ProduttoreVari
Numero di parteHC-SR04
Tensione logica/I/O5 V
Tensione di alimentazione5 V
Corrente di uscita (per canale)15 mA
Corrente di picco (per canale)20 mA
Linee guida sulla frequenza PWMNon applicabile
Soglie logiche di ingressoda 0.3*Vcc a 0.7*Vcc
Caduta di tensione / RDS(on) / saturazioneNon applicabile
Limiti termici0-70 °C
Pacchettomodulo a 4 pin
Note / variantiModulo 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

Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED

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

Immagini

HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
SSD1306 OLED display
SSD1306 OLED display
SSD1306 OLED display-dimensions
SSD1306 OLED display-dimensions
SSD1306_128x64_OLDE-4
SSD1306_128x64_OLDE-4
SSD1306 OLED display-back
SSD1306 OLED display-back
44-This is the Arduino code for an HC-SR04 ultrasonic distance sensor with an SSD1306 display.
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.