Hogyan hozzunk létre egy ultrahangos távolságmérő egy Arduino

ultrahangos tartomány megtalálók szórakoztató kis érzékelők, amelyek mérik a távolságot. Használhatja őket, hogy megtalálják a távolságot egy tárgyhoz, vagy észleljék, ha valami közel van az érzékelőhöz, mint egy mozgásérzékelő. Ideálisak a navigációt, az objektumelkerülést és az otthoni biztonságot érintő projektekhez. Mivel hangot használnak a távolság mérésére, ugyanolyan jól működnek a sötétben, mint a fényben., Az ultrahangos tartománykereső én lesz a bemutató a HC-SR04, amely képes mérni a távolságokat a 2 cm 400 cm-es pontossággal ±3 mm.

ebben A cikkben megmutatom, hogyan kell három különböző tartománykereső áramkörök az Arduino. Az első távolságmérő áramkör könnyen beállítható, nagyon jó pontossággal rendelkezik. A másik kettő egy kicsit bonyolultabb, de pontosabb, mert a hőmérséklet és a páratartalom. De mielőtt ebbe belemennénk, beszéljünk arról, hogy a távolságmérő hogyan méri a távolságot.,

bónusz: készítettem egy gyors útmutató a bemutató, hogy lehet letölteni, majd menjen vissza később, ha nem tudja beállítani ezt most. Ez magában foglalja az összes lépést, diagramok, Kód meg kell kezdeni.

a hangsebesség

az ultrahangos távolságmérő méri a távolságot az ultrahangos hang impulzusának kibocsátásával, amely a levegőben halad, amíg el nem éri az objektumot. Amikor a hangimpulzus eltalál egy tárgyat, az visszaverődik az objektumról, és visszakerül az ultrahangos távolságmérőbe., Az ultrahangos távolságmérő méri, hogy mennyi ideig tart a hangimpulzus utazni oda – vissza utazás az érzékelő. Ezután jelet küld az Arduino-nak arról, hogy mennyi ideig tartott a sonic pulse utazása.

ismerve az ultrahangos impulzus idejét, hogy oda-vissza utazzon az objektumhoz, valamint a hangsebesség ismeretében az Arduino kiszámíthatja az objektum távolságát., A formula vonatkozó, a hang sebessége, távolság, idő utazott az, hogy:

Átrendezése ez a formula, akkor a képlet kiszámításához használt távolság:

Az idő változó, hogy mennyi idő alatt, az ultrahangos, pulzus, hogy hagyja el az érzékelőt, lepattan az objektumot, majd vissza az érzékelő., Valójában ezt az időt felére osztjuk, mivel csak az objektumtól való távolságot kell mérnünk, nem pedig az objektumtól való távolságot, hanem vissza az érzékelőhöz. A sebességváltozó az a sebesség, amellyel a hang áthalad a levegőben.

a levegő hangsebessége a hőmérséklet és a páratartalom függvényében változik. Ezért a távolság pontos kiszámításához figyelembe kell vennünk a környezeti hőmérsékletet és a páratartalmat., A képlet a hang sebessége a levegő, a hőmérséklet vagy a páratartalom elszámolni az, hogy:

például 20°C-on, 50% páratartalom, terjed a hang sebesség:

A fenti egyenlet, egyértelmű, hogy a hőmérséklet a legnagyobb hatással a hangsebességet. A páratartalomnak van némi hatása, de sokkal kisebb, mint a hőmérséklet hatása.,

hogy az ultrahangos távolságmérő méri a távolságot

az ultrahangos távolságmérő elején két fémhenger található. Ezek jelátalakítók. A jelátalakítók a mechanikai erőket elektromos jelekké alakítják. Az ultrahangos távolságmérőben van egy átviteli jelátalakító és átvevő jelátalakító. A jeladó átalakítja az elektromos jelet ultrahangos impulzussá, a fogadó jelátalakító pedig a visszavert ultrahangos impulzust elektromos jelré alakítja., Ha megnézed a távolságmérő hátulját,látni fogsz egy IC-t a max3232 jelátalakító mögött. Ez az IC, amely szabályozza az átviteli jelátalakítót. A fogadó jelátalakító mögött egy LM324 címkével ellátott IC található. Ez egy quad Op-Amp, amely felerősíti a fogadó jelátalakító által generált jelet olyan jelré, amely elég erős ahhoz, hogy továbbítsa az Arduino-t.,

