HC-SR04: усё пра ультрагукавы датчык

Датчык HC-SR04

Часам гэта неабходна Вымерайце адлегласці і для гэтага ў вашым распараджэнні некалькі датчыкаў. Мы ўжо прысвяцілі артыкул, каб пагаварыць пра высокадакладны датчык адлегласці, напрыклад VL52L0X. Гэты датчык быў тыпу ToF і быў заснаваны на вельмі дакладных вымярэннях дзякуючы лазеру. Але калі дакладнасць не так важная для вас, і вы хочаце нешта, што дазваляе вымераць адлегласці па нізкай цане, яшчэ адна магчымасць у вас пад рукой HC-SR04.

У выпадку Датчык адлегласці HC-SR04, адлегласць вымяраецца ультрагукам. Сістэма падобная на аптычны метад VL52L0X. Гэта значыць, ён выпраменьваецца, ёсць адскок і ён прымаецца, але ў гэтым выпадку замест лазера ці ІЧ гэта ўльтрагук. Калі вы захапляецеся вытворцам электронікі, робататэхнікі або аматара, вы можаце выкарыстоўваць яго для мноства праектаў, якія працуюць сам, напрыклад, для сістэм выяўлення перашкод для робатаў, датчыкаў прысутнасці і г.д.

Што такое HC-SR04?

Ну, гэта відавочна, як я ўжо каментаваў у папярэдніх абзацах, HC-SR04 - гэта нізкадакладны датчык адлегласці, заснаваны на ультрагуку. З яго дапамогай ён дазваляе проста і хутка вымяраць адлегласці, хоць у прынцыпе звычайна для гэтага не выкарыстоўваецца. Часцей за ўсё ён выкарыстоўваецца ў якасці пераўтваральніка для выяўлення перашкод і пазбягання іх праз іншыя механізмы, звязаныя з рэакцыяй датчыка.

З'яўленне HC-SR04 вельмі адметны і лёгка пазнаецца. Акрамя таго, гэта вельмі папулярны прадмет у стартавых наборах Arduino і неабходны для мноства праектаў. Яго лёгка ідэнтыфікаваць, паколькі ён мае два "вочы", якія на самой справе ўяўляюць сабой ультрагукавыя прыборы, якія інтэгруе гэты модуль. Адзін з іх - выпраменьвальнік ультрагуку, а другі - прымач. Ён працуе на частаце 40 кГц, таму для чалавека нячутны.

Прынцыпы ультрагукавога датчыка

Прынцып, у якім Ён заснаваны на мадэляванні той, якая выкарыстоўваецца, калі вы кідаеце камень у студню для вымярэння яго глыбіні. Вы кідаеце камень і час, колькі трэба часу, каб ён упаў на дно. Затым вы робіце разлікі хуткасці за мінулы час і атрымліваеце адлегласць, якую прайшоў камень. Але ў гэтым выпадку датчык - гэта вы.

ESP8266
звязаныя артыкулы:
ESP8266: модуль WIFI для Arduino

У HC-SR04 выпраменьвальнік будзе выпраменьваць ультрагукі, і калі яны адскочаць ад прадмета альбо перашкоды, яны будуць захопленыя прымачом. схема правядзе неабходныя разлікі гэтага рэха, каб вызначыць адлегласць. Гэта таксама можа быць вам знаёма, калі вы ведаеце сістэму, якую некаторыя жывёлы, такія як дэльфіны, кіты або кажаны, выкарыстоўваюць для пошуку перашкод, здабычы і г.д.

Падлічваючы час з моманту адпраўкі імпульсу да атрымання адказу, можна дакладна вызначыць час і, такім чынам, адлегласць. Памятайце, што [Прастора = час хуткасці] але ў выпадку HC-SR04 вы павінны падзяліць гэтую велічыню на / 2, бо час вымяраецца з таго часу, калі ультрагук выходзіць і рухаецца праз прастору, пакуль не трапіць на перашкоду і зваротны шлях, таму будзе прыблізна палова гэтага ...

Распінаванне і табліцы дадзеных

