norr@manorshi.com         +86-519-89185720
1
Centrum zpráv

Jak používat ultrazvukový senzor s Arduino?

Zobrazení: 164     Autor: Grace Čas vydání: 26. 7. 2021 Původ: místo

tlačítko sdílení na facebooku
tlačítko sdílení na twitteru
tlačítko sdílení linky
tlačítko sdílení wechat
tlačítko sdílení linkedin
tlačítko sdílení na pinterestu
tlačítko sdílení whatsapp
tlačítko sdílení kakaa
tlačítko sdílení snapchat
tlačítko sdílení telegramu
sdílet toto tlačítko sdílení

Jak používat ultrazvukový senzor s Arduino: HC-SR04 Guide

The Ultrazvukový senzor HC-SR04 je jedním z nejoblíbenějších modulů pro měření vzdálenosti pro projekty Arduino. Je široce používán v robotech vyhýbajících se překážkám, parkovacích senzorech, detekci hladiny, inteligentních odpadkových koších, měřičích vzdálenosti a dalších aplikacích bezkontaktního snímání.

Modul vysílá 40kHz ultrazvukové vlny přes vysílač. Když se zvuková vlna setká s předmětem, odráží se zpět k přijímači. Měřením času ozvěny a pomocí rychlosti zvuku dokáže Arduino vypočítat vzdálenost mezi senzorem a objektem.

Ultrazvukový senzorový modul HC-SR04 pro měření vzdálenosti Arduino

HC-SR04 Hlavní technické parametry

Parametr Hodnota
Typické pracovní napětí 5V DC
Statický pracovní proud U některých verzí modulů méně než 5 mA
Provozní frekvence 40kHz ultrazvuková vlna
Detekční vzdálenost Běžný rozsah: 2 cm až 400 cm; některé verze s upraveným ziskem mohou podporovat delší dosah.
Detekční úhel Obvykle do 15 stupňů; některé verze s vyšším ziskem mohou dosáhnout asi 30 stupňů.
Přesnost Až asi 0,3 cm za vhodných testovacích podmínek
Slepá zóna Minimální vzdálenost měření cca 2 cm

Popis kolíku HC-SR04

Ultrazvukový modul HC-SR04 má čtyři piny: VCC, TRIG, ECHO a GND. Arduino vyšle krátký spouštěcí impuls na pin TRIG a poté přečte zpětný impuls z pinu ECHO.

Kolík HC-SR04 Připojení Arduino Funkce
VCC 5V Napájení ultrazvukového modulu.
TRIG Digitální pin 9 Spouštěcí vstup. Arduino použije 10us puls pro zahájení měření rozsahu.
ECHO Digitální pin 10 Echo výstup. Arduino čte šířku pulzu pro výpočet vzdálenosti.
GND GND Zemní spojení.

HC-SR04 vývod ultrazvukového snímače VCC TRIG ECHO GND

Princip činnosti ultrazvukového snímače HC-SR04

HC-SR04 pracuje na základě měření doby letu. Arduino posílá vysokoúrovňový spouštěcí signál v délce alespoň 10 mikrosekund na pin TRIG. Modul poté automaticky vyšle osm 40kHz ultrazvukových pulzů a čeká na odraženou ozvěnu.

Když je detekován odražený ultrazvukový signál, kolík ECHO vydá vysokoúrovňový impuls. Doba trvání tohoto pulzu je doba cesty ultrazvukové vlny tam a zpět.

Vzdálenost = čas vysoké úrovně ozvěny × rychlost zvuku / 2

V kódu Arduino je běžný zjednodušený vzorec:

Vzdálenost v cm = trvání × 0,0343 / 2

Princip fungování ultrazvukového modulu HC-SR04 s dobou letu

Schéma časování ultrazvukového modulu HC-SR04

