HC-SR04: viskas apie ultragarso jutiklį

HC-SR04 jutiklis

Kartais to reikia Išmatuokite atstumus ir tam turite keletą jutiklių. Mes jau paskyrėme straipsnį kalbėti apie a didelio tikslumo atstumo jutiklis, pvz., VL52L0X. Šis jutiklis buvo ToF tipo ir buvo pagrįstas labai tiksliais matavimais dėl lazerio. Bet jei tikslumas jums nėra toks svarbus ir norite kažko, kas leistų matuoti atstumus už mažą kainą, dar viena galimybė po ranka yra HC-SR04.

Tuo atveju, kai HC-SR04 atstumo jutiklis, atstumas matuojamas ultragarsu. Sistema yra panaši į optinį VL52L0X metodą. Tai reiškia, kad jis skleidžiamas, įvyksta atšokimas ir jis yra priimamas, tačiau šiuo atveju vietoj lazerio ar IR yra ultragarsas. Jei aistringai domitės elektronika, robotika ar mėgėjų kūrėjais, galite tai naudoti daugeliui savadarbių projektų, tokių kaip kliūčių aptikimo sistemos robotams, buvimo jutikliai ir kt.

Kas yra HC-SR04?

Na, akivaizdu, kaip jau komentavau ankstesnėse pastraipose, HC-SR04 yra žemo tikslumo atstumo jutiklis, pagrįstas ultragarsu. Tai leidžia paprastai ir greitai išmatuoti atstumus, nors iš esmės tai paprastai nenaudojama. Dažniausiai jis naudojamas kaip daviklis kliūtims aptikti ir jų išvengti naudojant kitus mechanizmus, susijusius su jutiklio reakcija.

Išvaizda HC-SR04 yra labai išskirtinis ir lengvai atpažįstamas. Be to, tai labai populiarus „Arduino“ pradinių rinkinių elementas ir reikalingas daugybei projektų. Jis lengvai atpažįstamas, nes turi dvi „akis“, kurios iš tikrųjų yra ultragarso prietaisai, kuriuos integruoja šis modulis. Vienas iš jų yra ultragarso skleidėjas, o kitas - imtuvas. Jis veikia 40 Khz dažniu, todėl žmonėms negirdimas.

Ultragarso jutiklio principai

Principas, kuriuo Jis pagrįstas imituojant tą, kuris naudojamas, kai įmetate akmenį į šulinį, kad pamatuotumėte jo gylį. Metate akmenį ir laiką, per kiek laiko jis nukrenta iki dugno. Tada jūs apskaičiuosite greitį per praėjusį laiką ir gausite atstumą, kurį nuvažiavo akmuo. Bet tokiu atveju jutiklis esate jūs.

ESP8266
Susijęs straipsnis:
ESP8266: „Arduino“ WIFI modulis

„HC-SR04“ skleidėjas skleis ultragarsą ir, kai jie atšoks nuo daikto ar kliūties taip, kad juos užfiksuotų imtuvas. grandinė atliks reikiamus skaičiavimus to aido nustatyti atstumą. Tai taip pat gali būti jums žinoma, jei žinote sistemą, kurią kai kurie gyvūnai, tokie kaip delfinai, banginiai ar šikšnosparniai, naudoja kliūčių, grobio ir kt. Nustatymui.

Skaičiuojant laiką nuo impulso siuntimo iki gaunamo atsakymo, galima tiksliai nustatyti laiką ir atstumą. Prisiminti, kad [Erdvė = greičio laikas] bet HC-SR04 atveju šią sumą turite padalyti iš / 2, nes laikas buvo matuojamas nuo ultragarso išvykimo ir kelionės per kosmosą, kol pasieks kliūtį ir kelią atgal, taigi jis bus maždaug pusė tai ...

Pinout ir duomenų lapai

Jūs jau žinote, kad geriausia, jei norite pamatyti visus įsigyto modelio duomenis susiraskite duomenų lapą gamintojo betonas. Pavyzdžiui, čia yra a „Sparkfun“ duomenų lapas, bet jų yra daug daugiau PDF formatu. Tačiau čia pateikiami svarbiausi techniniai HC-SR04 duomenys:

  • pinout: 4 kontaktai galiai (Vcc), gaidukui (Trigger), imtuvui (Echo) ir žemei (GND). Trigeris rodo, kada jutiklis turėtų būti įjungtas (kai paleidžiamas ultragarsas), taigi bus galima sužinoti laiką, praėjusį, kai imtuvas gauna signalą.
  • maitinimas: 5 V
  • Ultragarso dažnis: 40 Khz, žmogaus ausis girdi tik nuo 20Hz iki 20Khz. Viskas, kas yra žemesnė nei 20Hz (infragarso) ir didesnė nei 20Khz (ultragarso), nebus suvokiama.
  • Vartojimas (budėjimo režimu): <2mA
  • Vartojimas veikia: 15mA
  • Efektyvus kampas: <15º, atsižvelgiant į objektų kampus, rezultatai gali būti geresni ar blogesni.
  • Išmatuotas atstumas: nuo 2 cm iki 400 cm, nors nuo 250 cm skiriamoji geba nebus labai gera.
  • Vidutinė skiriamoji geba: 0.3 cm skirtumas tarp faktinio atstumo ir matavimo, todėl, nepaisant to, kad tai nėra laikoma labai tikslia, pavyzdžiui, lazeriu, daugumai programų matavimai yra gana priimtini.
  • kaina: nuo maždaug 0,65 euro

Integracija su „Arduino“

HC-SR04 su „Arduino“

į prijungti jį prie „Arduino“ negali būti paprasčiau. Jūs tiesiog turite būti atsakingas už GND prijungimą prie atitinkamo „Arduino“ išvesties, pažymėtos kaip tokia, „Vcc“ su „Arduino 5v“ tiekimu ir likusiais dviem „HC-SR04“ kaiščiais su jūsų projektui pasirinktais įėjimais / išvestimis. Viršutinėje „Fritzing“ schemoje matosi, kad tai paprasta ...

Jums tereikia atsižvelgti į tai, kad tigras turi gauti mažiausiai 10 mikrosekundžių elektros impulsą, kad jis tinkamai suaktyvėtų. Anksčiau turite įsitikinti, kad jo vertė yra ŽEMA.

Dėl „Arduino IDE“ kodas, jums nereikia naudoti jokios bibliotekos ar pan., panašiai kaip su kitais komponentais. Tiesiog sukurkite formulę, kad apskaičiuotumėte atstumą ir dar mažai ką ... Žinoma, jei norite, kad jūsų projektas kažką padarytų reaguodamas į HC-SR04 jutiklio matavimą, turėsite pridėti reikiamą kodą. Pavyzdžiui, užuot paprasčiausiai parodę matavimus konsolėje, galite priversti servovariklius tam tikru atstumu judėti viena ar kita kryptimi tam, kad išvengtumėte kliūties, arba varikliui sustoti, įjungti signalizaciją, kai jis aptinka artumą ir t. .

 Daugiau informacijos apie programavimą: „Arduino“ vadovas (nemokamas PDF)

Pavyzdžiui, galite tai pamatyti pagrindinis kodas, naudojamas kaip pagrindas:

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


Komentaras, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Chosė sakė

    Man paaiškinimas pasirodė labai naudingas ir paprastas.