norr@manorshi.com         +86-519-89185720
1
News Center

Ako používať ultrazvukový senzor s Arduino?

Zobrazenia: 164     Autor: Grace Čas vydania: 26. 7. 2021 Pôvod: stránky

tlačidlo zdieľania na facebooku
tlačidlo zdieľania na Twitteri
tlačidlo zdieľania linky
tlačidlo zdieľania wechat
prepojené tlačidlo zdieľania
tlačidlo zdieľania na pintereste
tlačidlo zdieľania whatsapp
tlačidlo zdieľania kakaa
tlačidlo zdieľania snapchatu
tlačidlo zdieľania telegramu
zdieľať toto tlačidlo zdieľania

Ako používať ultrazvukový senzor s Arduino: HC-SR04 Guide

The Ultrazvukový senzor HC-SR04 je jedným z najpopulárnejších modulov na meranie vzdialenosti pre projekty Arduino. Je široko používaný v robotoch vyhýbajúcich sa prekážkam, parkovacích senzoroch, detekcii hladiny, inteligentných odpadkových košoch, meradlách vzdialenosti a iných bezkontaktných snímacích aplikáciách.

Modul vysiela 40kHz ultrazvukové vlny cez vysielač. Keď sa zvuková vlna stretne s objektom, odrazí sa späť k prijímaču. Meraním času ozveny a pomocou rýchlosti zvuku dokáže Arduino vypočítať vzdialenosť medzi senzorom a objektom.

Ultrazvukový senzorový modul HC-SR04 pre meranie vzdialenosti Arduino

HC-SR04 Hlavné technické parametre

Parameter Hodnota
Typické pracovné napätie 5V DC
Statický pracovný prúd Menej ako 5 mA na niektorých verziách modulov
Prevádzková frekvencia 40kHz ultrazvuková vlna
Detekčná vzdialenosť Bežný rozsah: 2 cm až 400 cm; niektoré verzie s upraveným ziskom môžu podporovať dlhší dosah.
Detekčný uhol Zvyčajne do 15 stupňov; niektoré verzie s vyšším ziskom môžu dosiahnuť približne 30 stupňov.
Presnosť Až asi 0,3 cm za vhodných testovacích podmienok
Slepá zóna Minimálna meracia vzdialenosť cca 2 cm

Popis kolíka HC-SR04

Ultrazvukový modul HC-SR04 má štyri kolíky: VCC, TRIG, ECHO a GND. Arduino pošle krátky spúšťací impulz na kolík TRIG a potom načíta spätný impulz z kolíka ECHO.

Kolík HC-SR04 Pripojenie Arduino Funkcia
VCC 5V Napájanie ultrazvukového modulu.
TRIG Digitálny pin 9 Spúšťací vstup. Arduino aplikuje 10us impulz na spustenie rozsahu.
ECHO Digitálny pin 10 Echo výstup. Arduino číta šírku impulzu na výpočet vzdialenosti.
GND GND Pozemné spojenie.

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

Princíp činnosti ultrazvukového snímača HC-SR04

HC-SR04 pracuje na základe merania doby letu. Arduino posiela vysokoúrovňový spúšťací signál v trvaní najmenej 10 mikrosekúnd na kolík TRIG. Modul potom automaticky vyšle osem 40kHz ultrazvukových impulzov a čaká na odrazenú ozvenu.

Keď je detekovaný odrazený ultrazvukový signál, kolík ECHO vydá impulz vysokej úrovne. Trvanie tohto impulzu je doba spiatočnej cesty ultrazvukovej vlny.

Vzdialenosť = čas vysokej úrovne ozveny × rýchlosť zvuku / 2

V kóde Arduino je bežný zjednodušený vzorec:

Vzdialenosť v cm = trvanie × 0,0343 / 2

Princíp činnosti ultrazvukového modulu HC-SR04 s časom letu

Schéma časovania ultrazvukového modulu HC-SR04