A HC-SR04 ultrahangos tartománykereső négy csapok:

  • Tvk – biztosítja az energiát generál az ultrahangos impulzusok
  • GND – csatlakozik a föld
  • Trig – hol az Arduino küldi a jelet, hogy indul az ultrahang impulzus
  • Echo – hol az ultrahangos tartománykereső küld információt a az utazás időtartama által hozott, az ultrahangos, pulzus, hogy az Arduino

kezdeményezésére távolság mérés, kell küldenünk egy 5V-os, magas jel, hogy a Trigonometria pin legalább 10 µs., Amikor a modul megkapja ezt a jelet, 8 ultrahangos hangimpulzust bocsát ki 40 KHz frekvencián az adóátalakítóból. Ezután várakozik és hallgatja a visszavert jel átvevőjét. Ha egy tárgy hatótávolságon belül van, a 8 impulzus visszaverődik az érzékelőbe. Amikor az impulzus eléri a fogadó jelátalakítót, az Echo pin nagyfeszültségű jelet ad ki.

ennek a nagyfeszültségű jelnek a hossza megegyezik azzal a teljes idővel, amelyet a 8 impulzus az adóátalakítóból, majd vissza a fogadó jeladóhoz vezet., Azonban csak az objektumtól való távolságot akarjuk mérni, nem pedig a hangimpulzus útvonalának távolságát. Ezért ezt az időt felére osztjuk, hogy megkapjuk az időváltozót a fenti d = S x t egyenletben. Mivel már ismerjük a hang (ok) sebességét, meg tudjuk oldani a távolság egyenletét.

ultrahangos távolságmérő Beállítás Soros Monitor kimenet

kezdjük azzal, hogy egy egyszerű ultrahangos távolságmérő, amely kimeneti távolságméréseket a Soros monitor. Ha ehelyett a leolvasásokat LCD-re szeretné kiadni, nézze meg a következő részt., Minden csatlakoztatása egyszerű, csak húzza fel így:

miután mindent összekapcsolt, töltse fel ezt a programot az Arduino-ra:

kód magyarázata

  • 11.sor: deklarálja a duration és distanceváltozókat.
  • 12.és 13. sor: 2 µs alacsony jelet küld a trigPin – nak, hogy a programhurok elején ki legyen kapcsolva.,
  • 15-17-es vonalak: 10 µs magas jelet küld a trigPin – nak, hogy elindítsa az adó transzduktorból küldött nyolc 40 KHz ultrahangos impulzus sorozatát.
  • 19. sor: a duration változót a echoPin – on észlelt magas bemeneti jel hosszaként (µs-ben) határozza meg. Az Echo pin kimenet megegyezik azzal az idővel, amikor a kibocsátott ultrahangos impulzus az objektumhoz, majd az érzékelőhöz vezet.,
  • 20. sor: adistance változót határozza meg az időtartam (idő d = S x T-ben) szorozva a másodpercenként méterről centiméterre (0, 0344 cm/µs) átalakított hangsebességgel.
  • 22-24 sor: ha a távolság nagyobb vagy egyenlő 400 cm-nél, vagy kisebb vagy egyenlő 2 cm-nél, akkor a “távolság = tartományon kívül” felirat jelenik meg a Soros monitoron.
  • 26-30 sor: ha a távolságmérés nem távolodik el a tartománytól, akkor a 20. sorban számított távolságot 500 ms soros monitoron jelenítse meg.,

Ultrahangos tartománykereső LCD Kimenet

Ha azt akarod, hogy a kimenet a távolság mérését egy 16X2 LCD, kövesse ezt az ábrát, hogy csatlakoztassa a tartománykereső LCD az Arduino:

Ha további segítségre van szüksége csatlakoztatása az LCD kijelzőn, próbálja meg a többi bemutató beállítása LCD az Arduino., Amikor minden csatlakoztatva van, töltse fel ezt a kódot az Arduino-ba:

nagyobb pontosságú ultrahangos távolságmérő

