Sådan konfigureres en Ultralydsafstandsmåler på en Arduino

Ultralydsafstandsmåler er sjove små sensorer, der kan måle afstand. Du kan bruge dem til at finde afstanden til et objekt eller til at registrere, når noget er i nærheden af sensoren som en bevægelsesdetektor. De er ideelle til projekter, der involverer navigation, objektundgåelse og sikkerhed i hjemmet. Fordi de bruger lyd til at måle afstand, fungerer de lige så godt i mørket som i lyset., Den ultrasoniske range finder jeg kommer til at bruge i denne tutorial er HC-SR04, som kan måle afstande fra 2 cm til 400 cm med en nøjagtighed på ±3 mm.

I denne artikel, jeg vil vise dig, hvordan du laver tre forskellige range finder kredsløb til Arduino. Den første range finder kredsløb er let at sætte op, og har temmelig god nøjagtighed. De to andre er lidt mere komplicerede, men er mere præcise, fordi de faktor i temperatur og fugtighed. Men før vi kommer ind i det, lad os tale om, hvordan afstandsmåleren måler afstand.,

BONUS: jeg lavede en hurtig startguide til denne tutorial, som du kan do .nloade og gå tilbage til senere, hvis du ikke kan konfigurere dette lige nu. Det dækker alle de trin, diagrammer og kode, du har brug for at komme i gang.

lydens hastighed

Ultralydafstandsmålere måler afstanden ved at udsende en puls af ultralydlyd, der bevæger sig gennem luften, indtil den rammer et objekt. Når denne lydpuls rammer et objekt, reflekteres det fra objektet og rejser tilbage til ultralydsfeltfinderen., Ultrasonic range finder måler, hvor lang tid det tager lydpulsen at rejse i sin rundtur fra sensoren og ryggen. Det sender derefter et signal til Arduino med oplysninger om, hvor lang tid det tog for sonic puls til at rejse.

at kende den tid det tager ultralydspulsen at rejse frem og tilbage til objektet, og også kende lydens hastighed, kan Arduino beregne afstanden til objektet., Formlen vedrørende lydens hastighed, afstand, tid og rejst er:

Omordning af denne formel, får vi formlen anvendes til at beregne afstand:

tiden variable er den tid, det tager for ultralyd puls til at forlade sensor, hoppe fra objekt, og vende tilbage til sensoren., Vi deler faktisk denne gang i halvdelen, da vi kun behøver at måle afstanden til objektet, ikke afstanden til objektet og tilbage til sensoren. Hastighedsvariablen er den hastighed, hvormed lyden bevæger sig gennem luften.

lydens hastighed i luften ændres med temperatur og fugtighed. Derfor skal vi overveje omgivelsestemperaturen og fugtigheden for nøjagtigt at beregne afstanden., Formlen for lydens hastighed i luft med temperatur og luftfugtighed tegnede sig for er:

For eksempel, ved 20°C og 50% luftfugtighed, lyd bevæger sig med en hastighed af:

I ovenstående ligning, er det klart, at temperaturen har den største effekt på hastigheden af lyd. Fugtighed har en vis indflydelse, men det er meget mindre end effekten af temperaturen.,

hvordan Ultralydafstandsmåler måler afstand

på forsiden af ultralydafstandsmåler er to metalcylindre. Disse er transducere. Transducere konverterer mekaniske kræfter til elektriske signaler. I ultralydsområdet finder er der en transmitterende transducer og modtagende transducer. Den transmitterende transducer Konverterer et elektrisk signal til ultralydspulsen, og den modtagende transducer konverterer den reflekterede ultralydspuls tilbage til et elektrisk signal., Hvis du ser på bagsiden af afstandsmåleren, vil du se en IC bag den transmitterende transducer mærket MA .3232. Dette er den IC, der styrer transmitterende transducer. Bag den modtagende transducer er en IC mærket LM324. Dette er en quuad Op-Amp, der forstærker signalet genereret af den modtagende transducer til et signal, der er stærkt nok til at transmittere til Arduino.,