Proces časovania je jednoduchý: Arduino krátko udržiava TRIG na nízkej úrovni, vyšle 10us vysoký impulz a potom vráti TRIG na nízku úroveň. HC-SR04 vyšle ultrazvukový impulz a nastaví ECHO na vysokú úroveň, kým sa nevráti odrazený signál alebo kým nevyprší čas merania.

Aby ste predišli nestabilným meraniam, nechajte medzi meraniami krátke oneskorenie. Bežne sa používa merací cyklus asi 60 ms, takže predchádzajúce ultrazvukové echo má čas zmiznúť pred ďalším spustením.

Základy programovania Arduino: funkcia pulseIn

Funkcia Arduino pulseIn() sa používa na meranie, ako dlho zostane digitálny kolík VYSOKÝ alebo NÍZKY. Pre HC-SR04 používa Arduino pulseIn(echoPin, HIGH) na čítanie šírky impulzu vysokej úrovne z kolíka ECHO.

Syntax Význam
pulseIn(pin, hodnota) Číta trvanie HIGH alebo LOW pulzu.
pulseIn(pin, hodnota, časový limit) Číta impulz s hodnotou časového limitu v mikrosekundách.

Odporúča sa použiť časový limit. Ak sa nevráti žiadna ozvena, funkcia môže zastaviť čakanie a vrátiť 0 namiesto blokovania programu na príliš dlhú dobu.

Doska Arduino použitá s ultrazvukovým snímačom vzdialenosti HC-SR04

Ako pripojiť ultrazvukový snímač HC-SR04 k Arduinu

Zapojenie je jednoduché. Pripojte VCC k 5V, GND k GND, TRIG k digitálnemu výstupnému kolíku Arduino a ECHO k digitálnemu vstupnému kolíku Arduina. Nasledujúci príklad používa Arduino Uno, TRIG na kolíku 9 a ECHO na kolíku 10.

Schéma zapojenia Arduino Uno pre ultrazvukový snímač HC-SR04

HC-SR04 Ultrasonic Sensor Arduino Code

Nasledujúci typický program Arduino odošle spúšťací impulz 10us, načíta šírku impulzu ECHO, vypočíta vzdialenosť v centimetroch a vytlačí výsledok na sériovom monitore.

const int trigPin = 9; const int echoPin = 10; dlhé trvanie; plaváková vzdialenosťCm; 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);   trvanie = pulseIn(echoPin, HIGH, 30000);   if (trvanie == 0) { Serial.println('Mimo rozsah');   } else { vzdialenosťCm = trvanie * 0,0343 / 2;     Serial.print('Vzdialenosť: ');     Serial.print(vzdialenaCm);     Serial.println(' cm');   } oneskorenie(60); }

Ak v sériovom monitore vidíte hodnoty vzdialenosti, ultrazvukový snímač HC-SR04 a zapojenie Arduino fungujú správne. Údaje o vzdialenosti potom môžete použiť na detekciu prekážok, riadenie pohybu robota, automatické dvere, pripomenutie parkovania alebo projekty hladiny kvapalín.

Program merania ultrazvukového snímača Arduino HC-SR04

Ako zlepšiť presnosť merania HC-SR04

  • Udržujte meraný objekt v odporúčanom rozsahu vzdialenosti a mimo slepej zóny 2 cm.

  • Pre lepší odraz ultrazvuku použite plochý a pevný cieľový povrch.

  • Vyhnite sa meraniu mäkkých, šikmých, poréznych materiálov alebo materiálov pohlcujúcich zvuk.

  • Používajte stabilné 5V napájanie a udržiavajte krátke a bezpečné káble.

  • Pridajte časový limit k pulseIn(), aby ste zabránili dlhému blokovaniu, keď sa nevráti žiadna ozvena.

  • Priemer alebo medián – filtrujte niekoľko meraní, aby ste znížili šum.

  • Pre vyššiu presnosť kompenzujte teplotu, pretože rýchlosť zvuku sa mení s teplotou vzduchu.

Bežné aplikácie projektov ultrazvukových snímačov Arduino

