Articles

Kuinka käyttää HC-SR04 Ultraääni Etäisyys Anturi Arduino

HC-SR04 on edullinen, helppo käyttää ultraääni etäisyys anturi, vaihteluväli 2 400 cm. Sitä käytetään yleisesti robottien ja automaatioprojektien esteenä. Tässä opetusohjelma, opit, miten anturi toimii ja miten käyttää sitä Arduino.

olen mukana 5 esimerkkejä kytkentäkaavio ja koodin, joten voit aloittaa kokeilemalla anturi., Tarkastelemme ensin esimerkkiä, joka ei käytä Arduino-kirjastoa. Seuraavaksi, näytän sinulle, miten voit käyttää NewPing kirjasto luoda kompaktimpi koodi.

Halpa ultraääni etäisyys/läheisyys anturit ovat suuria, mutta joissakin hankkeissa, saatat tarvita vedenpitävä anturi, kuten JSN-SR04T-tai IR-anturi, joka ei vaikuta lämpötilan muutokset.,on

20×4 character I2C LCD (optional) × 1 Amazon
AliExpress DHT11 sensor (optional) × 1 Amazon

Software

Arduino IDE

Makerguides.,com on mukana Amazon Services LLC Associates Ohjelma, affiliate mainonta ohjelman tarkoituksena on tarjota keinoja sivustot ansaita mainonta maksuja mainonta ja linkittää tuotteita Amazon.com.

Miten ultraääni etäisyys anturi toimii?

Ultraääni anturit toimivat lähettämällä ääniaaltoja, joiden taajuus on liian korkea ihmisen kuulla. Nämä ääniaallot kulkevat ilman läpi äänen nopeudella, noin 343 m/s., Jos anturin edessä on esine, ääniaallot heijastuvat takaisin ja ultraäänianturin vastaanotin havaitsee ne. Mittaamalla, kuinka paljon aikaa ääniaaltojen lähettämisen ja vastaanottamisen välillä kului, voidaan laskea anturin ja kohteen välinen etäisyys.

Ultraääni etäisyys anturien toimintaperiaate. Lähde: https://www.maxbotix.com/

20°C, äänen nopeus on noin 343 m/s tai 0.034 cm/µs., Sanotaan, että aika lähettää ja vastaanottaa ääniaaltoja on 2000 mikrosekuntia. Jos kerrotaan äänen nopeus ääniaaltojen kulkiessa, saadaan se etäisyys, jonka ääniaallot kulkivat.

Distance = Speed x Time

, mutta se ei ole etsimämme tulos. Etäisyys anturin ja kohteen on itse asiassa vain puoli tämä etäisyys, koska ääniaallot matkusti anturi kohteeseen ja takaisin objekti-anturi. Joten sinun täytyy jakaa tulos kahdella.,

Etäisyys (cm) = äänen Nopeus (cm/µs) × Aika (µs) / 2

Ja niin esimerkiksi tässä tulee:

Etäisyys (cm) = 0.0343 (cm/µs) × 2000 (µs) / 2 = 34.3 cm

Lämpötilan riippuvuus äänen nopeus

äänen nopeus todella riippuu voimakkaasti lämpötilasta, ja vähemmässä määrin siitä, kosteuden. Wikipedian mukaan äänen nopeus kasvaa noin 0,6 m / s celsiusastetta kohden., Useimmissa tapauksissa 20°C: ssa voit vain käyttää 343 m/s, mutta jos haluat saada tarkempia lukemia, voit laskea äänen nopeus seuraavalla kaavalla:

V (m/s) = 331.3 + (0.606 × T)

V = äänen Nopeus (m/s)
T = Ilman Lämpötila (°C)

Tämä kaava ei sisällä kosteutta, koska sen vaikutus äänen nopeus on vain hyvin pieni.

Alla löydät opetusohjelma miten käyttää DHT11 lämpötila ja kosteus anturi kalibroida äänen nopeudella ja saada tarkempi etäisyys käsittelyssä HC-SR04.,

Kuinka HC-SR04 toimii