HC-SR04 ultralyd range finder (laserområdefinder) har fire ben:

  • Vcc – leverer strøm til at generere den ultrasoniske impulser
  • GND – forbindelse til jorden
  • Trig – hvor Arduino sender signal til at starte den ultrasoniske puls
  • Echo – hvor ultralyd range finder (laserområdefinder) sender oplysninger om varigheden af turen taget af ultralyd puls til Arduino

for At indlede en afstandsmåling, vi har brug for at sende en 5V højt signal til Trig pin-kode til mindst 10 µs., Når modulet modtager dette signal, udsender det 8 pulser af ultralydslyd ved en frekvens på 40 KH.fra den transmitterende transducer. Derefter venter det og lytter på den modtagende transducer for det reflekterede signal. Hvis en genstand er inden for rækkevidde, vil de 8 impulser blive reflekteret tilbage til sensoren. Når pulsen rammer den modtagende transducer, udsender Echo pin et højspændingssignal.

længden af dette højspændingssignal er lig med den samlede tid, de 8 impulser tager at rejse fra den transmitterende transducer og tilbage til den modtagende transducer., Vi ønsker dog kun at måle afstanden til objektet, og ikke afstanden til den sti, lydpulsen tog. Derfor deler vi den tid i halvdelen for at få tidsvariablen I d = s.t ligningen ovenfor. Da vi allerede kender lydens (lydens) hastighed, kan vi løse ligningen for afstand.

Ultrasonic Range Finder Setup for seriel Monitor Output

lad os starte med at lave en simpel ultralyd range finder, der vil output afstandsmålinger til din serielle skærm. Hvis du i stedet vil udskrive aflæsningerne til et LCD, skal du tjekke det næste afsnit., Tilslutning af alt er let, bare wire det op sådan her:

Når du har alt, hvad der er tilsluttet, skal du uploade dette program til Arduino:

Forklaring af Kode

  • Linje 11: Erklærer variabler duration og distance.
  • linier 12 og 13: sender et 2 µs lavt signal til trigPin for at sikre, at det er slukket i starten af programsløjfen.,
  • linjer 15-17: sender et 10 µs højt signal til trigPin for at starte sekvensen af otte 40 KH.ultralydsimpulser sendt fra den transmitterende transducer.linje 19: definerer variablenduration som længden (i µs) af ethvert højt indgangssignal detekteret ved echoPin. Echo pin output er lig med den tid det tager den udsendte ultralydspuls at rejse til objektet og tilbage til sensoren.,linje 20: definerer variablendistance som varigheden (tid i d = S.t) ganget med lydhastigheden konverteret fra meter pr. sekund til centimeter pr .ss (0,0344 cm/µs).22-24: hvis afstanden er større end eller lig med 400 cm eller mindre end eller lig med 2 cm, skal du vise “afstand = uden for rækkevidde” på den serielle skærm.
  • linjer 26-30: hvis afstandsmålingen ikke er uden for rækkevidde, skal du vise afstanden beregnet i linje 20 på den serielle skærm for 500 ms.,

Ultralyd afstandsmåler Med LCD-Output

Hvis du ønsker at udlæse afstandsmålinger til en 16X2 LCD-følg dette diagram til at oprette forbindelse området finder og LCD-til din Arduino:

Hvis du har brug for mere hjælp tilslutning af LCD-displayet, kan du prøve vores andre tutorial om etablering af et LCD-på Arduino., Når alt er tilsluttet, skal du uploade denne kode til Arduino:

En Højere Nøjagtighed Ultralyd Range Finder (laserområdefinder)

