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

Paano gamitin ang ultrasonic sensor sa Arduino?

Views: 164     Author: Grace Publish Time: 2021-07-26 Pinagmulan: Site

button sa pagbabahagi ng facebook
button sa pagbabahagi ng twitter
pindutan ng pagbabahagi ng linya
buton ng pagbabahagi ng wechat
button sa pagbabahagi ng linkedin
Pindutan ng pagbabahagi ng pinterest
pindutan ng pagbabahagi ng whatsapp
button sa pagbabahagi ng kakao
button sa pagbabahagi ng snapchat
pindutan ng pagbabahagi ng telegrama
ibahagi ang button na ito sa pagbabahagi

Paano Gamitin ang Ultrasonic Sensor sa Arduino: Gabay sa HC-SR04

Ang Ang HC-SR04 ultrasonic sensor ay isa sa pinakasikat na mga module ng pagsukat ng distansya para sa mga proyekto ng Arduino. Ito ay malawakang ginagamit sa mga robot sa pag-iwas sa balakid, mga sensor ng paradahan, pag-detect ng antas, mga smart trash bin, mga metro ng distansya, at iba pang mga application ng non-contact sensing.

Ang module ay nagpapalabas ng 40kHz ultrasonic waves sa pamamagitan ng isang transmitter. Kapag ang sound wave ay nakakatugon sa isang bagay, ito ay sumasalamin pabalik sa receiver. Sa pamamagitan ng pagsukat ng oras ng echo at paggamit ng bilis ng tunog, maaaring kalkulahin ng Arduino ang distansya sa pagitan ng sensor at ng bagay.

HC-SR04 ultrasonic sensor module para sa pagsukat ng distansya ng Arduino

HC-SR04 Pangunahing Teknikal na Parameter

Parameter Halaga
Karaniwang nagtatrabaho boltahe 5V DC
Static na kasalukuyang gumagana Mas mababa sa 5mA sa ilang bersyon ng module
Dalas ng pagpapatakbo 40kHz ultrasonic wave
Distansya ng pagtuklas Karaniwang saklaw: 2cm hanggang 400cm; maaaring suportahan ng ilang mga bersyon na nababagay sa pakinabang ang mas mahabang hanay.
Anggulo ng pagtuklas Karaniwan sa loob ng 15 degrees; ang ilang mga bersyon na may mas mataas na pakinabang ay maaaring umabot ng humigit-kumulang 30 degrees.
Katumpakan Hanggang sa humigit-kumulang 0.3cm sa ilalim ng angkop na mga kondisyon ng pagsubok
Blind zone Humigit-kumulang 2cm na pinakamababang distansya ng pagsukat

Paglalarawan ng HC-SR04 Pin

Ang HC-SR04 ultrasonic module ay may apat na pin: VCC, TRIG, ECHO, at GND. Nagpapadala ang Arduino ng maikling trigger pulse sa TRIG pin, pagkatapos ay binabasa ang return pulse mula sa ECHO pin.

HC-SR04 Pin Koneksyon ng Arduino Function
VCC 5V Power supply para sa ultrasonic module.
TRIG Digital na pin 9 Pag-input ng trigger. Ang Arduino ay nag-aaplay ng 10us pulse upang magsimulang mag-ranging.
ECHO Digital pin 10 Echo output. Binabasa ng Arduino ang lapad ng pulso upang makalkula ang distansya.
GND GND Koneksyon sa lupa.

HC-SR04 ultrasonic sensor pinout VCC TRIG ECHO GND

Prinsipyo ng Paggawa ng HC-SR04 Ultrasonic Sensor

Gumagana ang HC-SR04 sa pamamagitan ng pagsukat sa oras ng paglipad. Nagpapadala ang Arduino ng high-level trigger signal na hindi bababa sa 10 microseconds sa TRIG pin. Ang module pagkatapos ay awtomatikong nagpapadala ng walong 40kHz ultrasonic pulses at naghihintay para sa reflected echo.

Kapag nakita ang sinasalamin na ultrasonic signal, ang ECHO pin ay naglalabas ng mataas na antas ng pulso. Ang tagal ng pulso na ito ay ang round-trip na oras ng paglalakbay ng ultrasonic wave.

Distansya = Echo high-level na oras × Bilis ng tunog / 2

Sa Arduino code, ang karaniwang pinasimple na formula ay:

Distansya sa cm = tagal × 0.0343 / 2

HC-SR04 ultrasonic module oras ng flight nagtatrabaho prinsipyo

