HC-SR04: lahat tungkol sa ultrasonic sensor

HC-SR04 Sensor

Minsan kailangan Sukatin ang mga distansya at para sa na mayroon ka ng maraming mga sensor. Nakatuon na kami ng isang artikulo upang pag-usapan ang a mataas na eksaktong distansya sensor tulad ng VL52L0X. Ang sensor na ito ay nasa uri ng ToF at batay sa eksaktong tumpak na mga sukat salamat sa laser nito. Ngunit kung ang katumpakan ay hindi ganoon kahalaga sa iyo at nais mo ang isang bagay na nagbibigay-daan sa iyo upang masukat ang mga distansya sa isang mababang presyo, isa pang posibilidad na iyon mayroon ka sa iyong mga kamay ay ang HC-SR04.

Sa kaso ng Ang sensor ng distansya ng HC-SR04, ang distansya ay sinusukat ng ultrasound. Ang sistema ay katulad ng optikal na pamamaraan ng VL52L0X. Iyon ay, inilalabas, mayroong isang bounce at natanggap ito, ngunit sa kasong ito sa halip na maging isang laser o IR, ito ay ultrasound. Kung masigasig ka sa electronics, robotics o amateur maker, maaari mo itong magamit para sa maraming mga proyekto sa DIY tulad ng mga system ng pagtuklas ng balakid para sa mga robot, sensor ng pagkakaroon, atbp.

Ano ang HC-SR04?

Sa gayon, ito ay halata, tulad ng naibigay ko na sa nakaraang mga talata, Ang HC-SR04 ay isang mababang sensor ng distansya ng distansya batay sa ultrasound. Pinapayagan nitong sukatin ang mga distansya sa isang simple at mabilis na paraan, kahit na sa prinsipyo hindi ito karaniwang ginagamit para doon. Kadalasan, ginagamit ito bilang isang transducer upang makita ang mga hadlang at maiwasan ang mga ito sa pamamagitan ng iba pang mga mekanismo na nauugnay sa tugon ng sensor.

Ang hitsura ng Ang HC-SR04 ay napaka-natatangi at madaling makilala. Bilang karagdagan, ito ay lubos na isang tanyag na item sa Arduino starter kit at kinakailangan para sa maraming mga proyekto. Madali itong makikilala sapagkat mayroon itong dalawang "mata" na talagang ang mga aparato ng ultrasound na isinasama ng modyul na ito. Ang isa sa mga ito ay isang emitor ng ultrasound at ang isa ay isang tatanggap. Gumagana ito sa dalas na 40 Khz, samakatuwid hindi ito maririnig ng mga tao.

Mga prinsipyo ng ultrasonic sensor

Ang prinsipyo kung saan Ito ay batay sa pagtulad sa ginamit noong magtapon ka ng bato sa isang balon upang masukat ang lalim nito. Itinapon mo ang bato at oras kung gaano katagal bago ito mahulog sa ilalim. Pagkatapos ay gumawa ka ng mga kalkulasyon ng bilis para sa lumipas na oras at nakukuha mo ang distansya na nilakbay ng bato. Ngunit sa kasong iyon ang sensor ay ikaw.

ESP8266
Kaugnay na artikulo:
ESP8266: ang module ng WIFI para sa Arduino

Sa HC-SR04, ang emitter ay magpapalabas ng ultrasound at kapag tumalbog sila ng isang bagay o balakid sa paraan na sila ay makuha ng tatanggap. Ang gagawin ng circuit ang kinakailangang mga kalkulasyon ng echo na iyon upang matukoy ang distansya. Maaari mo ring pamilyar sa iyo kung alam mo ang system na ginagamit ng ilang mga hayop tulad ng mga dolphin, balyena o paniki upang makahanap ng mga hadlang, biktima, atbp.

Sa pamamagitan ng pagbibilang ng oras mula nang ipadala ang pulso hanggang sa matanggap ang tugon, ang oras at samakatuwid ang distansya ay maaaring tumpak na matukoy. Tandaan na [Space = oras ng tulin] ngunit sa kaso ng HC-SR04, dapat mong hatiin ang dami na ito sa / 2, dahil ang oras ay nasusukat mula sa paglabas ng ultrasound at paglalakbay sa kalawakan hanggang sa maabot nito ang balakid at pabalik, kaya't humigit-kumulang na kalahati nito ...