Da temperaturen er en variabel i lydens hastighed, ligning ovenfor (c = 331.4 + (0.606 x T) + (0.0124 x H)), den lufttemperaturen omkring sensoren påvirker vores afstandsmålinger. For at kompensere for dette er alt, hvad vi skal gøre, at tilføje en termistor til vores kredsløb og indtaste dens aflæsninger i ligningen. Dette bør give vores afstandsmålinger større nøjagtighed., En termistor er en variabel modstand, der ændrer modstand med temperatur. For at lære mere om termistorer, tjek vores artikel, Arduino Thermistor Temperature Sensor Tutorial. Her er et diagram til at hjælpe dig tilføje en termistor til din range finder kredsløb:

  • R1 = 10K Ohm modstand
  • Th = 10K Ohm termistor

Bemærk: værdien af R1 skal lige modstanden i din termistor.,

Når alt er tilsluttet, skal du uploade denne kode til Arduino:

forklaring af koden

i programmet basic range finder i begyndelsen af denne artikel brugte vi formlen d = S.t til at beregne afstanden. I dette program bruger vi formlen, der tegner sig for temperatur og fugtighed (C = 331,4 + (0,606 T T) + (0,0124.H)).

i linjer 5-10 bruges Steinhart-Hart-ligningen til at konvertere termistormodstandsværdierne til temperatur, som gemmes i en variabel kaldet temp., I linje 35 tilføjer vi en ny variabel (spdSnd), som indeholder lydens hastighed. Udgangen fra spdSnd variabel bruges som hastigheden i distance funktion på linje 36.

den meget høje (næsten for høje) nøjagtighed Ultrasonic Range Finder

temperaturkompenseret ultralyd range finder kredsløb er ret nøjagtigt for, hvad de fleste mennesker vil bruge det til. Der er dog en anden faktor, der påvirker lydens hastighed i luften (og derfor afstandsberegningen), og det er Fugtighed., Du kan fortælle fra lydens hastighed ligning, at Fugtighed kun har en lille effekt på lydens hastighed, men lad os tjekke det alligevel.

Der er flere typer fugtighedssensorer, du kan bruge på Arduino, men jeg vil bruge DHT11 fugtigheds-og temperaturføleren. Dette modul har faktisk en termistor i tillæg til de fugt-sensor, så den er oprettet, er virkelig simpelt:

Efter at alt er tilsluttet, vi bliver nødt til at installere et særligt bibliotek til at køre kode., Biblioteket er dhtlib-biblioteket skrevet af Rob Tillaart. Biblioteket er let at installere. Først do .nloade .zipip-fil nedenfor. Gå derefter til skitse i Arduino IDE>Inkluder Bibliotek>Tilføj ZIPIP-bibliotek, og vælg derefter dhtlib.zipip-fil.,

DHTLib

Efter at biblioteket er installeret, skal du uploade koden til din Arduino:

Forklaring af Kode

Den temperatur og fugtighed aflæsninger output af DHT11 er digitale, så vi behøver ikke at bruge Steinhart-Hart ligning til at konvertere termistor ‘ s resistance temperatur. Dhtlib-biblioteket indeholder alle de funktioner, der er nødvendige for at få temperaturen og fugtigheden i enheder, vi kan bruge direkte i lydligningens hastighed. Variablerne for temperatur og fugtighed er navngivet DHT.temperature og DHT.humidity., Derefter bruges hastighed som en variabel i afstandsligningen på linje 28.

for At udlæse afstandsmålinger, at en LCD-skærm, skal du først tilslutte din LCD-efter vores tutorial, Hvordan at oprette en LCD-Skærm på en Arduino, og derefter uploade denne kode:

Se den video tutorial til at se ultralyds-range finder kredsløb i aktion:

Tak for læsning! Efterlad en kommentar, hvis du har spørgsmål om, hvordan du konfigurerer disse., Hvis du kan lide vores artikler her på Circuit Basics, abonnere og vi vil lade dig vide, når vi udgiver nye artikler. Også, hvis du kender nogen anden, der ville finde denne artikel nyttig, kan du dele det!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *