Nota
Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su 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 community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi!
5.12 Misurare la Distanza¶
Il modulo ultrasonico viene utilizzato per la misurazione della distanza o per il rilevamento degli oggetti. In questo progetto, programmeremo il modulo per ottenere le distanze degli ostacoli. Inviando impulsi ultrasonici e misurando il tempo necessario affinché questi rimbalzino, possiamo calcolare le distanze. Questo ci permette di implementare azioni basate sulla distanza o comportamenti di evitamento degli ostacoli.
Componenti Necessari
In questo progetto, avremo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
ESP32 Starter Kit |
320+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Pin Disponibili
Pin Disponibili
Ecco un elenco dei pin disponibili sulla scheda ESP32 per questo progetto.
Per Ingresso
IO13, IO14, IO27, IO26, IO25, IO33, IO32, I35, I34, I39, I36, IO4, IO18, IO19, IO21, IO22, IO23
Per Uscita
IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23
Schema
L’ESP32 invia una serie di segnali a onda quadra al pin Trig del sensore ultrasonico ogni 10 secondi. Questo induce il sensore ultrasonico a emettere un segnale ultrasonico a 40kHz verso l’esterno. Se c’è un ostacolo davanti, le onde ultrasoniche verranno riflesse.
Registrando il tempo che passa dall’invio alla ricezione del segnale, dividendo per 2 e moltiplicando per la velocità del suono, è possibile determinare la distanza dall’ostacolo.
Collegamenti
Codice
Nota
Apri il file
5.12_ultrasonic.inonel percorsoesp32-starter-kit-main\c\codes\5.12_ultrasonic.Dopo aver selezionato la scheda (ESP32 Dev Module) e la porta appropriata, fai clic sul pulsante Upload.
Ricorda di impostare la velocità di comunicazione seriale a 115200 baud.
Dopo che il codice è stato caricato con successo, il monitor seriale stamperà la distanza tra il sensore ultrasonico e l’ostacolo di fronte.
Come funziona?
Per l’applicazione del sensore ultrasonico, possiamo controllare direttamente la sottofunzione.
float readSensorData(){// ...}
Il
trigPindel modulo ultrasonico trasmette un segnale a onda quadra di 10us ogni 2us.// Invia un segnale basso prima di inviare un segnale alto digitalWrite(trigPin, LOW); delayMicroseconds(2); // Invia un segnale alto di 10 microsecondi al trigPin digitalWrite(trigPin, HIGH); delayMicroseconds(10); // Ritorna al segnale basso digitalWrite(trigPin, LOW);
Il
echoPinriceve un segnale di livello alto se c’è un ostacolo nel raggio e utilizza la funzionepulseIn()per registrare il tempo dall’invio alla ricezione.unsigned long microsecond = pulseIn(echoPin, HIGH);
La velocità del suono è di 340 metri al secondo, equivalente a 29 microsecondi per centimetro. Misurando il tempo impiegato da un’onda quadra per raggiungere un ostacolo e tornare, possiamo calcolare la distanza percorsa dividendo il tempo totale per 2. Questo ci dà la distanza dell’ostacolo dalla sorgente dell’onda sonora.
float distance = microsecond / 29.00 / 2;
Nota che il sensore ultrasonico interromperà il programma quando è in funzione, il che potrebbe causare alcuni ritardi quando si scrivono progetti complessi.