I denne artikkelen vil vi koble HC-SR04 ultralydavstandsmåler-ekkolodd til Arduino.
Nødvendig
- - Arduino;
- - ultralydssensor HC-SR04;
- - tilkobling av ledninger.
Bruksanvisning
Trinn 1
Handlingen til HC-SR04 ultralydavstandsmåler er basert på prinsippet om ekkolokalisering. Den avgir lydimpulser i rommet og mottar et signal reflektert fra en hindring. Avstanden til objektet bestemmes av lydbølgens forplantningstid til hinderet og tilbake.
Lydbølgen utløses ved å bruke en positiv puls på minst 10 mikrosekunder til TRIG-benet i avstandsmåleren. Så snart pulsen slutter, avgir avstandsmåleren et utbrudd av lydpulser med en frekvens på 40 kHz inn i rommet foran det. Samtidig lanseres algoritmen for å bestemme forsinkelsestiden for det reflekterte signalet, og en logisk enhet vises på ECHO-beinet i avstandsmåleren. Så snart sensoren oppdager det reflekterte signalet, vises et logisk null på ECHO-pinnen. Varigheten av dette signalet ("Echo delay" i figuren) bestemmer avstanden til objektet.
Avstandsmålingsområde for HC-SR04 avstandsmåler - opptil 4 meter med en oppløsning på 0,3 cm. Observasjonsvinkel - 30 grader, effektiv vinkel - 15 grader. Strømforbruket i standby-modus er 2 mA under drift - 15 mA.
Steg 2
Strømforsyningen til ultralydavstandsmåler utføres med en spenning på +5 V. De to andre pinnene er koblet til alle digitale porter i Arduino, vi kobler til 11 og 12.
Trinn 3
La oss nå skrive en skisse som bestemmer avstanden til hindringen og sender den ut til serieporten. Først setter vi tallene til TRIG- og ECHO-pinnene - dette er pinn 12 og 11. Deretter erklærer vi utløseren som en utgang og ekko som en inngang. Vi initialiserer serieporten til 9600 baud. Ved hver repetisjon av sløyfen () leser vi avstanden og sender den ut til porten.
GetEchoTiming () -funksjonen genererer en triggerpuls. Det skaper bare en strøm på 10 mikrosekunder puls, som er en utløser for start av stråling ved avstandsmåleren til en lydpakke ut i rommet. Så husker hun tiden fra begynnelsen av overføringen av lydbølgen til ekkoets ankomst.
GetDistance () -funksjonen beregner avstanden til objektet. Fra skolens fysikkurs husker vi at avstanden er lik hastigheten ganget med tid: S = V * t. Lydens hastighet i luften er 340 m / s, tiden i mikrosekunder vi kjenner er "duratuion". For å få tiden i sekunder, del med 1.000.000. Siden lyden beveger seg to ganger avstanden - til objektet og tilbake - må du dele avstanden i to. Så det viser seg at avstanden til objektet S = 34000 cm / sek * varighet / 1.000.000 sek / 2 = 1.7 cm / sek / 100, som vi skrev i skissen. Mikrokontrolleren utfører multiplikasjon raskere enn divisjon, så jeg byttet ut "/ 100" med tilsvarende "* 0, 01".
Trinn 4
Også mange biblioteker er skrevet for å arbeide med en ultralydavstandsmåler. For eksempel denne: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Biblioteket er installert på en standard måte: last ned, pakk ut til bibliotekkatalogen, som ligger i mappen med Arduino IDE. Etter det kan biblioteket brukes.
Etter å ha installert biblioteket, la oss skrive en ny skisse. Resultatet av arbeidet er det samme - den serielle portmonitoren viser avstanden til objektet i centimeter. Hvis du skriver float dist_cm = ultrasonic. Ranging (INC); i skissen, vil avstanden vises i tommer.
Trinn 5
Så vi koblet HC-SR04 ultralydavstandsmåler til Arduino og mottok data fra den på to forskjellige måter: ved hjelp av et spesielt bibliotek og uten.
Fordelen med å bruke biblioteket er at mengden kode reduseres betydelig og lesbarheten til programmet forbedres, du trenger ikke å fordype deg i enhetens komplikasjoner, og du kan umiddelbart bruke den. Men dette er også ulempen: du forstår mindre godt hvordan enheten fungerer og hvilke prosesser som foregår i den. Uansett, hvilken metode du skal bruke er opp til deg.