Nota
Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Accedi in anteprima agli annunci di nuovi prodotti e agli sneak peek.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a giveaway e promozioni festive.
👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
Ultrasonico
Panoramica
Quando stai facendo retromarcia, vedrai la distanza tra l’auto e gli ostacoli circostanti per evitare collisioni. Il dispositivo per rilevare la distanza è un sensore ultrasonico. In questo esperimento, imparerai come l’onda ultrasonica rileva la distanza.
Componenti necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Puoi anche acquistarli separatamente dai link qui sotto.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
---|---|
- |
|
Collegamenti
Schema Elettrico
Codice
Nota
Puoi aprire il file
06-ultrasonic.ino
dal percorsoelite-explorer-kit-main\basic_project\06-ultrasonic
direttamente.Oppure copia questo codice nell’IDE di Arduino.
Analisi del Codice
1. Inizializzare il sensore ultrasonico e LCD1602
#include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); // inizializza l'oggetto del display LCD con l'indirizzo I2C 0x27, 16 colonne e 2 righe // Definisci i numeri dei pin per il sensore ultrasonico const int echoPin = 3; const int trigPin = 4; void setup() { pinMode(echoPin, INPUT); // Imposta il pin echo come ingresso pinMode(trigPin, OUTPUT); // Imposta il pin trig come uscita lcd.init(); // inizializza l'LCD lcd.clear(); // pulisce il display LCD lcd.backlight(); // Assicurati che la retroilluminazione sia accesa }
2. Visualizzare la distanza sull’LCD1602
void loop() { float distance = readDistance(); // Chiama la funzione per leggere i dati del sensore e ottenere la distanza lcd.setCursor(0, 0); //Posiziona il cursore alla riga 1, colonna 1. Da qui verranno visualizzati i caratteri lcd.print("Distance:"); //Stampa "Distance:" sull'LCD lcd.setCursor(0, 1); //Posiziona il cursore alla riga 1, colonna 0 lcd.print(" "); //Lascia alcuni spazi dopo i caratteri per cancellare i caratteri precedenti che potrebbero rimanere. lcd.setCursor(7, 1); //Posiziona il cursore alla riga 1, colonna 7. lcd.print(distance); // stampa sull'LCD il valore della distanza convertito dal tempo tra l'invio e la ricezione del ping. lcd.setCursor(14, 1); //Posiziona il cursore alla riga 1, colonna 14. lcd.print("cm"); //stampa l'unità "cm" delay(800); // Ritarda di 800 millisecondi prima di ripetere il loop }
3. Convertire il tempo in distanza
float readDistance(){// ...}Qui, «PING» si riferisce al processo in cui il sensore ultrasonico invia un impulso ultrasonico (o «ping») e poi attende il suo eco.
Il PING viene attivato da un impulso HIGH di 2 o più microsecondi. (Dai un breve impulso LOW prima per assicurarti di avere un impulso HIGH pulito.)
digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);Il pin echo viene utilizzato per leggere il segnale del PING, un impulso HIGH la cui durata è il tempo (in microsecondi) dall’invio del ping alla ricezione dell’eco dell’oggetto. Utilizziamo la seguente funzione per ottenere la durata.
pulseIn(echoPin, HIGH);La velocità del suono è di 340 m/s o 29 microsecondi per centimetro.
Questo dà la distanza percorsa dal ping, in uscita e ritorno, quindi dividiamo per 2 per ottenere la distanza dell’ostacolo.
float distance = pulseIn(echoPin, HIGH) / 29.00 / 2; // Formula: (340m/s * 1us) / 2