HC-SR04 Ultrasonic Module Timing Diagram

Ang proseso ng timing ay simple: pinapanatili ng Arduino na mababa ang TRIG sa madaling sabi, nagpapadala ng 10us na mataas na pulso, pagkatapos ay ibinalik ang TRIG sa mababang. Ang HC-SR04 ay nagpapadala ng ultrasonic burst at nagtatakda ng mataas na ECHO hanggang sa bumalik ang nakalarawang signal o ang oras ng pagsukat.

Upang maiwasan ang mga hindi matatag na pagbabasa, mag-iwan ng maikling pagkaantala sa pagitan ng mga sukat. Karaniwang ginagamit ang cycle ng pagsukat na humigit-kumulang 60ms kaya may oras na mawala ang nakaraang ultrasonic echo bago ang susunod na trigger.

Mga Pangunahing Kaalaman sa Arduino Programming: pulseIn Function

Ang Arduino pulseIn() function ay ginagamit upang sukatin kung gaano katagal nananatiling HIGH o LOW ang isang digital pin. Para sa HC-SR04, ang Arduino ay gumagamit ng pulseIn(echoPin, HIGH) upang basahin ang mataas na antas ng lapad ng pulso mula sa ECHO pin.

Syntax Ibig sabihin
pulseIn(pin, halaga) Binabasa ang tagal ng HIGH o LOW pulse.
pulseIn(pin, halaga, timeout) Binabasa ang pulso na may timeout value sa microseconds.

Inirerekomenda ang paggamit ng timeout. Kung walang ibinalik na echo, ang function ay maaaring huminto sa paghihintay at ibalik ang 0 sa halip na harangan ang programa nang masyadong mahaba.

Arduino board na ginamit sa HC-SR04 ultrasonic distance sensor

Paano Ikonekta ang HC-SR04 Ultrasonic Sensor sa Arduino

Ang mga kable ay diretso. Ikonekta ang VCC sa 5V, GND sa GND, TRIG sa isang Arduino digital output pin, at ECHO sa isang Arduino digital input pin. Ang sumusunod na halimbawa ay gumagamit ng Arduino Uno, TRIG sa pin 9, at ECHO sa pin 10.

Arduino Uno breadboard wiring diagram para sa HC-SR04 ultrasonic sensor

HC-SR04 Ultrasonic Sensor Arduino Code

Ang sumusunod na karaniwang Arduino program ay nagpapadala ng 10us trigger pulse, binabasa ang ECHO pulse width, kinakalkula ang distansya sa sentimetro, at ini-print ang resulta sa Serial Monitor.

const int trigPin = 9; const int echoPin = 10; mahabang tagal; float distanceCm; 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);   tagal = pulseIn(echoPin, HIGH, 30000);   if (tagal == 0) { Serial.println('Out of range');   } else { distanceCm = tagal * 0.0343 / 2;     Serial.print('Distansya: ');     Serial.print(distanceCm);     Serial.println(' cm');   } pagkaantala(60); }

Kung nakikita mo ang mga halaga ng distansya sa Serial Monitor, gumagana nang tama ang HC-SR04 ultrasonic sensor at Arduino wiring. Magagamit mo pagkatapos ang data ng distansya para sa pagtukoy ng obstacle, kontrol sa paggalaw ng robot, mga awtomatikong pinto, mga paalala sa paradahan, o mga proyekto sa antas ng likido.

Arduino HC-SR04 ultrasonic sensor ranging program

Paano Pahusayin ang Katumpakan ng Pagsukat ng HC-SR04

  • Panatilihin ang sinusukat na bagay sa loob ng inirerekomendang hanay ng distansya at sa labas ng 2cm blind zone.

  • Gumamit ng flat at solid na target na ibabaw para sa mas mahusay na ultrasonic reflection.

  • Iwasan ang pagsukat ng malambot, anggulo, buhaghag, o mga materyales na sumisipsip ng tunog.

  • Gumamit ng stable na 5V power supply at panatilihing maikli at secure ang mga kable.

  • Magdagdag ng timeout sa pulseIn() upang maiwasan ang mahabang pagharang kapag walang echo na bumalik.

  • Average o median-filter ang ilang mga pagbabasa upang mabawasan ang ingay.

  • Para sa mas mataas na katumpakan, bayaran ang temperatura dahil nagbabago ang bilis ng tunog sa temperatura ng hangin.

Mga Karaniwang Application ng Arduino Ultrasonic Sensor Projects