Mga pinout at datasheet

Alam mo na upang makita ang kumpletong data ng modelo na iyong nakuha, ang pinakamagandang bagay ay hanapin ang datasheet kongkreto ng gumawa. Halimbawa, narito ang a Sparkfun datasheet, ngunit marami pang magagamit sa PDF. Gayunpaman, narito ang pinakamahalagang teknikal na data ng HC-SR04:

  • pinout: 4 na pin para sa lakas (Vcc), gatilyo (Trigger), receiver (Echo) at ground (GND). Ipinapahiwatig ng gatilyo kung kailan dapat iaktibo ang sensor (kapag inilunsad ang ultrasound), at sa gayon posible na malaman ang oras na lumipas kapag natanggap ng tatanggap ang signal.
  • pagpapakain: 5 V
  • Dalas ng ultrasound: 40 Khz, ang tainga ng tao ay makakarinig lamang mula sa 20Hz hanggang 20Khz. Lahat ng mas mababa sa 20Hz (imprastraktura) at higit sa 20Khz (ultrasound) ay hindi mapapansin.
  • Pagkonsumo (stand-by): <2mA
  • Gumagana ang pagkonsumo: 15mA
  • Mabisang anggulo: <15º, depende sa mga anggulo ng mga bagay na maaari kang magkaroon ng mas mahusay o mas masahol na mga resulta.
  • Sinukat ang distansya: mula 2cm hanggang 400cm, bagaman mula sa 250 cm ang resolusyon ay hindi magiging napakahusay.
  • Katamtamang resolusyon: 0.3 cm pagkakaiba-iba sa pagitan ng aktwal na distansya at pagsukat, kaya sa kabila ng hindi isinasaalang-alang na lubos na tumpak tulad ng laser, ang mga sukat ay katanggap-tanggap para sa karamihan ng mga application.
  • presyo: mula sa halos € 0,65

Pagsasama sa Arduino

HC-SR04 kasama si Arduino

Sa ang pagkonekta nito sa Arduino ay hindi madali. Dapat kang mag-ingat sa pagkonekta ng GND sa kaukulang output ng iyong Arduino na minarkahan tulad nito, Vcc na may Arduino 5v power supply at iba pang dalawang mga pin ng HC-SR04 kasama ang mga input / output na pinili para sa iyong proyekto. Maaari mong makita na ito ay simple sa itaas na Fritzing scheme ...

Kailangan mo lamang na magkaroon ng isang pagsasaalang-alang, na ang tigger ay dapat makatanggap ng isang de-kuryenteng pulso ng hindi bababa sa 10 microseconds upang ito ay aktibo nang maayos. Dati dapat mong tiyakin na ito ay sa LOW halaga.

Ukol sa code para sa Arduino IDE, hindi mo na kailangang gumamit ng anumang silid-aklatan o anumang katulad nito sa ibang mga bahagi. Gawin lamang ang pormula upang makalkula ang distansya at kaunti pa ... Siyempre, kung nais mong gumawa ng isang bagay ang iyong proyekto bilang tugon sa pagsukat ng HC-SR04 sensor, kailangan mong idagdag ang code na kailangan mo. Halimbawa, sa halip na ipakita lamang ang mga sukat sa console, maaari mong ilipat ang mga servomotor sa isang direksyon o iba pa para sa ilang mga distansya upang maiwasan ang balakid, o para huminto ang isang motor, isang aktibong alarma kapag nakita nito ang kalapitan, atbp. .

 Higit pang impormasyon tungkol sa pagprograma: Manwal ng Arduino (Libreng PDF)

Halimbawa, makikita mo ito pangunahing code na gagamitin bilang batayan:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


Isang komento, iwan mo na

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Jose dijo

    Natagpuan ko ang paliwanag na lubhang kapaki-pakinabang at simple.