Vaatamised: 164 Autor: Grace Avaldamisaeg: 2021-07-26 Päritolu: Sait
The HC-SR04 ultraheliandur on Arduino projektide jaoks üks populaarsemaid kaugusmõõtmismooduleid. Seda kasutatakse laialdaselt takistuste vältimise robotites, parkimisandurites, tasemetuvastuses, nutikates prügikastides, kaugusmõõturites ja muudes kontaktivabades rakendustes.
Moodul kiirgab läbi saatja 40kHz ultrahelilaineid. Kui helilaine kohtub objektiga, peegeldub see vastuvõtjasse tagasi. Mõõtes kaja aega ja kasutades heli kiirust, saab Arduino välja arvutada anduri ja objekti vahelise kauguse.
| Parameeter | Väärtus |
| Tüüpiline tööpinge | 5V DC |
| Staatiline töövool | Mõne mooduli versiooni puhul alla 5 mA |
| Töösagedus | 40 kHz ultraheli laine |
| Tuvastamiskaugus | Üldine vahemik: 2cm kuni 400cm; mõned võimendusega reguleeritud versioonid võivad toetada pikemat ulatust. |
| Tuvastamisnurk | Tavaliselt 15 kraadi piires; mõned suurema võimendusega versioonid võivad ulatuda umbes 30 kraadini. |
| Täpsus | Sobivates katsetingimustes kuni umbes 0,3 cm |
| Pime tsoon | Minimaalne mõõtmiskaugus umbes 2 cm |
Ultrahelimoodulil HC-SR04 on neli kontakti: VCC, TRIG, ECHO ja GND. Arduino saadab TRIG viigule lühikese päästikuimpulsi, seejärel loeb ECHO viigu tagasi impulsi.
| HC-SR04 pin | Arduino ühendus | Funktsioon |
| VCC | 5V | Ultrahelimooduli toiteallikas. |
| TRIG | Digitaalne pin 9 | Päästiku sisend. Arduino rakendab kauguse mõõtmise alustamiseks 10 us impulssi. |
| ECHO | Digitaalne tihvt 10 | Kaja väljund. Arduino loeb kauguse arvutamiseks impulsi laiust. |
| GND | GND | Maaühendus. |
HC-SR04 töötab lennuaja mõõtmise teel. Arduino saadab TRIG-viigule vähemalt 10 mikrosekundilise kõrgetasemelise päästikusignaali. Seejärel saadab moodul automaatselt kaheksa 40 kHz ultraheliimpulssi ja ootab peegeldunud kaja.
Kui tuvastatakse peegeldunud ultraheli signaal, väljastab ECHO viik kõrgetasemelise impulsi. Selle impulsi kestus on ultrahelilaine edasi-tagasi liikumisaeg.
Kaugus = kaja kõrge taseme aeg × heli kiirus / 2
Arduino koodis on tavaline lihtsustatud valem:
Kaugus cm = kestus × 0,0343 / 2
Ajastusprotsess on lihtne: Arduino hoiab TRIG-i korraks madalal, saadab 10 us kõrge impulsi, seejärel tagastab TRIG madalale. HC-SR04 saadab ultraheli sari ja seab ECHO kõrgeks, kuni peegeldunud signaal taastub või mõõtmine aegub.
Ebastabiilsete näitude vältimiseks jätke mõõtmiste vahele lühike viivitus. Tavaliselt kasutatakse umbes 60 ms pikkust mõõtmistsüklit, nii et eelmisel ultraheli kajal on aega enne järgmist päästikut kaduda.
Funktsiooni Arduino pulseIn() kasutatakse selleks, et mõõta, kui kaua digitaalne kontakt HIGH või LOW püsib. HC-SR04 puhul kasutab Arduino pulseIn(echoPin, HIGH), et lugeda kõrgetasemelist impulsi laiust ECHO kontaktilt.
| Süntaks | Tähendus |
| pulseIn(pin, väärtus) | Loeb HIGH või LOW impulsi kestust. |
| pulseIn(pin, väärtus, ajalõpp) | Loeb impulsi ajalõpu väärtusega mikrosekundites. |
Soovitatav on kasutada ajalõpu. Kui kaja ei tagastata, võib funktsioon lõpetada ootamise ja tagastada 0, selle asemel et programm liiga kauaks blokeerida.
Juhtmed on sirgjoonelised. Ühendage VCC 5 V, GND GND-ga, TRIG Arduino digitaalse väljundviikuga ja ECHO Arduino digitaalsisendi viiguga. Järgmises näites kasutatakse Arduino Uno, TRIG viigul 9 ja ECHO viigul 10.
Järgmine tüüpiline Arduino programm saadab 10 us trigerimpulsi, loeb ECHO impulsi laiust, arvutab kauguse sentimeetrites ja prindib tulemuse jadamonitorisse.
const int trigPin = 9; const int echoPin = 10; pikk kestus; ujukikaugusCm; void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW); viivitusMikrosekundid(2); digitalWrite(trigPin, HIGH); viivitusMikrosekundid(10); digitalWrite(trigPin, LOW); kestus = pulseIn(echoPin, HIGH, 30000); if (kestus == 0) { Serial.println('Väljaspool vahemikku'); } else { kaugusCm = kestus * 0,0343 / 2; Serial.print('Kaugus: '); Serial.print(distanceCm); Serial.println(' cm'); } viivitus(60); }
Kui näete jadamonitoril kauguse väärtusi, töötavad ultraheliandur HC-SR04 ja Arduino juhtmestik õigesti. Seejärel saate kasutada vahemaa andmeid takistuste tuvastamiseks, roboti liikumise juhtimiseks, automaatsete uste, parkimise meeldetuletuste või vedeliku taseme projektide jaoks.
Hoidke mõõdetud objekt soovitatud kauguse vahemikus ja väljaspool 2 cm pimetsooni.
Ultraheli paremaks peegelduseks kasutage tasast ja kindlat sihtpinda.
Vältige pehmete, nurga all olevate, poorsete või heli neelavate materjalide mõõtmist.
Kasutage stabiilset 5 V toiteallikat ja hoidke juhtmestik lühike ja turvaline.
Lisage funktsioonile pulseIn() ajalõpp, et vältida pikka blokeerimist, kui kaja ei taastu.
Müra vähendamiseks keskmistage või filtreerige mitu näitu.
Suurema täpsuse saavutamiseks kompenseerige temperatuuri, kuna helikiirus muutub õhutemperatuuriga.
| Rakendus | Kuidas HC-SR04 kasutatakse |
| Takistusi vältiv robot | Tuvastab läheduses olevaid objekte ja aitab robotil suunda muuta. |
| Parkimiskauguse andur | Mõõdab kaugust sõiduki ja takistuse vahel. |
| Vedeliku taseme tuvastamine | Mõõdab kaugust andurist vedeliku pinnani ilma kontaktita. |
| Nutikas prügikast | Tuvastab läheduses oleva käe või eseme ja käivitab automaatse kaane avamise. |
Ultrahelianduri HC-SR04 kasutamiseks koos Arduinoga ühendage VCC 5 V, GND GND, TRIG digitaalväljundi kontaktiga ja ECHO digitaalsisendi viiguga. Saatke 10 us päästikuimpulss, lugege pulseIn() abil kaja kestust ja arvutage kaugus lennuaja valemiga.
HC-SR04 on odav, hõlpsasti kasutatav ja sobib paljudele Arduino kaugusmõõtmisprojektidele. Parimate tulemuste saavutamiseks pöörake tähelepanu sihtpinnale, mõõtmisnurgale, pimealale, stabiilsele võimsusele, ajalõpu käitlemisele ja temperatuuriefektidele.
Arduino saadab TRIG viigule 10 us impulsi. HC-SR04 kiirgab kaheksa 40 kHz ultraheliimpulssi ja seab ECHO viigu kõrgele, kuni peegeldunud heli taastub. Arduino mõõdab seda impulsi aega ja arvutab kauguse.
Valem on kaugus = kestus × heli kiirus / 2. Sentimeetrites on levinud Arduino valem kaugusCm = kestus × 0,0343 / 2, kus kestust mõõdetakse mikrosekundites.
Mõõdetud kajaaeg on edasi-tagasi aeg andurist objektini ja tagasi andurini. 2-ga jagamine annab anduri ja objekti vahelise ühesuunalise kauguse.
Saate kasutada enamikku Arduino digitaalseid tihvte. Paljudes näidetes on TRIG ühendatud digitaalse viiguga 9 ja ECHO on ühendatud digitaalse viiguga 10. Kood peab ühtima teie juhtmestikus kasutatud kontaktidega.
Tavalisteks põhjusteks on lahtised juhtmestikud, ebastabiilne 5 V toide, valed TRIG- või ECHO-viigunumbrid, objektide puudumine levialas, nurga all olevad sihtpinnad, pehmed materjalid, blokeeritud anduripead või funktsiooni pulseIn() ajalõpu puudumine.
Pime tsoon on minimaalne vahemaa, mida moodul ei saa usaldusväärselt mõõta. HC-SR04 puhul on pimeala tavaliselt umbes 2 cm. Sellest lähemal olevad objektid võivad anda ebastabiilsed näidud.
Jah, HC-SR04 saab kasutada lihtsate kontaktivaba veetaseme projektide jaoks, kui andur on niiskuse eest kaitstud ja paigaldatud vedeliku pinnast kõrgemale. Niiskete, välistingimustes kasutatavate või tööstuslike paakide jaoks on soovitatav kasutada veekindlat ultraheliandurit.
Kasutage stabiilset toiteallikat, hoidke andurit sihtmärgiga risti, vältige pehmeid või nurga all olevaid pindu, lisage pulseIn timeout, võtke mitu näitu, kasutage mediaanfiltreerimist ja jätke mõõtmiste vahele umbes 60 ms.