edessä HC-SR04-anturi, voit löytää kaksi hopeaa sylinterit (ultraäänianturia), yksi on lähettimen ääniaallot ja toinen vastaanotin. Anna-anturi tuottaa sonic räjähtää, sinun täytyy asettaa Trig pin korkea vähintään 10 µs. Tämän jälkeen anturi luo 8 syklin puhkeamisen ultraääneen 40 kHz: n kohdalla.

Tämä sonic räjähtää kulkee äänen nopeudella ja pomppii takaisin ja saa saamat vastaanotin anturi. Echo pin sitten lähtee aika, että ääniaallot kulkivat mikrosekunneissa.,

Voit käyttää pulseIn() funktio Arduino-koodi lukea, pituus pulse-Echo-pin. Sen jälkeen voit laskea anturin ja kohteen välisen etäisyyden edellä mainitulla kaavalla.,ncy

40 kHz – mittausalueen 2 – 400 cm Päätöslauselma 3 mm Mittaus kulma – 15 astetta Trigger input-signaali 10 µs korkea pulssi Kustannukset Tarkista hinta

lisätietoja voit tarkistaa datalehdestä alla:

Johdotus – Yhdistää HC-SR04 Arduino UNO

johdotus kaavio näyttää, miten yhdistää HC-SR04-anturi Arduino.,

HC-SR04 Arduino kytkentäkaavio

koodi esimerkkejä alla käyttää digital pin 2 ja 3 liipaisinta ja echo pin vastaavasti, mutta tietenkin voit muuttaa minkä tahansa digitaalisen pin haluat.,C-SR04 Connections

HC-SR04 Arduino
VCC 5 V
Trig Pin 2
Echo Pin 3
GND GND

Example code for HC-SR04 with Arduino

Now that you have wired up the sensor it is time to connect the Arduino to the computer and upload some code., Voit ladata seuraavan esimerkin koodi Arduino Arduino IDE. Seuraavaksi selitän, miten koodi toimii.

Kuinka koodi toimii

Ensimmäinen, liipaisinta pin-ja echo-pin on määritelty. Kutsun heitä trigPin ja EchoPin. Trigger-pin-koodi on kytketty digital pin 2 ja echo-nastainen digitaalinen pin 3 Arduino.

lausunto #define käytetään antamaan nimi on vakio-arvo., Kääntäjä korvaa kaikki viittaukset, tämä jatkuva määritelty arvo, kun ohjelma on käännetty. Niin kaikkialla voit mainita trigPin, kääntäjä korvaa sen arvolla 2, kun ohjelma on käännetty.

// Define Trig and Echo pin:#define trigPin 2#define echoPin 3

Seuraavaksi määritellään kaksi muuttujaa: duration ja distance. Kesto tallentaa ääniaaltojen lähettämisen ja vastaanottamisen välisen ajan. Lasketun etäisyyden säilyttämiseen käytetään etäisyysmuuttujaa.,

// Define variables:long duration;int distance;

setup(), voit aloittaa asettamalla trigPin lähtö ja echoPin tulona. Seuraavaksi alustat sarjaviestinnän baud nopeudella 9600. Myöhemmin voit näyttää mitatun etäisyyden serial monitor, jota voi käyttää Ctrl+Shift+M tai Työkaluja > Serial Monitor. Varmista, että baud korko on myös asetettu 9600 sarjamonitorissa.

loop(), voit käynnistää anturin asettamalla trigPin KORKEA 10 µs., Huomaa, että saat puhtaan signaalin käynnistämällä trigPin asettamalla sen alhaiseksi 5 mikrosekunnin ajaksi.

seuraavaksi pitää lukea echopinin lähettämän pulssin pituus. Käytän funktiota pulseIn() tähän. Tämä toiminto odottaa pin mennä matalasta korkeaan, alkaa ajoitus, sitten odottaa pin mennä alhainen ja pysäyttää ajoitus.

sen jälkeen etäisyyden voi laskea käyttämällä tämän opetusohjelman johdannossa mainittua kaavaa.

lopulta laskettu etäisyys painetaan sarjamonitoriin.,

Esimerkki koodi HC-SR04 Arduino ja NewPing-kirjasto

