I den här artikeln ansluter vi HC-SR04 ultraljudsmätare-ekolod till Arduino.
Nödvändig
- - Arduino;
- - ultraljudssensor HC-SR04;
- - anslutande ledningar.
Instruktioner
Steg 1
Verkan av HC-SR04 ultraljudsmätare bygger på principen om ekolokalisering. Den avger ljudimpulser i rymden och tar emot en signal som reflekteras från ett hinder. Avståndet till objektet bestäms av ljudvågens förökningstid till hindret och tillbaka.
Ljudvågen utlöses genom att en positiv puls på minst 10 mikrosekunder appliceras på TRIG-benet i avståndsmätaren. Så snart pulsen slutar, avger avståndsmätaren en serie ljudpulser med en frekvens på 40 kHz in i utrymmet framför den. Samtidigt lanseras algoritmen för bestämning av fördröjningstiden för den reflekterade signalen, och en logisk enhet visas på ECHO-benet i avståndsmätaren. Så snart sensorn upptäcker den reflekterade signalen visas en logisk noll på ECHO-stiftet. Varaktigheten för denna signal ("Ekofördröjning" i figuren) avgör avståndet till objektet.
Avståndsmätningsområde för HC-SR04 avståndsmätare - upp till 4 meter med en upplösning på 0,3 cm. Observationsvinkel - 30 grader, effektiv vinkel - 15 grader. Strömförbrukningen i standby-läge är 2 mA under drift - 15 mA.
Steg 2
Strömförsörjningen till ultraljudsmätaren utförs med en spänning på +5 V. De andra två stiften är anslutna till alla digitala portar i Arduino, vi ansluter till 11 och 12.
Steg 3
Låt oss nu skriva en skiss som bestämmer avståndet till hindret och matar ut det till serieporten. Först ställer vi in antalet TRIG- och ECHO-stift - det här är stift 12 och 11. Sedan förklarar vi avtryckaren som en utgång och eko som en ingång. Vi initialiserar den seriella porten till 9600 baud. Vid varje upprepning av slingan () läser vi avståndet och skickar ut det till porten.
GetEchoTiming () -funktionen genererar en triggerpuls. Det skapar bara en ström på 10 mikrosekunder puls, vilket är en utlösare för att börja strålning av avståndsmätaren för ett ljudpaket i rymden. Sedan kommer hon ihåg tiden från början av överföringen av ljudvågen till ekot.
Funktionen getDistance () beräknar avståndet till objektet. Från skolans fysikkurs kommer vi ihåg att avståndet är lika med hastigheten multiplicerat med tiden: S = V * t. Ljudets hastighet i luften är 340 m / s, tiden i mikrosekunder vi känner är "duratuion". För att få tiden i sekunder, dela med 1 000 000. Eftersom ljudet rör sig två gånger så långt - till objektet och tillbaka - måste du dela avståndet i hälften. Så det visar sig att avståndet till objektet S = 34000 cm / sek * varaktighet / 1.000.000 sek / 2 = 1.7 cm / sek / 100, vilket vi skrev i skissen. Mikrokontrollern utför multiplikation snabbare än division, så jag ersatte "/ 100" med motsvarande "* 0, 01".
Steg 4
Dessutom har många bibliotek skrivits för att arbeta med en ultraljudsmätare. Till exempel den här: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Biblioteket installeras på ett vanligt sätt: ladda ner, packa upp det till bibliotekskatalogen, som finns i mappen med Arduino IDE. Därefter kan biblioteket användas.
Efter att ha installerat biblioteket, låt oss skriva en ny skiss. Resultatet av dess arbete är detsamma - den seriella portmonitorn visar avståndet till objektet i centimeter. Om du skriver float dist_cm = ultrasonic. Ranging (INC); i skissen visas avståndet i tum.
Steg 5
Så vi kopplade HC-SR04 ultraljudsmätare till Arduino och fick data från den på två olika sätt: med hjälp av ett speciellt bibliotek och utan.
Fördelen med att använda biblioteket är att mängden kod minskas avsevärt och läsbarheten i programmet förbättras, du behöver inte gräva in i enhetens svårigheter och du kan omedelbart använda den. Men detta är också nackdelen: du förstår mindre bra hur enheten fungerar och vilka processer som sker i den. I vilket fall som helst, vilken metod du ska använda är upp till dig.