norr@manorshi.com         +86-519-89185720
1
Novičarsko središče

Kako uporabljati ultrazvočni senzor z Arduinom?

Ogledi: 164     Avtor: Grace Čas objave: 26.7.2021 Izvor: Spletno mesto

facebook gumb za skupno rabo
gumb za skupno rabo na Twitterju
gumb za skupno rabo linije
gumb za skupno rabo v wechatu
Linkedin gumb za skupno rabo
gumb za skupno rabo na pinterestu
gumb za skupno rabo WhatsApp
gumb za skupno rabo kakao
gumb za skupno rabo snapchat
gumb za skupno rabo telegrama
deli ta gumb za skupno rabo

Kako uporabljati ultrazvočni senzor z Arduinom: Vodnik HC-SR04

The Ultrazvočni senzor HC-SR04 je eden najbolj priljubljenih modulov za merjenje razdalje za projekte Arduino. Široko se uporablja v robotih za izogibanje oviram, parkirnih senzorjih, zaznavanju nivoja, pametnih smetnjakih, merilnikih razdalje in drugih aplikacijah za brezkontaktno zaznavanje.

Modul preko oddajnika oddaja ultrazvočne valove frekvence 40kHz. Ko zvočni val naleti na predmet, se odbije nazaj do sprejemnika. Z merjenjem časa odmeva in uporabo hitrosti zvoka lahko Arduino izračuna razdaljo med senzorjem in predmetom.

Ultrazvočni senzorski modul HC-SR04 za merjenje razdalje Arduino

Glavni tehnični parametri HC-SR04

Parameter Vrednost
Tipična delovna napetost 5V DC
Statični delovni tok Manj kot 5 mA pri nekaterih različicah modula
Delovna frekvenca 40kHz ultrazvočni val
Razdalja zaznavanja Običajno območje: 2 cm do 400 cm; nekatere različice s prilagojenim ojačanjem morda podpirajo daljši doseg.
Kot zaznavanja Običajno znotraj 15 stopinj; nekatere različice z večjim ojačanjem lahko dosežejo približno 30 stopinj.
Natančnost Do približno 0,3 cm pod ustreznimi preskusnimi pogoji
Slepa cona Približno 2 cm minimalne merilne razdalje

Opis nožice HC-SR04

Ultrazvočni modul HC-SR04 ima štiri nožice: VCC, TRIG, ECHO in GND. Arduino pošlje kratek sprožilni impulz na zatič TRIG, nato prebere povratni impulz iz zatiča ECHO.

HC-SR04 Pin Povezava Arduino funkcija
VCC 5V Napajalnik za ultrazvočni modul.
TRIG Digitalni pin 9 Sprožilni vnos. Arduino uporabi impulz 10us za začetek določanja razdalje.
ODMEV Digitalni pin 10 Echo izhod. Arduino bere širino impulza za izračun razdalje.
GND GND Ozemljitev.

HC-SR04 ultrazvočni senzor VCC TRIG ECHO GND

Načelo delovanja ultrazvočnega senzorja HC-SR04

HC-SR04 deluje z merjenjem časa leta. Arduino pošlje prožilni signal na visoki ravni vsaj 10 mikrosekund na zatič TRIG. Modul nato samodejno pošlje osem 40kHz ultrazvočnih impulzov in čaka na odbiti odmev.

Ko je zaznan odbiti ultrazvočni signal, zatič ECHO odda impulz visoke ravni. Trajanje tega impulza je čas povratnega potovanja ultrazvočnega vala.

Razdalja = čas visoke ravni odmeva × hitrost zvoka / 2

V kodi Arduino je pogosta poenostavljena formula:

Razdalja v cm = trajanje × 0,0343 / 2

Načelo delovanja ultrazvočnega modula HC-SR04 čas leta

Časovni diagram ultrazvočnega modula HC-SR04