NewPing-kirjasto, jonka on kirjoittanut Tim Eckel voidaan käyttää monia ultraääni etäisyys anturit. Uusin versio tämä kirjasto voi ladata täällä bitbucket.org. Saatat huomata, että alla oleva koodi, joka käyttää NewPing-kirjasto, on paljon lyhyempi kuin koodi käytimme ennen. Sen lisäksi Newpingin kirjastossa on muitakin mukavia piirteitä. Sen avulla voit asettaa enimmäisetäisyyden lukea, se ei viivy koko sekunnin, kun ei echo vastaanotetaan ja siinä on sisäänrakennettu mediaanisuodatin.,

Voit asentaa kirjaston menemällä Luonnos > Sisällytä Library > Lisää .ZIP kirjasto Arduino IDE.

kirjasto sisältää joitakin esimerkkejä, joita voit käyttää, mutta sinun on muokattava niitä vastaamaan laitteistosi asetuksia. Olen sisällyttänyt alla olevan muokatun esimerkkikoodin, jota voidaan käyttää samalla johdotusasetuksella kuin ennenkin.

Voit myös käyttää distance = sonar.ping_cm() tai distance = sonar.ping_in(), joka palauttaa mitattu etäisyys kokonaan senttimetriä tai tuumaa., Tällä toiminnolla sinun ei tarvitse ottaa kestomittausta ja laskea etäisyyttä.

Rajapinnat ultraääni anturit 3 pin-tila

NewPing-kirjasto on myös helppo käyttöliittymä, jossa ultraääni anturit, kun käytät vain 1 I/O-pin. Tämä voi olla kätevää, jos sinulla on hyvin vähän I/O-nastat saatavilla tai jos haluat käyttää 3-pin ultraääni-anturi, kuten Parallax Ping.

Voit luoda 3 pin setup (GND, 5V ja SIG) sinun täytyy liittää sekä laukaista pin-ja echo-pin samaan digitaalinen pin-koodin Arduino., Koodissa ainoa asia, mitä sinun täytyy muuttaa, on linja 6-7 ja määritellä sama pin sekä trigPin ja echoPin. Esimerkiksi digitaalinen pin 2.

//Define Trig and Echo pin#define trigPin 2#define echoPin 2

Kuinka käyttää ping_median() digitaalinen suodatin

– tärkein asia pidän siitä, NewPing-kirjasto on se, että se on sisäänrakennettu mediaani suodatin. Tämä suodatin voi suuresti parantaa HC-SR04 lukemien tarkkuutta. ping_median() toiminto kestää monta kesto mittauksia peräkkäin, heittää pois kantaman lukemat ja sitten keskiarvo jäljellä olevista., Oletuksena se kestää 5 lukemia, mutta voit määrittää, kuinka monta sen pitäisi ottaa. Korvaa linja 19 alla olevilla linjoilla.

int iterations = 5;duration = sonar.ping_median(iterations);

Esimerkki koodi HC-SR04 kanssa I2C-LCD-näyttö ja Arduino

näyttää mitattu etäisyys on 2004 tai 1602 I2C-LCD, kaikki sinun täytyy tehdä, on tehdä seuraavat yhteydet ja lähetä alla oleva koodi. HC-SR04-anturi on kytketty samalla tavalla kuin ennenkin.

HC-SR04 Arduino ja I2C-LCD-kytkentäkaavio.,

I2C LCD Connections

I2C LCD Arduino
GND GND
VCC 5 V
SDA A4
SCL A5

If you are not using an Arduino Uno, the SDA and SCL pins can be at a different location., Arduino UNO R3 layout (1.0 pinout), on myös SDA (data line) ja SCL (kello line) pin-otsikot lähellä AREF pin-koodi. Katso lisätietoja alla olevasta taulukosta.,f43445″>

Arduino Uno A4 A5 Arduino Nano A4 A5 Arduino Micro 2 3 Arduino Mega 2560 20 21 Arduino Leonardo 2 3 Arduino Due 20 21
I2C pin locations for different Arduino boards

The code uses the LiquidCrystal_I2C library, which you can download here on GitHub., Varmista, että olet juuri tämän kirjaston asennettu! Siihen kuuluu myös johto.h-kirjasto, jonka avulla voit kommunikoida I2C laitteita. Tämän kirjaston pitäisi olla esiasennettuna Arduino IDE: llä.

