HC-SR04: gjithçka për sensorin tejzanor

Sensori HC-SR04

Ndonjëherë është e nevojshme Mat distancat dhe për këtë ju keni në dispozicion disa sensorë. Ne tashmë kemi kushtuar një artikull për të folur në lidhje me një sensor me distancë me precizion të lartë siç është VL52L0X. Ky sensor ishte i tipit ToF dhe bazohej në matje shumë precize falë lazerit të tij. Por nëse saktësia nuk është aq e rëndësishme për ju dhe doni diçka që ju lejon të matni distancat me një çmim të ulët, një tjetër mundësi që ju keni në majë të gishtave tuaj është HC-SR04.

Në rastin e Sensori i distancës HC-SR04, distanca matet me ultratinguj. Sistemi është i ngjashëm me metodën optike të VL52L0X. Kjo do të thotë, emetohet, ka një kërcim dhe merret, por në këtë rast në vend që të jetë lazer ose IR, është ultrazëri. Nëse jeni të apasionuar pas prodhuesve elektronikë, robotikës ose prodhuesve amatorë, mund ta përdorni për një mori projektesh DIY siç janë sistemet e zbulimit të pengesave për robotët, sensorët e pranisë, etj.

Çfarë është HC-SR04?

Epo, është e qartë, siç kam komentuar tashmë në paragrafët e mëparshëm, HC-SR04 është një sensor i distancës me precizion të ulët i bazuar në ultratinguj. Me të lejon matjen e distancave në një mënyrë të thjeshtë dhe të shpejtë, edhe pse në parim zakonisht nuk përdoret për këtë. Më shpesh, ajo është përdorur si një dhënës për të zbuluar pengesat dhe për t'i shmangur ato përmes mekanizmave të tjerë që lidhen me përgjigjen e sensorit.

Pamja e HC-SR04 është shumë i veçantë dhe lehtësisht i dallueshëm. Përveç kësaj, ai është një artikull mjaft i njohur në kompletet fillestare Arduino dhe i nevojshëm për shumë projekte. Identifikohet lehtësisht sepse ka dy "sy" që në të vërtetë janë pajisjet me ultratinguj që integron ky modul. Njëri prej tyre është një lëshues me ultratinguj dhe tjetri një marrës. Ajo punon në një frekuencë prej 40 Khz, prandaj është e padëgjueshme për njerëzit.

Parimet e sensorit tejzanor

Parimi në të cilin Bazohet në simulimin e atij që përdoret kur hidhni një gur në një pus për të matur thellësinë e tij. Ju hidhni gurin dhe kohën sa duhet që të bjerë në fund. Pastaj ju bëni llogaritjet e shpejtësisë nga koha e kaluar dhe merrni distancën që ka kaluar guri. Por në atë rast sensori je ti.

ESP8266
Artikulli i lidhur:
ESP8266: moduli WIFI për Arduino

Në HC-SR04, emetuesi do të lëshojë ultratinguj dhe kur ata kërcejnë nga një objekt ose pengesë që është në rrugë, ata do të kapen nga marrësi. qark do të bëjë llogaritjet e nevojshme të asaj jehone për të përcaktuar distancën. Kjo mund të jetë e njohur edhe për ju nëse e njihni sistemin që disa kafshë si delfinët, balenat ose lakuriqët e natës përdorin për të gjetur pengesat, pre, etj.

Duke numëruar kohën nga momenti i dërgimit të pulsit deri në marrjen e përgjigjes, koha dhe për këtë arsye distanca mund të përcaktohet me saktësi. Mos harroni se [Hapësira = koha e shpejtësisë] por në rastin e HC-SR04, ju duhet ta ndani këtë sasi me / 2, pasi koha është matur nga kur del ultrazëri dhe udhëton nëpër hapësirë ​​derisa të godasë pengesën dhe rrugën e kthimit, kështu që do të jetë afërsisht gjysma e kësaj ...

Pinout dhe fletët e të dhënave

Ju tashmë e dini që për të parë të dhënat e plota të modelit që keni marrë, gjëja më e mirë është gjeni fletën e të dhënave betoni i prodhuesit. Për shembull, këtu është një Fleta e të dhënave Sparkfun, por ka shumë më tepër në dispozicion në PDF. Sidoqoftë, këtu janë të dhënat më të rëndësishme teknike të HC-SR04:

  • pinout: 4 kunja për rrymën (Vcc), këmbëzën (Trigger), marrësin (Echo) dhe tokëzimin (GND). Shkaku tregon se kur duhet të aktivizohet sensori (kur lëshohet ultrazëri), dhe kështu do të jetë e mundur të dihet koha e kaluar kur marrësi merr sinjalin.
  • ushqim: 5 V
  • Frekuenca e ultrazërit: 40 Khz, veshi i njeriut mund të dëgjojë vetëm nga 20Hz deri në 20Khz. Çdo gjë nën 20Hz (infografi) dhe mbi 20Khz (ultratinguj) nuk do të jetë e perceptueshme.
  • Konsumi (gatishmëri): <2mA
  • Konsumi duke punuar: 15 mA
  • Këndi efektiv: <15º, në varësi të këndeve të objekteve mund të keni rezultate më të mira ose më të këqija.
  • Distanca e matur: nga 2 cm në 400 cm, megjithëse nga 250 cm rezolucioni nuk do të jetë shumë i mirë.
  • Rezolucion mesatar: Ndryshimi 0.3 cm midis distancës aktuale dhe matjes, kështu që pavarësisht se nuk konsiderohet shumë i saktë si lazeri, matjet janë mjaft të pranueshme për shumicën e aplikacioneve.
  • çmim: nga rreth 0,65 €

Integrimi me Arduino

HC-SR04 me Arduino

lidhja e saj me Arduino nuk mund të jetë më e lehtë. Thjesht duhet të jesh i ngarkuar të lidhësh GND me daljen përkatëse të Arduino-s tënde të shënuar si i tillë, Vcc me furnizimin me energji Arduino 5v dhe dy kunjat e tjerë të HC-SR04 me hyrjet / daljet e zgjedhura për projektin tënd. Ju mund të shihni se është e thjeshtë në skemën e sipërme Fritzing ...

Thjesht duhet të keni një konsideratë, që kasapi duhet të marrë një impuls elektrik prej të paktën 10 mikrosekondave që të aktivizohet siç duhet. Më parë duhet të siguroheni që është në vlerë të ULT.

Për të kodi për Arduino IDE, nuk keni pse të përdorni ndonjë bibliotekë ose diçka të tillë si me komponentët e tjerë. Thjesht bëni formulën për të llogaritur distancën dhe pak tjetër ... Sigurisht, nëse doni që projekti juaj të bëjë diçka në përgjigje të matjes së sensorit HC-SR04, do të duhet të shtoni kodin që ju nevojitet. Për shembull, në vend që të shfaqni thjesht matjet në tastierë, mund të bëni që motorët shërbyes të lëvizin në një drejtim ose në një tjetër për distanca të caktuara për të shmangur pengesën, ose për një motor të ndalet, një alarm që të aktivizohet kur zbulon afërsinë, etj. .

 Më shumë informacion në lidhje me programimin: Manual Arduino (PDF falas)

Për shembull, ju mund ta shihni këtë kodi bazë për t’u përdorur si bazë:

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


Një koment, lëre tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Jose dijo

    Shpjegimin e gjeta shumë të dobishëm dhe të thjeshtë.