Postopek merjenja časa je preprost: Arduino za kratek čas obdrži TRIG nizko, pošlje 10us visok impulz, nato vrne TRIG na nizko. HC-SR04 pošlje ultrazvočni izbruh in nastavi ECHO visoko, dokler se odbiti signal ne vrne ali se meritev izteče.

Da se izognete nestabilnim odčitkom, med meritvami pustite kratek zamik. Običajno se uporablja merilni cikel približno 60 ms, tako da ima prejšnji ultrazvočni odmev čas, da izgine pred naslednjim sprožilcem.

Osnove programiranja Arduino: funkcija pulseIn

Funkcija Arduino pulseIn() se uporablja za merjenje, kako dolgo digitalni pin ostane VISOK ali NIZEK. Za HC-SR04 Arduino uporablja pulseIn(echoPin, HIGH) za branje širine impulza na visoki ravni iz zatiča ECHO.

Sintaksa Pomen
pulseIn(pin, vrednost) Odčita trajanje VISOKEGA ali NIZKEGA impulza.
pulseIn(pin, vrednost, časovna omejitev) Prebere impulz z vrednostjo časovne omejitve v mikrosekundah.

Priporočljiva je uporaba časovne omejitve. Če ni vrnjenega odmeva, lahko funkcija preneha čakati in vrne 0, namesto da predolgo blokira program.

Plošča Arduino, ki se uporablja z ultrazvočnim senzorjem razdalje HC-SR04

Kako povezati ultrazvočni senzor HC-SR04 z Arduinom

Ožičenje je preprosto. Priključite VCC na 5 V, GND na GND, TRIG na digitalni izhodni zatič Arduino in ECHO na digitalni vhodni zatič Arduino. Naslednji primer uporablja Arduino Uno, TRIG na nožici 9 in ECHO na nožici 10.

Načrt ožičenja Arduino Uno za ultrazvočni senzor HC-SR04

HC-SR04 Koda ultrazvočnega senzorja Arduino

Naslednji tipični program Arduino pošlje sprožilni impulz 10us, prebere širino impulza ECHO, izračuna razdaljo v centimetrih in natisne rezultat v serijski monitor.

const int trigPin = 9; const int echoPin = 10; dolgo trajanje; plovna razdaljaCm; void setup() { pinMode(trigPin, IZHOD);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicroseconds(2);   digitalWrite(trigPin, HIGH);   delayMicroseconds(10);   digitalWrite(trigPin, LOW);   trajanje = pulseIn(echoPin, HIGH, 30000);   if (trajanje == 0) { Serial.println('Izven obsega');   } else { distanceCm = trajanje * 0,0343 / 2;     Serial.print('Razdalja: ');     Serial.print(distanceCm);     Serial.println('cm');   } zamuda (60); }

Če vidite vrednosti razdalje v serijskem monitorju, ultrazvočni senzor HC-SR04 in ožičenje Arduino delujeta pravilno. Nato lahko podatke o razdalji uporabite za zaznavanje ovir, nadzor gibanja robota, avtomatska vrata, opomnike za parkiranje ali projekte nivoja tekočine.

Program za določanje razdalje ultrazvočnega senzorja Arduino HC-SR04

Kako izboljšati natančnost meritev HC-SR04

  • Izmerjeni predmet naj bo znotraj priporočenega razpona razdalje in zunaj 2 cm slepega območja.

  • Za boljši ultrazvočni odboj uporabite ravno in trdno ciljno površino.

  • Izogibajte se merjenju mehkih, pod kotom, poroznih materialov ali materialov, ki absorbirajo zvok.

  • Uporabite stabilen napajalnik 5 V, napeljave pa naj bodo kratke in varne.

  • PulseIn() dodajte časovno omejitev, da preprečite dolgo blokiranje, ko se odmev ne vrne.

  • Povprečite ali filtrirajte mediano več odčitkov, da zmanjšate hrup.

  • Za večjo natančnost kompenzirajte temperaturo, ker se hitrost zvoka spreminja s temperaturo zraka.

Pogoste uporabe projektov ultrazvočnih senzorjev Arduino

Aplikacija Kako se uporablja HC-SR04
Robot za izogibanje oviram Zazna predmete v bližini in pomaga robotu spremeniti smer.
Senzor parkirne razdalje Meri razdaljo med vozilom in oviro.
Zaznavanje nivoja tekočine Brezkontaktno meri razdaljo od senzorja do površine tekočine.
Pametni koš za smeti Zazna roko ali predmet v bližini in sproži samodejno odpiranje pokrova.

Povzetek

Za uporabo ultrazvočnega senzorja HC-SR04 z Arduinom povežite VCC na 5 V, GND na GND, TRIG na digitalni izhodni pin in ECHO na digitalni vhodni pin. Pošljite sprožilni impulz 10us, preberite trajanje odmeva s funkcijo pulseIn() in izračunajte razdaljo s formulo za čas leta.

HC-SR04 je poceni, enostaven za uporabo in primeren za številne projekte merjenja razdalje Arduino. Za najboljše rezultate bodite pozorni na ciljno površino, merilni kot, slepo območje, stabilno moč, rokovanje s časovno omejitvijo in temperaturne učinke.

Pogosta vprašanja o ultrazvočnem senzorju Arduino HC-SR04

Kako ultrazvočni senzor HC-SR04 deluje z Arduinom?

Arduino pošlje impulz 10us na zatič TRIG. HC-SR04 oddaja osem ultrazvočnih impulzov frekvence 40 kHz in nastavi ECHO pin visoko, dokler se odbiti zvok ne vrne. Arduino meri ta čas impulza in izračuna razdaljo.

Kakšna je formula razdalje za projekte HC-SR04 Arduino?

Formula je razdalja = trajanje × hitrost zvoka / 2. V centimetrih je običajna formula Arduino razdalja Cm = trajanje × 0,0343 / 2, kjer se trajanje meri v mikrosekundah.

Zakaj rezultat ultrazvočnega senzorja delimo z 2?

Izmerjeni čas odmeva je čas povratnega potovanja od senzorja do predmeta in nazaj do senzorja. Če delimo z 2, dobimo enosmerno razdaljo med senzorjem in predmetom.

Katere zatiče Arduino naj uporabim za TRIG in ECHO?

Uporabite lahko večino digitalnih zatičev Arduino. V mnogih primerih je TRIG povezan z digitalnim zatičem 9, ECHO pa z digitalnim zatičem 10. Koda se mora ujemati z zatiči, uporabljenimi v vašem ožičenju.

Zakaj moj ultrazvočni senzor HC-SR04 vrača nič ali naključne vrednosti?

Pogosti vzroki vključujejo ohlapno ožičenje, nestabilno napajanje 5 V, napačne številke pinov TRIG ali ECHO, noben predmet v dosegu, nagnjene ciljne površine, mehke materiale, blokirane glave senzorjev ali pomanjkanje časovne omejitve v funkciji pulseIn().

Kaj je slepo območje ultrazvočnega senzorja HC-SR04?

Slepo območje je najmanjša razdalja, kjer modul ne more zanesljivo meriti. Za HC-SR04 je slepo območje običajno približno 2 cm. Predmeti bližje od tega lahko povzročijo nestabilne odčitke.

Ali lahko HC-SR04 meri nivo vode z Arduinom?

Da, HC-SR04 se lahko uporablja za preproste brezkontaktne projekte nivoja vode, če je senzor zaščiten pred vlago in nameščen nad površino tekočine. Za vlažne, zunanje ali industrijske rezervoarje je priporočljiv vodotesen ultrazvočni senzor.

Kako lahko naredim odčitke ultrazvočnega senzorja Arduino bolj stabilne?

Uporabite stabilno napajanje, senzor naj bo pravokoten na tarčo, izogibajte se mehkim ali nagnjenim površinam, dodajte časovno omejitev pulseIn, opravite več odčitkov, uporabite filtriranje mediane in med meritvami pustite približno 60 ms.

Kazalo vsebine