mivel a hőmérséklet a hangegyenlet sebességében változó (C = 331,4 + (0,606 X t) + (0,0124 x H)), az érzékelő körüli levegő hőmérséklete befolyásolja a távolságméréseinket. Ennek kompenzálására mindössze annyit kell tennünk, hogy hozzáadunk egy termisztort az áramkörünkhöz, és bevisszük az egyenletbe. Ennek nagyobb pontosságot kell adnia a távolságméréseinknek., A termisztor egy változó ellenállás, amely megváltoztatja az ellenállást a hőmérséklettel. Ha többet szeretne megtudni a termisztorokról, nézze meg cikkünket, Arduino termisztor hőmérséklet-érzékelő bemutató. Itt egy ábra, hogy segítsen hozzá egy termisztor, hogy a tartománykereső áramkör:

  • R1 = 10K Ohm ellenállás
  • Th = 10K Ohm termisztor

Megjegyzés: az érték az R1 meg kell egyeznie az ellenállás a termisztor.,

miután minden csatlakoztatva van, töltse fel ezt a kódot az Arduino-ba:

A

Kód magyarázata az alaptartomány-kereső programban a cikk elején a D = S x t képletet használtuk a távolság kiszámításához. Ebben a programban a hőmérsékletet és páratartalmat meghatározó képletet használjuk (c = 331,4 + (0,606 x T) + (0,0124 x H)).

az 5-10 sorokban a Steinhart-Hart egyenletet a termisztor ellenállási értékeinek hőmérsékletre történő átalakítására használják, amelyeket a tempváltozóban tárolnak., A 35. sorban hozzáadunk egy új változót (spdSnd), amely tartalmazza a hangegyenlet sebességét. A spdSnd változó kimenetét a distance függvény sebességeként használják a 36.sorban.

A nagyon magas (szinte túl nagy) pontosság ultrahangos távolságmérő

a hőmérséklet kompenzált ultrahangos távolságmérő áramkör elég pontos ahhoz, amit a legtöbb ember használni fog. Van azonban egy másik tényező, amely befolyásolja a levegő hangsebességét (és ezért a távolság kiszámítását), és ez a páratartalom., A hangsebesség egyenletéből meg lehet mondani, hogy a páratartalomnak csak kis hatása van a hang sebességére, de lehetővé teszi, hogy ellenőrizze.

többféle páratartalom-érzékelő is használható az Arduinón, de a DHT11 páratartalom-és hőmérséklet-érzékelőt fogom használni. Ez a modul a nedvességérzékelőn kívül termisztorral is rendelkezik, így a beállítás nagyon egyszerű:

miután minden csatlakoztatva van, telepítenünk kell egy speciális könyvtárat a kód futtatásához., A könyvtár a DHTLib könyvtár, amelyet Rob Tillaart írt. A könyvtár könnyen telepíthető. Először töltse le a .zip fájl alatt. Ezután az Arduino IDE-ben menjen a vázlathoz >tartalmazza a könyvtárat> adjon hozzá ZIP könyvtárat, majd válassza ki a DHTLib-t.zip fájl.,

DHTLib

a könyvtár telepítése után töltse fel ezt a kódot Arduino-jára:

A

kód magyarázata a DHT11 által kibocsátott hőmérséklet és páratartalom értékek digitálisak, így nem kell a Steinhart-Hart egyenletet használni a termisztor ellenállásának hőmérsékletre történő konvertálásához. A DHTLib könyvtár tartalmazza az összes szükséges funkciót, hogy a hőmérséklet és a páratartalom egységekben tudjuk használni közvetlenül a sebesség hang egyenlet. A hőmérséklet és a páratartalom változói a következők: DHT.temperature és DHT.humidity., Ezután a sebességet változóként használják a 28-as vonal távolságegyenletében.

A kimenet a távolság mérések LCD, először csatlakoztassa az LCD a következő bemutató, Hogyan kell Beállítani az LCD Kijelzőn egy Arduino, majd töltse fel ezt a kódot:

nézze meg a bemutató videót, hogy lásd az ultrahangos tartománykereső áramkörök megvalósítása:

Köszönöm, hogy elolvasta! Hagy egy megjegyzést, ha bármilyen kérdése van, hogyan kell beállítani ezeket., Ha tetszik a cikkeink itt Circuit Basics, iratkozz fel, majd tudatjuk Önnel, amikor közzétesszük az új cikkeket. Is, ha ismersz valakit, aki hasznosnak találja ezt a cikket, kérjük, ossza meg!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük