Telemetri ad ultrasuoni sono divertenti piccoli sensori in grado di misurare la distanza. Puoi usarli per trovare la distanza da un oggetto o per rilevare quando qualcosa è vicino al sensore come un rilevatore di movimento. Sono ideali per progetti che coinvolgono la navigazione, l’evitamento di oggetti e la sicurezza domestica. Perché usano il suono per misurare la distanza, funzionano altrettanto bene al buio come fanno nella luce., Il telemetro ad ultrasuoni che userò in questo tutorial è l’HC-SR04, che può misurare distanze da 2 cm fino a 400 cm con una precisione di ±3 mm.
In questo articolo, ti mostrerò come realizzare tre diversi circuiti di telemetro per Arduino. Il primo circuito telemetro è facile da configurare, e ha una buona precisione. Gli altri due sono un po ‘ più complicato, ma sono più precisi perché fattore di temperatura e umidità. Ma prima di entrare in questo, parliamo di come il telemetro misura la distanza.,
La velocità del suono
Telemetri ad ultrasuoni misurare la distanza emettendo un impulso di suono ad ultrasuoni che viaggia attraverso l’aria fino a quando non colpisce un oggetto. Quando quell’impulso sonoro colpisce un oggetto, viene riflesso dall’oggetto e ritorna al telemetro ultrasonico., Il telemetro ad ultrasuoni misura quanto tempo impiega l’impulso sonoro a viaggiare nel suo viaggio di andata e ritorno dal sensore e viceversa. Quindi invia un segnale all’Arduino con informazioni su quanto tempo ci è voluto per l’impulso sonoro per viaggiare.
Conoscendo il tempo necessario all’impulso ultrasonico per viaggiare avanti e indietro verso l’oggetto e conoscendo anche la velocità del suono, Arduino può calcolare la distanza dall’oggetto., La formula in relazione la velocità del suono, la distanza e il viaggio nel tempo è:
Riorganizzare questa formula, otteniamo la formula utilizzata per calcolare la distanza:
La variabile tempo è il tempo necessario per l’impulso ad ultrasuoni per lasciare il sensore, rimbalzano l’oggetto, e tornare al sensore., In realtà dividiamo questa volta a metà poiché abbiamo solo bisogno di misurare la distanza dall’oggetto, non la distanza dall’oggetto e dal sensore. La variabile di velocità è la velocità alla quale il suono viaggia attraverso l’aria.
La velocità del suono nell’aria cambia con la temperatura e l’umidità. Pertanto, al fine di calcolare con precisione la distanza, avremo bisogno di considerare la temperatura ambiente e l’umidità., La formula per la velocità del suono in aria, con temperatura e umidità rappresentato è:
Per esempio, a 20°C e 50% di umidità, il suono viaggia a una velocità di:
l’equazione di cui sopra, è chiaro che temperatura ha il più grande effetto sulla velocità del suono. L’umidità ha una certa influenza, ma è molto inferiore all’effetto della temperatura.,
Come il telemetro ad ultrasuoni Misura la distanza
Sulla parte anteriore del telemetro ad ultrasuoni sono due cilindri metallici. Questi sono trasduttori. I trasduttori convertono le forze meccaniche in segnali elettrici. Nel telemetro ultrasonico, c’è un trasduttore di trasmissione e un trasduttore di ricezione. Il trasduttore trasmittente converte un segnale elettrico nell’impulso ultrasonico ed il trasduttore ricevente converte l’impulso ultrasonico riflesso indietro in un segnale elettrico., Se si guarda la parte posteriore del telemetro, si vedrà un IC dietro il trasduttore di trasmissione etichettato MAX3232. Questo è l’IC che controlla il trasduttore di trasmissione. Dietro il trasduttore ricevente c’è un IC etichettato LM324. Questo è un quad Op-Amp che amplifica il segnale generato dal trasduttore ricevente in un segnale abbastanza forte da trasmettere all’Arduino.,
La HC-SR04 ultrasuoni range finder ha quattro perni:
- Vcc – fornisce l’energia per generare gli impulsi a ultrasuoni
- GND collegato a terra
- Trig – dove Arduino invia il segnale per iniziare l’impulso ad ultrasuoni
- Echo – dove ultrasuoni range finder, invia le informazioni in merito alla durata del viaggio intrapreso dall’impulso ultrasonico ad Arduino
Per avviare la misura di una distanza, abbiamo bisogno di inviare un 5V segnale alto per il Trig pin per almeno 10 µs., Quando il modulo riceve questo segnale, emetterà 8 impulsi di suono ultrasonico ad una frequenza di 40 kHz dal trasduttore trasmittente. Quindi attende e ascolta il trasduttore ricevente per il segnale riflesso. Se un oggetto è nel raggio d’azione, gli 8 impulsi verranno riflessi sul sensore. Quando l’impulso colpisce il trasduttore ricevente, il pin Echo emette un segnale ad alta tensione.
La lunghezza di questo segnale ad alta tensione è uguale al tempo totale impiegato dagli 8 impulsi per viaggiare dal trasduttore trasmittente e tornare al trasduttore ricevente., Tuttavia, vogliamo solo misurare la distanza dall’oggetto e non la distanza del percorso che l’impulso sonoro ha preso. Pertanto, dividiamo quel tempo a metà per ottenere la variabile temporale nell’equazione d = s x t sopra. Poiché conosciamo già la velocità del suono, possiamo risolvere l’equazione per la distanza.
Setup telemetro ad ultrasuoni per uscita monitor seriale
Iniziamo facendo un semplice telemetro ad ultrasuoni che emetterà misurazioni della distanza al monitor seriale. Se invece si desidera emettere le letture su un display LCD, controllare la sezione successiva., Collegamento tutto è facile, basta collegare e come questo:
una Volta che hai tutto collegato, caricare questo programma per Arduino:
descrizione del Codice
- Linea 11: Dichiara le variabili
duration
edistance
. - Linee 12 e 13: Invia un segnale BASSO di 2 µs al
trigPin
per assicurarsi che sia spento all’inizio del ciclo del programma., - Linee 15-17: Invia un segnale ALTO di 10 µs al
trigPin
per avviare la sequenza di otto impulsi ultrasonici da 40 kHz inviati dal trasduttore trasmittente. - Linea 19: Definisce la variabile
duration
come la lunghezza (in µs) di qualsiasi segnale di ingresso ELEVATO rilevato sulechoPin
. L’uscita del perno di eco è uguale al tempo che prende l’impulso ultrasonico emesso per viaggiare all’oggetto e di nuovo al sensore., - Linea 20: Definisce la variabile
distance
come la durata (tempo in d = s x t) moltiplicata per la velocità del suono convertita da metri al secondo a centimetri per µs (0,0344 cm/µs). - Linee 22-24: Se la distanza è maggiore o uguale a 400 cm, o inferiore o uguale a 2 cm, visualizzare “Distanza = Fuori portata” sul monitor seriale.
- Linee 26-30: Se la misurazione della distanza non è fuori portata, visualizzare la distanza calcolata nella linea 20 sul monitor seriale per 500 ms.,
Ultrasuoni Range Finder Con LCD di Uscita
Se si desidera uscita la misura della distanza di un LCD 16X2, seguire questo schema per collegare il range finder e LCD per Arduino:
Se avete bisogno di più aiuto di collegare l’LCD, provare il nostro altro tutorial su come impostare un display LCD Arduino., Quando tutto è collegato, caricare questo codice per Arduino:
Una Maggiore Precisione ad Ultrasuoni Range Finder
Dal momento che la temperatura è una variabile della velocità del suono equazione di cui sopra (c = 331.4 + (0.606 x T) + (0.0124 x H)), la temperatura dell’aria attorno al sensore influisce sulle nostre misurazioni di distanza. Per compensare questo, tutto quello che dobbiamo fare è aggiungere un termistore al nostro circuito e inserire le sue letture nell’equazione. Questo dovrebbe dare alle nostre misurazioni della distanza una maggiore precisione., Un termistore è un resistore variabile che cambia la resistenza con la temperatura. Per saperne di più sui termistori, consulta il nostro articolo, Arduino Thermistor Temperature Sensor Tutorial. Ecco uno schema per aiutarvi a aggiungere un termistore per il tuo range finder circuito:
- R1 = 10K Ohm
- Th = 10K Ohm termistore
Nota: il valore di R1 deve essere uguale alla resistenza del vostro termistore.,
Dopo tutto è collegato, caricare questo codice per il Arduino:
Spiegazione del codice
Nel programma di base range finder all’inizio di questo articolo, abbiamo usato la formula d = s x t per calcolare la distanza. In questo programma, usiamo la formula che tiene conto della temperatura e dell’umidità (c = 331,4 + (0,606 x T) + (0,0124 x H)).
Nelle righe 5-10, l’equazione di Steinhart-Hart viene utilizzata per convertire i valori di resistenza del termistore in temperatura, che sono memorizzati in una variabile chiamatatemp
., Nella riga 35, aggiungiamo una nuova variabile (spdSnd
) che contiene la velocità dell’equazione del suono. L’uscita dalla variabilespdSnd
viene utilizzata come velocità nella funzionedistance
sulla riga 36.
La molto alta (quasi troppo alta) Precisione ad ultrasuoni Range Finder
La temperatura compensata ad ultrasuoni range finder circuito è abbastanza preciso per quello che la maggior parte delle persone lo userà per. Tuttavia, c’è un altro fattore che influenza la velocità del suono nell’aria (e quindi il calcolo della distanza), e cioè l’umidità., Si può dire dalla velocità del suono equazione che l’umidità ha solo un piccolo effetto sulla velocità del suono, ma lascia check it out comunque.
Esistono diversi tipi di sensori di umidità che è possibile utilizzare su Arduino, ma utilizzerò il sensore di umidità e temperatura DHT11. Questo modulo ha in realtà un termistore oltre al sensore di umidità, quindi il set up è davvero semplice:
Dopo aver collegato tutto, avremo bisogno di installare una libreria speciale per eseguire il codice., La biblioteca è la biblioteca DHTLib scritto da Rob Tillaart. La libreria è facile da installare. In primo luogo, scaricare il .file zip qui sotto. Quindi nell’IDE Arduino, vai a Sketch>Includi Libreria>Aggiungi libreria ZIP, quindi seleziona il DHTLib.file zip.,
DHTLib
Dopo che la libreria è installata, caricare questo codice per Arduino:
descrizione del Codice
Le letture di temperatura e umidità in uscita dal DHT11 sono digitali, quindi non abbiamo bisogno di utilizzare il Steinhart-Hart equazione per convertire la resistenza del termistore della temperatura. La libreria DHTLib contiene tutte le funzioni necessarie per ottenere la temperatura e l’umidità in unità che possiamo usare direttamente nell’equazione della velocità del suono. Le variabili per temperatura e umidità sono denominate DHT.temperature
eDHT.humidity
., Quindi, la velocità viene utilizzata come variabile nell’equazione della distanza sulla linea 28.
Per l’uscita di misura della distanza di un LCD, collegare prima il tuo LCD seguendo il nostro tutorial su Come Impostare un Display LCD su un Arduino, quindi caricare questo codice:
Guarda il video tutorial per vedere le ultrasuoni range finder circuiti in azione:
Grazie per la lettura! Lascia un commento se avete domande su come impostare questi up., Se ti piacciono i nostri articoli qui a Circuit Basics, iscriviti e ti faremo sapere quando pubblicheremo nuovi articoli. Inoltre, se conosci qualcun altro che troverebbe utile questo articolo, per favore condividilo!