HC-SR04: viss par ultraskaņas sensoru

HC-SR04 sensors

Dažreiz tas ir nepieciešams Izmēriet attālumus un jūsu rīcībā ir vairāki sensori. Mēs jau esam veltījuši rakstu, lai runātu par augstas precizitātes attāluma sensors, piemēram, VL52L0X. Šis sensors bija ToF tipa un, pateicoties tā lāzerim, tika balstīts uz ļoti precīziem mērījumiem. Bet, ja precizitāte jums nav tik svarīga un vēlaties kaut ko tādu, kas ļauj izmērīt attālumus par zemu cenu, vēl viena iespēja jums ir rokas stiepiena attālumā ir HC-SR04.

Šajā gadījumā HC-SR04 attāluma sensors, attālumu mēra ar ultraskaņu. Sistēma ir līdzīga VL52L0X optiskajai metodei. Tas ir, tas tiek izstarots, notiek atlēciens un tas tiek saņemts, taču šajā gadījumā tā ir lāzera vai IR vietā, tā ir ultraskaņa. Ja jūs aizraujaties ar elektroniku, robotiku vai amatieru veidotāju, varat to izmantot daudziem DIY projektiem, piemēram, šķēršļu noteikšanas sistēmām robotiem, klātbūtnes sensoriem utt.

Kas ir HC-SR04?

Nu, tas ir acīmredzami, kā es jau komentēju iepriekšējās rindkopās, HC-SR04 ir zemas precizitātes attāluma sensors, kura pamatā ir ultraskaņa. Tas ļauj vienkārši un ātri izmērīt attālumus, lai gan principā to parasti neizmanto. Visbiežāk to izmanto kā pārveidotāju, lai atklātu šķēršļus un izvairītos no tiem, izmantojot citus mehānismus, kas saistīti ar sensora reakciju.

Izskats HC-SR04 ir ļoti atšķirīgs un viegli atpazīstams. Turklāt tas ir diezgan populārs priekšmets Arduino sākuma komplektos un ir nepieciešams daudziem projektiem. To ir viegli identificēt, jo tam ir divas "acis", kas faktiski ir ultraskaņas ierīces, kuras šis modulis integrē. Viens no tiem ir ultraskaņas izstarotājs, bet otrs uztvērējs. Tas darbojas ar 40 Khz frekvenci, tāpēc cilvēkiem to nav dzirdams.

Ultraskaņas sensoru principi

Princips, kurā Tās pamatā ir simulācija, ko izmanto, kad jūs iemetat aku akā, lai izmērītu tā dziļumu. Jūs iemetat akmeni un laiku, cik ilgs laiks vajadzīgs, lai tas nokristu apakšā. Tad jūs veicat ātruma aprēķinus par pagājušo laiku un iegūstat attālumu, kuru akmens ir nobraucis. Bet tādā gadījumā sensors esat jūs.

ESP8266
saistīto rakstu:
ESP8266: WIFI modulis Arduino

Iekārtā HC-SR04 izstarotājs izstaro ultraskaņu un, kad tas atlec pie kāda objekta vai šķēršļa, uztvērējs tos uztver. The ķēde veiks nepieciešamos aprēķinus no šīs atbalss, lai noteiktu attālumu. Tas jums var būt pazīstams arī tad, ja zināt sistēmu, kuru daži dzīvnieki, piemēram, delfīni, vaļi vai sikspārņi, izmanto, lai atrastu šķēršļus, laupījumu utt.

Saskaitot laiku, kopš pulss tiek nosūtīts līdz atbildes saņemšanai, laiku un līdz ar to attālumu var precīzi noteikt. Atcerieties, ka [Telpa = ātruma laiks] bet HC-SR04 gadījumā šis daudzums ir jāsadala ar / 2, jo laiks ir mērīts no brīža, kad ultraskaņa iznāk un pārvietojas pa kosmosu, līdz tā trāpās šķērslim un ceļam atpakaļ, tāpēc tas būs aptuveni puse no tā ...

Pinout un datu lapas

Jūs jau zināt, ka, lai redzētu pilnīgus iegūtā modeļa datus, vislabāk ir atrodiet datu lapu ražotāja betons. Piemēram, šeit ir a Sparkfun datu lapa, bet PDF formātā ir pieejams daudz vairāk. Tomēr šeit ir vissvarīgākie HC-SR04 tehniskie dati:

  • Piepildījums: 4 kontakti strāvai (Vcc), trigerim (Trigger), uztvērējam (Echo) un zemei ​​(GND). Sprūda norāda, kad sensors jāaktivizē (kad tiek iedarbināta ultraskaņa), un tādējādi būs iespējams uzzināt laiku, kas pagājis, kad uztvērējs saņem signālu.
  • barošana: 5 V
  • Ultraskaņas biežums: 40 Khz, cilvēka auss dzird tikai no 20Hz līdz 20Khz. Viss zem 20Hz (infraskaņa) un virs 20Khz (ultraskaņa) nebūs uztverams.
  • Patēriņš (gaidīšanas režīmā): <2mA
  • Patēriņš strādā: 15mA
  • Efektīvais leņķis: <15º, atkarībā no objektu leņķa var būt labāki vai sliktāki rezultāti.
  • Izmērītais attālums: no 2 cm līdz 400 cm, lai gan no 250 cm izšķirtspēja nebūs ļoti laba.
  • Vidēja izšķirtspēja: 0.3 cm variācija starp faktisko attālumu un mērījumu, tāpēc, neskatoties uz to, ka tas netiek uzskatīts par ļoti precīzu, piemēram, lāzeru, vairumam lietojumu mērījumi ir diezgan pieņemami.
  • cena: no aptuveni 0,65 €

Integrācija ar Arduino

HC-SR04 ar Arduino

līdz savienot to ar Arduino nevar būt vieglāk. Jums vienkārši jābūt atbildīgam par GND pieslēgšanu attiecīgajai Arduino izejai, kas atzīmēta kā tāda, Vcc ar Arduino 5v barošanas avotu un pārējām divām HC-SR04 tapām ar jūsu projektam izvēlētajām ieejām / izejām. Augšējā Fritzing shēmā var redzēt, ka tas ir vienkārši ...

Lai pareizi aktivizētos, tīģerim ir jāsaņem vismaz 10 mikrosekunžu elektriskais impulss. Iepriekš jums jāpārliecinās, ka tā vērtība ir LOW.

In Cuanto al Arduino IDE kods, jums nav jāizmanto neviena bibliotēka vai tamlīdzīgi, piemēram, ar citiem komponentiem. Vienkārši izveidojiet formulu, lai aprēķinātu attālumu un maz ko citu ... Protams, ja vēlaties, lai jūsu projekts kaut ko darītu, reaģējot uz sensora HC-SR04 mērījumiem, jums būs jāpievieno nepieciešamais kods. Piemēram, tā vietā, lai vienkārši rādītu mērījumus konsolē, jūs varat likt servomotoriem pārvietoties vienā vai otrā virzienā noteiktus attālumus, lai izvairītos no šķēršļa, vai motoram apstāties, lai aktivizētu trauksmi, kad tā nosaka tuvumu utt. .

 Plašāka informācija par programmēšanu: Arduino rokasgrāmata (bezmaksas PDF)

Piemēram, jūs to varat redzēt pamata kods, ko izmantot kā pamatu:

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


Komentārs, atstāj savu

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Jose teica

    Es uzskatīju, ka paskaidrojums ir ļoti noderīgs un vienkāršs.