Aplikasyon Paano Ginagamit ang HC-SR04
Robot sa pag-iwas sa balakid Nakatuklas ng mga kalapit na bagay at tinutulungan ang robot na baguhin ang direksyon.
Sensor ng distansya ng paradahan Sinusukat ang distansya sa pagitan ng sasakyan at isang balakid.
Pagtukoy sa antas ng likido Sinusukat ang distansya mula sa sensor hanggang sa likidong ibabaw nang walang kontak.
Matalinong basurahan Nakatuklas ng kalapit na kamay o bagay at nagti-trigger ng awtomatikong pagbukas ng takip.

Buod

Upang gumamit ng HC-SR04 ultrasonic sensor na may Arduino, ikonekta ang VCC sa 5V, GND sa GND, TRIG sa isang digital output pin, at ECHO sa isang digital input pin. Magpadala ng 10us trigger pulse, basahin ang tagal ng echo gamit ang pulseIn(), at kalkulahin ang distansya gamit ang time-of-flight formula.

Ang HC-SR04 ay mura, madaling gamitin, at angkop para sa maraming Arduino distance measurement projects. Para sa pinakamahusay na mga resulta, bigyang-pansin ang target na ibabaw, anggulo ng pagsukat, blind zone, stable na power, timeout handling, at mga epekto sa temperatura.

Mga Madalas Itanong Tungkol sa HC-SR04 Arduino Ultrasonic Sensor

Paano gumagana ang HC-SR04 ultrasonic sensor sa Arduino?

Nagpapadala ang Arduino ng 10us pulse sa TRIG pin. Ang HC-SR04 ay naglalabas ng walong 40kHz ultrasonic pulse at itinatakda ang ECHO pin na mataas hanggang sa bumalik ang naaninag na tunog. Sinusukat ng Arduino ang oras ng pulso na ito at kinakalkula ang distansya.

Ano ang formula ng distansya para sa mga proyekto ng HC-SR04 Arduino?

Ang formula ay distansya = tagal × bilis ng tunog / 2. Sa sentimetro, ang karaniwang formula ng Arduino ay distanceCm = tagal × 0.0343 / 2, kung saan ang tagal ay sinusukat sa microseconds.

Bakit natin hinahati ang resulta ng ultrasonic sensor sa 2?

Ang sinusukat na echo time ay ang round-trip na oras mula sa sensor papunta sa object at pabalik sa sensor. Ang paghahati sa 2 ay nagbibigay ng one-way na distansya sa pagitan ng sensor at ng bagay.

Aling mga Arduino pin ang dapat kong gamitin para sa TRIG at ECHO?

Maaari mong gamitin ang karamihan sa mga Arduino digital pin. Sa maraming halimbawa, nakakonekta ang TRIG sa digital pin 9 at nakakonekta ang ECHO sa digital pin 10. Dapat tumugma ang code sa mga pin na ginamit sa iyong mga wiring.

Bakit nagbabalik ng zero o random na halaga ang aking HC-SR04 ultrasonic sensor?

Kabilang sa mga karaniwang sanhi ang maluwag na mga kable, hindi matatag na 5V power, maling TRIG o ECHO pin number, walang object sa range, angled target surface, malambot na materyales, naka-block na sensor head, o walang timeout sa pulseIn() function.

Ano ang blind zone ng HC-SR04 ultrasonic sensor?

Ang blind zone ay ang pinakamababang distansya kung saan hindi maasahan ang pagsukat ng module. Para sa HC-SR04, ang blind zone ay karaniwang mga 2cm. Ang mga bagay na mas malapit dito ay maaaring makagawa ng hindi matatag na pagbabasa.

Maaari bang masukat ng HC-SR04 ang antas ng tubig gamit ang Arduino?

Oo, ang HC-SR04 ay maaaring gamitin para sa mga simpleng non-contact water level projects kung ang sensor ay protektado mula sa moisture at naka-mount sa itaas ng likidong ibabaw. Para sa mahalumigmig, panlabas, o pang-industriya na tangke, inirerekomenda ang isang hindi tinatagusan ng tubig na ultrasonic sensor.

Paano ko gagawing mas matatag ang pagbabasa ng ultrasonic sensor ng Arduino?

Gumamit ng stable na power supply, panatilihing patayo ang sensor sa target, iwasan ang malambot o angled na ibabaw, magdagdag ng pulseIn timeout, kumuha ng maraming pagbabasa, gumamit ng median na pag-filter, at payagan ang humigit-kumulang 60ms sa pagitan ng mga sukat.

Talaan ng Nilalaman