HC-SR04: kaikki ultraäänianturista

HC-SR04-anturi

Joskus se on välttämätöntä Mittaa etäisyydet ja sitä varten sinulla on käytössänne useita antureita. Olemme jo omistaneet artikkelin puhua a erittäin tarkka etäisyysanturi, kuten VL52L0X. Tämä anturi oli ToF-tyyppinen ja perustui erittäin tarkkoihin mittauksiin laserinsa ansiosta. Mutta jos tarkkuus ei ole sinulle niin tärkeä ja haluat jotain, jonka avulla voit mitata etäisyyksiä edulliseen hintaan, toinen mahdollisuus sormenpäilläsi on HC-SR04.

Tapauksessa HC-SR04-etäisyysanturi, etäisyys mitataan ultraäänellä. Järjestelmä on samanlainen kuin VL52L0X: n optinen menetelmä. Toisin sanoen se säteilee, tapahtuu palautuminen ja se vastaanotetaan, mutta tässä tapauksessa se on ultraääni sen sijaan, että se olisi laser tai IR. Jos olet intohimoisesti elektroniikka-, robotiikka- tai harrastelijavalmistaja, voit käyttää sitä moniin DIY-projekteihin, kuten robottien esteentunnistusjärjestelmiin, läsnäoloantureihin jne.

Mikä on HC-SR04?

No, on selvää, kuten olen jo kommentoinut edellisissä kappaleissa, HC-SR04 on matalatarkka etäisyysanturi, joka perustuu ultraääniin. Sen avulla se voi mitata etäisyyksiä yksinkertaisella ja nopealla tavalla, vaikka periaatteessa sitä ei yleensä käytetä siihen. Useimmiten sitä käytetään anturina esteiden havaitsemiseksi ja niiden välttämiseksi muiden anturin vasteeseen liittyvien mekanismien avulla.

Ulkonäkö HC-SR04 on hyvin erottuva ja helposti tunnistettavissa. Lisäksi se on erittäin suosittu tuote Arduino-aloitussarjoissa ja tarvitaan monille projekteille. Se tunnistetaan helposti, koska siinä on kaksi "silmää", jotka ovat itse asiassa ultraäänilaitteita, jotka tämä moduuli integroi. Yksi niistä on ultraäänilähetin ja toinen vastaanotin. Se toimii taajuudella 40 Khz, joten sitä ei voida kuulla ihmisille.

Ultraäänianturin periaatteet

Alku, jossa Se perustuu sen simulointiin, jota käytetään, kun heität kiven kaivoon sen syvyyden mittaamiseksi. Heität kiven ja aika kuinka kauan se putoaa pohjaan. Sitten teet laskelmat kuluneen ajan nopeudesta ja saat kiven kulkeman matkan. Mutta siinä tapauksessa anturi olet sinä.

ESP8266
Aiheeseen liittyvä artikkeli:
ESP8266: WIFI-moduuli Arduinolle

HC-SR04: ssä emitteri lähettää ultraääniä ja kun ne hyppäävät pois esineestä tai esteestä tavalla, jolla vastaanotin sieppaa ne. piiri tekee tarvittavat laskelmat kaiku etäisyyden määrittämiseksi. Tämä voi myös olla sinulle tuttua, jos tiedät järjestelmän, jota jotkut eläimet, kuten delfiinit, valaat tai lepakot käyttävät esteiden, saalien jne.

Laskemalla aika pulssin lähettämisestä vastauksen vastaanottamiseen, aika ja siten etäisyys voidaan määrittää tarkasti. Muista se [Avaruus = nopeuden aika] mutta HC-SR04: n tapauksessa sinun on jaettava tämä määrä / 2: lla, koska aika on mitattu siitä lähtien, kun ultraääni tulee ulos ja kulkee avaruuden läpi, kunnes se osuu esteeseen ja takaisin, joten se on noin puolet tästä ...

Pinout ja lomakkeet

Tiedät jo, että paras asia on nähdäksesi hankkimasi mallin täydelliset tiedot Etsi tietolomake valmistajan betoni. Esimerkiksi tässä on Sparkfun-tietolomake, mutta PDF-muodossa on paljon muita. Tässä on kuitenkin tärkeimmät HC-SR04: n tekniset tiedot:

  • Sokka irti: 4 nastaa virralle (Vcc), liipaisimelle (Trigger), vastaanottimelle (Echo) ja maadoitukselle (GND). Liipaisin ilmoittaa, milloin anturi tulisi aktivoida (kun ultraääni käynnistetään), ja siten on mahdollista tietää, kuinka paljon aikaa kului, kun vastaanotin vastaanottaa signaalin.
  • ruokinta: 5 V
  • Ultraäänitaajuus: 40 Khz, ihmiskorva kuulee vain 20Hz - 20Khz. Kaikki alle 20 Hz: n (infraääni) ja yli 20 Hz: n (ultraääni) ei ole havaittavissa.
  • Kulutus (valmiustila): <2 mA
  • Kulutus toimii: 15 mA
  • Tehollinen kulma: <15º, kohteiden kulmista riippuen saatat saada parempia tai huonompia tuloksia.
  • Mitattu etäisyys: 2 cm - 400 cm, vaikka 250 cm: n tarkkuus ei ole kovin hyvä.
  • Keskitasoinen resoluutio: 0.3 cm: n vaihtelu todellisen etäisyyden ja mittauksen välillä, joten huolimatta siitä, ettei mittauksia pidetä erittäin tarkkoina, kuten laser, mittaukset ovat melko hyväksyttäviä useimmissa sovelluksissa.
  • hinta: noin 0,65 €

Integrointi Arduinon kanssa

HC-SR04 Arduinon kanssa

että sen yhdistäminen Arduinoon ei voisi olla helpompaa. Sinun täytyy vain olla vastuussa GND: n liittämisestä vastaavaksi merkittyyn Arduinosi lähtöön, Vcc Arduino 5v -virtalähteeseen ja HC-SR04: n kaksi muuta nastaa projektiisi valittuihin tuloihin / lähtöihin. Voit nähdä, että se on yksinkertainen ylemmässä Fritzing-järjestelmässä ...

Sinulla on vain yksi huomio, että tiikerin on vastaanotettava vähintään 10 mikrosekunnin sähköinen pulssi, jotta se aktivoituu kunnolla. Aikaisemmin sinun on varmistettava, että sen arvo on LOW.

Mitä koodi Arduino IDE: lle, sinun ei tarvitse käyttää kirjastoa tai vastaavaa muiden komponenttien kanssa. Tee vain kaava etäisyyden laskemiseksi ja vähän muuta ... Tietenkin, jos haluat projektisi tekevän jotain vastauksena HC-SR04 -anturin mittaukseen, sinun on lisättävä tarvitsemasi koodi. Esimerkiksi sen sijaan, että näytät pelkästään mittoja konsolista, voit saada servomoottorit liikkumaan yhteen tai toiseen suuntaan tiettyjen etäisyyksien päässä esteen välttämiseksi tai moottorin pysähtymisen vuoksi, hälytyksen aktivoitumisen havaitessaan läheisyyden jne. .

 Lisätietoja ohjelmoinnista: Arduino-käsikirja (ilmainen PDF)

Voit esimerkiksi nähdä tämän peruskoodi, jota käytetään pohjana:

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


Kommentti, jätä sinun

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   Jose dijo

    Minusta selitys oli erittäin hyödyllinen ja yksinkertainen.