Aplikácia Ako sa HC-SR04 používa
Robot na vyhýbanie sa prekážkam Detekuje blízke objekty a pomáha robotovi zmeniť smer.
Senzor parkovacej vzdialenosti Meria vzdialenosť medzi vozidlom a prekážkou.
Detekcia hladiny kvapaliny Bezdotykovo meria vzdialenosť od snímača k povrchu kvapaliny.
Inteligentný odpadkový kôš Detekuje blízku ruku alebo predmet a spustí automatické otvorenie veka.

Zhrnutie

Ak chcete použiť ultrazvukový snímač HC-SR04 s Arduino, pripojte VCC k 5V, GND k GND, TRIG k digitálnemu výstupnému kolíku a ECHO k digitálnemu vstupnému kolíku. Pošlite 10us spúšťací impulz, prečítajte si trvanie ozveny pomocou pulseIn() a vypočítajte vzdialenosť pomocou vzorca pre čas letu.

HC-SR04 je lacný, ľahko sa používa a je vhodný pre mnoho projektov merania vzdialenosti Arduino. Pre dosiahnutie najlepších výsledkov venujte pozornosť cieľovému povrchu, meraciemu uhlu, slepej zóne, stabilnému výkonu, manipulácii s časovým limitom a teplotným vplyvom.

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

Ako funguje ultrazvukový snímač HC-SR04 s Arduinom?

Arduino posiela 10us impulz na pin TRIG. HC-SR04 vysiela osem 40kHz ultrazvukových impulzov a nastavuje kolík ECHO na vysokú úroveň, kým sa odrazený zvuk nevráti. Arduino meria tento čas impulzu a vypočíta vzdialenosť.

Aký je vzorec vzdialenosti pre projekty HC-SR04 Arduino?

Vzorec je vzdialenosť = trvanie × rýchlosť zvuku / 2. V centimetroch je bežný vzorec pre Arduino vzdialenosťCm = trvanie × 0,0343 / 2, pričom trvanie sa meria v mikrosekundách.

Prečo delíme výsledok ultrazvukového senzora 2?

Nameraný čas odozvy je čas cesty zo snímača k objektu a späť k snímaču. Delenie 2 udáva jednosmernú vzdialenosť medzi snímačom a objektom.

Ktoré piny Arduino by som mal použiť pre TRIG a ECHO?

Môžete použiť väčšinu digitálnych pinov Arduino. V mnohých príkladoch je TRIG pripojený k digitálnemu kolíku 9 a ECHO k digitálnemu kolíku 10. Kód sa musí zhodovať s kolíkmi použitými vo vašom zapojení.

Prečo môj ultrazvukový snímač HC-SR04 vracia nulové alebo náhodné hodnoty?

Bežné príčiny zahŕňajú uvoľnené vedenie, nestabilné napájanie 5 V, nesprávne čísla pinov TRIG alebo ECHO, žiadny objekt v dosahu, šikmé cieľové povrchy, mäkké materiály, zablokované hlavy senzorov alebo žiadny časový limit vo funkcii pulseIn().

Aká je slepá zóna ultrazvukového snímača HC-SR04?

Slepá zóna je minimálna vzdialenosť, kde modul nemôže spoľahlivo merať. Pre HC-SR04 je slepá zóna zvyčajne asi 2 cm. Bližšie objekty môžu spôsobiť nestabilné hodnoty.

Môže HC-SR04 merať hladinu vody pomocou Arduina?

Áno, HC-SR04 je možné použiť pre jednoduché bezkontaktné projekty hladiny vody, ak je snímač chránený pred vlhkosťou a namontovaný nad hladinou kvapaliny. Pre vlhké, vonkajšie alebo priemyselné nádrže sa odporúča vodotesný ultrazvukový senzor.

Ako môžem urobiť hodnoty ultrazvukového snímača Arduino stabilnejšie?

Použite stabilné napájanie, udržujte senzor kolmo na cieľ, vyhýbajte sa mäkkým alebo šikmým povrchom, pridajte pulseIn timeout, urobte viac meraní, použite mediánové filtrovanie a nechajte medzi meraniami asi 60 ms.

Obsah