Jos haluat lisätietoja I2C LCD: n ohjauksesta Arduinolla, voit katsoa koko opetusohjelman täältä.

  • Miten hallita merkki, I2C-LCD Arduino

Huomaa, että käytin 20 x 4 LCD-näyttö. Jos sinulla on eri kokoinen LCD-näyttö (16 x 2 on myös yleistä), sinun täytyy vaihtaa linja 20 LiquidCrystal_I2C lcd(0x27,16,2);., Jos LCD ei ole oletuksena I2C-osoite, 0x27, tutustu täydellinen I2C-opetusohjelma, jossa selitän, miten voit selvittää, mitä osoite on.

Esimerkki koodi HC-SR04 kanssa DHT11 lämpötila-anturi ja Arduino

Kuten aiemmin mainittiin, äänen nopeus riippuu vahvasti ilman lämpötila. Jos haluat mitata pitkiä matkoja (3-4 m) se voi olla hyvä idea lisätä DHT11 tai DHT22 lämpötila ja kosteus anturin asetukset. Näin voit kalibroida äänen nopeuden reaaliajassa ja siten lisätä mittaustarkkuutta.,

DHT11-anturin lisääminen on todella yksinkertaista. Alla oleva kytkentäkaavio näyttää, mitä yhteyksiä sinun on tehtävä. Huomaa, että käytän DHT11 breakout aluksella, joten minun tarvitsee vain Lanka 3 nastat. Muista tarkistaa tunnistimen etiketti, nastojen järjestys voi olla erilainen valmistajasta riippuen. HC-SR04-anturi on kytketty samalla tavalla kuin ennenkin.

HC-SR04 Arduino ja DHT11 kytkentäkaavio.,

DHT11 Connections

DHT11 Arduino
VCC (+) 5 V
Signal (s) Pin 4
GND (-) GND

The code below uses the Adafruit DHT Humidity & Temperature Sensor library which you can download here on GitHub., Tämä kirjasto toimii vain, jos siihen on asennettu myös Adafruit_Sensor-kirjasto, joka on saatavilla myös GitHubissa. Voit myös ladata kaksi kirjastot klikkaamalla painikkeet alla:

Voit napsauttaa painiketta oikeassa yläkulmassa koodi-kenttään kopioi koodi.

Esimerkki koodi HC-SR04 kanssa DHT11-ja I2C-LCD

HC-SR04 Arduino, DHT11-ja I2C-LCD-kytkentäkaavio.

alla olevaa koodia voidaan käyttää yhdistämään kaikki edellä mainitut 3 esimerkkiä., Se näyttää sekä lämpötilan, äänen nopeuden että mitatun etäisyyden LCD-näytöllä.

HC-SR04 mitat

alta löydät HC-SR04-ultraäänianturin mitat. Olen huomannut, että valmistajien välillä on pieniä eroja, joten suosittelen tuplatarkastusta omaa sensoria vasten.

HC-SR04 Mitat

HC-SR04 CAD

olen luonut perus CAD-piirustukset HC-SR04 ultraääni-anturi, jonka voit ladata alla.,

Johtopäätös

tässä artikkelissa, minä olen näyttänyt sinulle, miten HC-SR04 ultraääni etäisyys-anturi toimii ja miten voit käyttää sitä Arduino. Toivottavasti pidit sitä hyödyllisenä ja informatiivisena. Jos teit, ole hyvä ja jaa se kaverin kanssa, joka pitää myös elektroniikasta!

Henkilökohtainen projekti: pari kuukautta sitten rakensin interaktiivinen seinä asennus ystävien kanssa. Käytimme noin 30 ultraäänietäisyysanturia havaitaksemme ihmisten kävelevän seinän edessä. Seinässä oli valoja ja ääniefektejä, jotka muuttuivat sen mukaan, kuinka kaukana ihmiset seisoivat.,

Kuva: Guus Schoonewille

olisi kiva tietää, mitä hankkeita olet rakentamassa (tai on jo rakennettu) ja HC-SR04 etäisyyden tunnistin. Jos sinulla on kysyttävää, ehdotuksia tai jos luulet, että asiat puuttuvat tässä opetusohjelma, jätä kommentti alla.