Вы ўжо ведаеце, што, каб убачыць поўныя дадзеныя мадэлі, якую вы набылі, лепш за ўсё знайсці табліцу бетон вытворцы. Напрыклад, вось Табліца дадзеных Sparkfun, але ў PDF ёсць шмат іншых. Аднак вось найбольш важныя тэхнічныя дадзеныя HC-SR04:

  • Распиновка: 4 кантакты для харчавання (Vcc), трыгера (трыгера), прыёмніка (рэха) і зазямлення (GND). Спускавы механізм паказвае, калі трэба актываваць датчык (пры запуску ультрагуку), і, такім чынам, можна будзе даведацца час, якое прайшло, калі прыёмнік атрымлівае сігнал.
  • гадаванне: 5 В.
  • Частата УГД: 40 кГц, чалавечае вуха можа чуць толькі ад 20 Гц да 20 кГц. Усё ніжэй за 20 Гц (інфразвук) і вышэй за 20 кГц (ультрагук) не будзе адчувальным.
  • Спажыванне (у рэжыме чакання): <2мА
  • Спажыванне працуе: 15mA
  • Эфектыўны кут: <15º, у залежнасці ад ракурсаў аб'ектаў вы можаце атрымаць лепшыя ці горшыя вынікі.
  • Вымераная адлегласць: ад 2 см да 400 см, хоць з 250 см дазвол будзе не вельмі добрым.
  • Сярэдняе дазвол: Розніца паміж фактычнай адлегласцю і вымярэннем у 0.3 см, таму, нягледзячы на ​​тое, што яны не лічацца вельмі дакладнымі, як лазер, вымярэнні цалкам прымальныя для большасці прыкладанняў.
  • цана: прыблізна ад 0,65 еўра

Інтэграцыя з Arduino

HC-SR04 з Arduino

да падключыць яго да Arduino не можа быць прасцей. Вам проста трэба будзе падключыць GND да адпаведнага выхаду вашага Arduino, пазначанага як такі, Vcc з харчаваннем Arduino 5v і астатнія два кантакты HC-SR04 з уваходамі / выхадамі, абранымі для вашага праекта. Вы бачыце, што гэта проста ў верхняй схеме фрыцынгу ...

Вам проста трэба ўлічыць, што тыгр павінен атрымліваць электрычны імпульс не менш за 10 мікрасекунд, каб ён правільна актываваўся. Раней вы павінны пераканацца, што яно мае НІЗКАЕ значэнне.

Адносна код для IDE Arduino, вам не трэба выкарыстоўваць якую-небудзь бібліятэку альбо нешта падобнае з іншымі кампанентамі. Проста зрабіце формулу для разліку адлегласці і мала што іншае ... Вядома, калі вы хочаце, каб ваш праект зрабіў нешта ў адказ на вымярэнне датчыка HC-SR04, вам трэба будзе дадаць патрэбны вам код. Напрыклад, замест таго, каб проста адлюстроўваць вымярэнні на кансолі, вы можаце прымусіць рухацца серварухавікі ў той ці іншы бок на пэўную адлегласць, каб пазбегнуць перашкоды, альбо спыніць рухавік, спрацоўваць сігналізацыя пры выяўленні блізкасці і г.д. .

 Больш інфармацыі пра праграмаванне: Кіраўніцтва Arduino (бясплатны PDF)

Напрыклад, вы можаце гэта ўбачыць асноўны код для выкарыстання ў якасці асновы:

//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;
}

 


Змест артыкула адпавядае нашым прынцыпам рэдакцыйная этыка. Каб паведаміць пра памылку, націсніце тут.

Каментарый, пакіньце свой

Пакіньце свой каментар

Ваш электронны адрас не будзе апублікаваны. Абавязковыя для запаўнення палі пазначаныя *

*

*

  1. Адказны за дадзеныя: Мігель Анхель Гатон
  2. Прызначэнне дадзеных: Кантроль спаму, кіраванне каментарыямі.
  3. Легітымнасць: ваша згода
  4. Перадача дадзеных: Дадзеныя не будуць перададзены трэцім асобам, за выключэннем юрыдычных абавязкаў.
  5. Захоўванне дадзеных: База дадзеных, размешчаная Occentus Networks (ЕС)
  6. Правы: у любы час вы можаце абмежаваць, аднавіць і выдаліць сваю інфармацыю.

  1.   Хасэ сказаў

    Тлумачэнне мне падалося вельмі карысным і простым.