Ebben a cikkben a HC-SR04 ultrahangos távolságmérő-szonárt csatlakoztatjuk az Arduino-hoz.
Szükséges
- - Arduino;
- - ultrahangos érzékelő HC-SR04;
- - összekötő vezetékek.
Utasítás
1. lépés
A HC-SR04 ultrahangos távolságmérő hatása az echolokáció elvén alapszik. Hangimpulzusokat bocsát ki az űrbe, és egy akadálytól visszaverődő jelet fogad. Az objektumtól való távolságot a hanghullám terjedési ideje határozza meg az akadályig és a hátáig.
A hanghullámot úgy indítják el, hogy legalább 10 mikroszekundumos pozitív impulzust adnak a távolságmérő TRIG lábára. Amint az impulzus véget ér, a távolságmérő 40 kHz frekvenciájú hangimpulzus-sugárzást bocsát ki az előtte lévő térbe. Ugyanakkor elindul a visszavert jel késleltetési idejének meghatározására szolgáló algoritmus, és egy logikai egység jelenik meg a távolságmérő ECHO lábán. Amint az érzékelő észleli a visszavert jelet, logikai nulla jelenik meg az ECHO csapon. Ennek a jelnek az időtartama (az ábrán a "Visszhang késleltetés") határozza meg az objektumtól való távolságot.
A HC-SR04 távolságmérő távolságmérési tartománya - akár 4 méter, 0,3 cm-es felbontással, megfigyelési szög - 30 fok, effektív szög - 15 fok. Az áramfogyasztás készenléti állapotban 2 mA, működés közben - 15 mA.
2. lépés
Az ultrahangos távolságmérő tápellátását +5 V feszültséggel végezzük. A másik két érintkező az Arduino bármely digitális portjához van csatlakoztatva, mi a 11-es és a 12-eshez fogunk csatlakozni.
3. lépés
Most írjunk egy vázlatot, amely meghatározza az akadály távolságát és kimeneti a soros portra. Először állítsuk be a TRIG és az ECHO csapok számát - ezek a 12. és 11. csapok. Ezután kimenetként deklaráljuk a ravaszt, bemenetként pedig az echót. Inicializáljuk a soros portot 9600 baud-on. A hurok () minden egyes ismétlésénél leolvassuk a távolságot, és kimenetet adunk a portra.
A getEchoTiming () függvény kiváltó impulzust generál. Csak 10 mikroszekundumos impulzusáramot hoz létre, amely kiváltja a sugárzás elindulását egy hangcsomag távolságmérője által az űrbe. Aztán eszébe jut az idő a hanghullám közvetítésének kezdetétől a visszhang megérkezéséig.
A getDistance () függvény kiszámítja az objektumtól való távolságot. Az iskolai fizika tanfolyamon emlékezünk arra, hogy a távolság megegyezik a sebesség szorzatával az idővel: S = V * t. A levegőben a hangsebesség 340 m / s, az általunk ismert mikroszekundumos idő "duratuion". Az idő másodpercekben történő elosztásához ossza el 1 000 000-vel. Mivel a hang kétszer nagyobb távolságot tesz meg - a tárgyig és vissza -, a távolságot felére kell osztania. Kiderült tehát, hogy az objektum távolsága S = 34000 cm / sec * időtartam / 1.000.000 sec / 2 = 1.7 cm / sec / 100, amit a vázlatban írtunk. A mikrovezérlő gyorsabban hajtja végre a szorzást, mint az osztás, ezért a "/ 100" -ot kicseréltem az egyenértékű "* 0, 01" -re.
4. lépés
Számos könyvtárat írtak arra is, hogy ultrahangos távolságmérővel dolgozzanak. Például ez: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. A könyvtár telepítése szabványos módon történik: töltse le, csomagolja ki a könyvtárak könyvtárába, amely az Arduino IDE mappában található. Ezt követően a könyvtár használható.
A könyvtár telepítése után írjunk egy új vázlatot. Munkájának eredménye ugyanaz - a soros portmonitor centiméterben jeleníti meg az objektumtól való távolságot. Ha a vázlatban float dist_cm = ultrahangos. Ranging (INC); értéket ír, akkor a távolság hüvelykben jelenik meg.
5. lépés
Tehát csatlakoztattuk a HC-SR04 ultrahangos távolságmérőt az Arduino-hoz, és kétféle módon kaptunk róla adatokat: egy speciális könyvtár segítségével és anélkül.
A könyvtár használatának előnye, hogy a kód mennyisége jelentősen csökken, és javul a program olvashatósága, nem kell elmélyülni a készülék bonyolultságaiban, és azonnal felhasználhatja. De ez a hátrány is: kevésbé érted, hogyan működik a készülék és milyen folyamatok zajlanak benne. Mindenesetre, hogy melyik módszert használja, rajtad múlik.