Proces časování je jednoduchý: Arduino udržuje TRIG krátce na nízké úrovni, vyšle 10us vysoký puls a poté vrátí TRIG na nízkou úroveň. HC-SR04 vyšle ultrazvukový impulz a nastaví ECHO na vysokou úroveň, dokud se nevrátí odražený signál nebo dokud nevyprší čas měření.

Abyste se vyhnuli nestabilním hodnotám, ponechte mezi měřeními krátkou prodlevu. Běžně se používá cyklus měření asi 60 ms, takže předchozí ultrazvukové echo má čas zmizet před dalším spuštěním.

Základy programování Arduino: Funkce pulseIn

Funkce Arduino pulseIn() se používá k měření, jak dlouho zůstane digitální pin HIGH nebo LOW. Pro HC-SR04 používá Arduino pulseIn(echoPin, HIGH) ke čtení šířky pulsu na vysoké úrovni z pinu ECHO.

Syntax Význam
pulseIn(pin, hodnota) Čte dobu trvání HIGH nebo LOW pulzu.
pulseIn(pin, hodnota, časový limit) Čte puls s hodnotou časového limitu v mikrosekundách.

Doporučuje se použít časový limit. Pokud není vrácena žádná ozvěna, funkce může přestat čekat a vrátit 0 místo blokování programu na příliš dlouhou dobu.

Deska Arduino použitá s ultrazvukovým snímačem vzdálenosti HC-SR04

Jak připojit ultrazvukový senzor HC-SR04 k Arduinu

Zapojení je jednoduché. Připojte VCC k 5V, GND k GND, TRIG k digitálnímu výstupnímu pinu Arduino a ECHO k digitálnímu vstupnímu pinu Arduino. Následující příklad používá Arduino Uno, TRIG na kolíku 9 a ECHO na kolíku 10.

Schéma zapojení desky Arduino Uno pro ultrazvukový senzor HC-SR04

HC-SR04 Ultrasonic Sensor Arduino Code

Následující typický program pro Arduino odešle spouštěcí impuls 10us, přečte šířku impulsu ECHO, vypočítá vzdálenost v centimetrech a vytiskne výsledek na sériovém monitoru.

const int trigPin = 9; const int echoPin = 10; dlouhé trvání; vzdálenost plovákuCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicroseconds(2);   digitalWrite(trigPin, HIGH);   delayMicroseconds(10);   digitalWrite(trigPin, LOW);   trvání = pulseIn(echoPin, HIGH, 30000);   if (trvání == 0) { Serial.println('Mimo rozsah');   } else { vzdálenostCm = trvání * 0,0343 / 2;     Serial.print('Vzdálenost: ');     Serial.print(vzdálenostCm);     Serial.println(' cm');   } zpoždění(60); }

Pokud v sériovém monitoru vidíte hodnoty vzdálenosti, ultrazvukový senzor HC-SR04 a kabeláž Arduino fungují správně. Údaje o vzdálenosti pak můžete použít pro detekci překážek, řízení pohybu robota, automatické dveře, připomenutí parkování nebo projekty hladiny kapalin.

Program měření ultrazvukového senzoru Arduino HC-SR04

Jak zlepšit přesnost měření HC-SR04

  • Udržujte měřený objekt v doporučeném rozsahu vzdálenosti a mimo slepou zónu 2 cm.

  • Pro lepší odraz ultrazvuku použijte plochý a pevný cílový povrch.

  • Vyhněte se měření měkkých, šikmých, porézních nebo zvuk pohlcujících materiálů.

  • Používejte stabilní 5V napájecí zdroj a kabely udržujte krátké a bezpečné.

  • Přidejte časový limit k pulseIn(), abyste zabránili dlouhému blokování, když se nevrátí žádná ozvěna.

  • Pro snížení šumu zprůměrujte nebo vyfiltrujte střední hodnotu několika naměřených hodnot.

  • Pro vyšší přesnost kompenzujte teplotu, protože rychlost zvuku se mění s teplotou vzduchu.

Společné aplikace projektů ultrazvukových senzorů Arduino

Aplikace Jak se HC-SR04 používá
Robot vyhýbání se překážkám Detekuje blízké předměty a pomáhá robotovi změnit směr.
Parkovací senzor Měří vzdálenost mezi vozidlem a překážkou.
Detekce hladiny kapaliny Bezdotykově měří vzdálenost od senzoru k povrchu kapaliny.
Chytrý odpadkový koš Detekuje blízkou ruku nebo předmět a spustí automatické otevření víka.

Shrnutí

Chcete-li použít ultrazvukový snímač HC-SR04 s Arduinem, připojte VCC k 5V, GND k GND, TRIG k digitálnímu výstupnímu kolíku a ECHO k digitálnímu vstupnímu kolíku. Odešlete spouštěcí impuls 10us, odečtěte dobu trvání echa pomocí pulseIn() a vypočítejte vzdálenost pomocí vzorce doby letu.

HC-SR04 je levný, snadno použitelný a vhodný pro mnoho projektů měření vzdálenosti Arduino. Chcete-li dosáhnout nejlepších výsledků, věnujte pozornost cílovému povrchu, úhlu měření, slepé zóně, stabilnímu výkonu, zpracování časového limitu a teplotním vlivům.

Často kladené otázky o ultrazvukovém snímači HC-SR04 Arduino

Jak funguje ultrazvukový snímač HC-SR04 s Arduinem?

Arduino posílá 10us impuls na TRIG pin. HC-SR04 vysílá osm 40kHz ultrazvukových pulzů a nastavuje kolík ECHO na vysokou úroveň, dokud se nevrátí odražený zvuk. Arduino měří tento čas pulzu a vypočítává vzdálenost.

Jaký je vzorec vzdálenosti pro projekty HC-SR04 Arduino?

Vzorec je vzdálenost = trvání × rychlost zvuku / 2. V centimetrech je běžný vzorec pro Arduino vzdálenostCm = trvání × 0,0343 / 2, kde se trvání měří v mikrosekundách.

Proč dělíme výsledek ultrazvukového senzoru 2?

Naměřená doba echa je doba oběhu ze snímače k ​​objektu a zpět ke snímači. Vydělení 2 udává jednosměrnou vzdálenost mezi senzorem a objektem.

Které piny Arduino bych měl použít pro TRIG a ECHO?

Můžete použít většinu digitálních pinů Arduino. V mnoha příkladech je TRIG připojen k digitálnímu kolíku 9 a ECHO k digitálnímu kolíku 10. Kód musí odpovídat kolíkům použitým ve vašem zapojení.

Proč můj ultrazvukový senzor HC-SR04 vrací nulové nebo náhodné hodnoty?

Mezi běžné příčiny patří uvolněná kabeláž, nestabilní napájení 5 V, nesprávná čísla pinů TRIG nebo ECHO, žádný objekt v dosahu, šikmé cílové povrchy, měkké materiály, zablokované hlavy senzorů nebo žádný časový limit ve funkci pulseIn().

Jaká je slepá zóna ultrazvukového senzoru HC-SR04?

Slepá zóna je minimální vzdálenost, kde modul nemůže spolehlivě měřit. U HC-SR04 je slepá zóna obvykle asi 2 cm. Objekty blíže než toto mohou způsobit nestabilní hodnoty.

Může HC-SR04 měřit hladinu vody pomocí Arduina?

Ano, HC-SR04 lze použít pro jednoduché bezkontaktní projekty vodní hladiny, pokud je senzor chráněn před vlhkostí a namontován nad hladinou kapaliny. Pro vlhké, venkovní nebo průmyslové nádrže se doporučuje vodotěsný ultrazvukový senzor.

Jak mohu učinit hodnoty ultrazvukového senzoru Arduino stabilnější?

Použijte stabilní napájení, udržujte senzor kolmo k cíli, vyhněte se měkkým nebo šikmým povrchům, přidejte pulseIn timeout, proveďte více měření, použijte mediánovou filtraci a mezi měřeními ponechejte asi 60 ms.

Obsah