norr@manorshi.com         +86-519-89185720
1
Centrul de știri

Cum se utilizează senzorul cu ultrasunete cu Arduino?

Vizualizări: 164     Autor: Grace Data publicării: 2021-07-26 Origine: Site

butonul de partajare pe facebook
butonul de partajare pe Twitter
butonul de partajare a liniei
butonul de partajare wechat
butonul de partajare linkedin
butonul de partajare pe pinterest
butonul de partajare whatsapp
butonul de partajare kakao
butonul de partajare prin snapchat
butonul de partajare a telegramelor
partajați acest buton de partajare

Cum se utilizează senzorul cu ultrasunete cu Arduino: Ghid HC-SR04

The Senzorul ultrasonic HC-SR04 este unul dintre cele mai populare module de măsurare a distanței pentru proiectele Arduino. Este utilizat pe scară largă în roboții de evitare a obstacolelor, senzori de parcare, detectarea nivelului, coșurile de gunoi inteligente, contoarele de distanță și alte aplicații de detectare fără contact.

Modulul emite unde ultrasonice de 40 kHz printr-un transmițător. Când unda sonoră întâlnește un obiect, aceasta se reflectă înapoi la receptor. Măsurând timpul de eco și folosind viteza sunetului, Arduino poate calcula distanța dintre senzor și obiect.

Modul senzor ultrasonic HC-SR04 pentru măsurarea distanței Arduino

HC-SR04 Parametrii tehnici principali

Parametru Valoare
Tensiunea de lucru tipică 5V DC
Curent de lucru static Mai puțin de 5mA pe unele versiuni de module
Frecvența de operare Undă ultrasonică de 40 kHz
Distanța de detectare Interval comun: 2 cm până la 400 cm; unele versiuni ajustate în funcție de câștig pot suporta o rază mai lungă.
Unghiul de detectare De obicei, la 15 grade; unele versiuni cu câștig mai mare pot ajunge la aproximativ 30 de grade.
Precizie Până la aproximativ 0,3 cm în condiții de testare adecvate
Zona oarbă Aproximativ 2 cm distanta minima de masurare

HC-SR04 Pin Descriere

Modulul ultrasonic HC-SR04 are patru pini: VCC, TRIG, ECHO și GND. Arduino trimite un impuls scurt de declanșare la pinul TRIG, apoi citește impulsul de întoarcere de la pinul ECHO.

Pin HC-SR04 Conexiune Arduino Funcţie
VCC 5V Alimentare pentru modulul cu ultrasunete.
TRIG Pinul digital 9 Intrarea declanșatorului. Arduino aplică un puls de 10 us pentru a începe să se găsească.
ECOU Pinul digital 10 Ieșire ecou. Arduino citește lățimea impulsului pentru a calcula distanța.
GND GND Conexiune la pământ.

Pinout senzor ultrasonic HC-SR04 VCC TRIG ECHO GND

Principiul de funcționare al senzorului cu ultrasunete HC-SR04

HC-SR04 funcționează prin măsurarea timpului de zbor. Arduino trimite un semnal de declanșare la nivel înalt de cel puțin 10 microsecunde către pinul TRIG. Modulul trimite apoi automat opt ​​impulsuri ultrasonice de 40 kHz și așteaptă ecoul reflectat.

Când este detectat semnalul ultrasonic reflectat, pinul ECHO emite un impuls de nivel înalt. Durata acestui impuls este timpul de călătorie dus-întors a undei ultrasonice.

Distanță = Timp la nivel înalt ecou × Viteza sunetului / 2

În codul Arduino, formula simplificată comună este:

Distanța în cm = durata × 0,0343 / 2

Principiul de funcționare al modulului ultrasonic HC-SR04 timpul zborului

Diagrama de sincronizare a modulului cu ultrasunete HC-SR04

Procesul de sincronizare este simplu: Arduino menține TRIG-ul scăzut pentru scurt timp, trimite un impuls ridicat de 10 us, apoi readuce TRIG-ul la nivel scăzut. HC-SR04 trimite o explozie ultrasonică și setează ECHO la un nivel ridicat până când semnalul reflectat revine sau măsurarea expiră.

Pentru a evita citirile instabile, lăsați o scurtă întârziere între măsurători. Un ciclu de măsurare de aproximativ 60 ms este folosit în mod obișnuit, astfel încât ecoul ultrasonic anterior are timp să dispară înainte de următorul declanșare.

Bazele programării Arduino: funcția pulseIn

Funcția Arduino pulseIn() este utilizată pentru a măsura cât de mult timp un pin digital rămâne HIGH sau LOW. Pentru HC-SR04, Arduino folosește pulseIn(echoPin, HIGH) pentru a citi lățimea impulsului de nivel înalt de la pinul ECHO.

Sintaxă Sens
pulseIn(pin, valoare) Citește durata unui impuls HIGH sau LOW.
pulseIn(pin, valoare, timeout) Citește pulsul cu o valoare de timeout în microsecunde.

Se recomandă utilizarea unui timeout. Dacă nu este returnat niciun ecou, ​​funcția poate opri așteptarea și poate returna 0 în loc să blocheze programul pentru prea mult timp.

Placă Arduino utilizată cu senzorul de distanță ultrasonic HC-SR04

Cum se conectează senzorul cu ultrasunete HC-SR04 la Arduino

Cablajul este simplu. Conectați VCC la 5V, GND la GND, TRIG la un pin de ieșire digitală Arduino și ECHO la un pin de intrare digitală Arduino. Următorul exemplu folosește Arduino Uno, TRIG pe pinul 9 și ECHO pe pinul 10.

Schema de cablare a plăcii Arduino Uno pentru senzorul ultrasonic HC-SR04

Senzor cu ultrasunete HC-SR04 Cod Arduino

Următorul program tipic Arduino trimite un impuls de declanșare de 10 us, citește lățimea impulsului ECHO, calculează distanța în centimetri și tipărește rezultatul în monitorul serial.

const int trigPin = 9; const int echoPin = 10; durată lungă; distanță de plutireCm; void setup() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } void loop() { digitalWrite(trigPin, LOW);   delayMicrosecunde(2);   digitalWrite(trigPin, HIGH);   delayMicrosecunde(10);   digitalWrite(trigPin, LOW);   durata = pulseIn(echoPin, HIGH, 30000);   if (durata == 0) { Serial.println('În afara intervalului');   } else { distantaCm = durata * 0,0343 / 2;     Serial.print('Distanța: ');     Serial.print(distantaCm);     Serial.println(' cm');   } întârziere(60); }

Dacă vedeți valori de distanță în monitorul serial, senzorul ultrasonic HC-SR04 și cablajul Arduino funcționează corect. Puteți utiliza apoi datele de distanță pentru detectarea obstacolelor, controlul mișcării robotului, uși automate, mementouri de parcare sau proiecte de nivel de lichid.

Program de măsurare a senzorului ultrasonic Arduino HC-SR04

Cum să îmbunătățiți acuratețea măsurătorilor HC-SR04

  • Păstrați obiectul măsurat în intervalul de distanță recomandat și în afara zonei oarbe de 2 cm.

  • Utilizați o suprafață țintă plană și solidă pentru o mai bună reflexie ultrasonică.

  • Evitați măsurarea materialelor moi, înclinate, poroase sau fonoabsorbante.

  • Utilizați o sursă de alimentare stabilă de 5 V și mențineți cablajul scurt și sigur.

  • Adăugați un timeout la pulseIn() pentru a preveni blocarea îndelungată atunci când nu se întoarce niciun ecou.

  • Mediu sau median-filtru mai multe citiri pentru a reduce zgomotul.

  • Pentru o precizie mai mare, compensați temperatura deoarece viteza sunetului se modifică odată cu temperatura aerului.

Aplicații comune ale proiectelor cu senzori cu ultrasunete Arduino

Aplicație Cum se utilizează HC-SR04
Robot de evitare a obstacolelor Detectează obiectele din apropiere și ajută robotul să schimbe direcția.
Senzor de parcare Măsoară distanța dintre vehicul și un obstacol.
Detectarea nivelului lichidului Măsoară distanța de la senzor la suprafața lichidului fără contact.
Coș de gunoi inteligent Detectează o mână sau un obiect din apropiere și declanșează deschiderea automată a capacului.

Rezumat

Pentru a utiliza un senzor ultrasonic HC-SR04 cu Arduino, conectați VCC la 5V, GND la GND, TRIG la un pin de ieșire digitală și ECHO la un pin de intrare digitală. Trimiteți un impuls de declanșare de 10 us, citiți durata ecoului cu pulseIn() și calculați distanța cu formula timpului de zbor.

HC-SR04 este ieftin, ușor de utilizat și potrivit pentru multe proiecte de măsurare a distanței Arduino. Pentru cele mai bune rezultate, acordați atenție suprafeței țintă, unghiului de măsurare, zonei oarbe, puterii stabile, manevrării timpului de expirare și efectelor temperaturii.

Întrebări frecvente despre senzorul cu ultrasunete Arduino HC-SR04

Cum funcționează senzorul cu ultrasunete HC-SR04 cu Arduino?

Arduino trimite un impuls de 10us la pinul TRIG. HC-SR04 emite opt impulsuri ultrasonice de 40 kHz și setează pinul ECHO la un nivel ridicat până când sunetul reflectat revine. Arduino măsoară acest timp de puls și calculează distanța.

Care este formula distanței pentru proiectele HC-SR04 Arduino?

Formula este distanța = durata × viteza sunetului / 2. În centimetri, o formulă comună Arduino este distanțaCm = durata × 0,0343 / 2, unde durata este măsurată în microsecunde.

De ce împărțim rezultatul senzorului ultrasonic la 2?

Timpul de eco măsurat este timpul dus-întors de la senzor la obiect și înapoi la senzor. Împărțirea cu 2 oferă distanța unidirecțională dintre senzor și obiect.

Ce pini Arduino ar trebui să folosesc pentru TRIG și ECHO?

Puteți folosi majoritatea pinilor digitali Arduino. În multe exemple, TRIG este conectat la pinul digital 9 și ECHO este conectat la pinul digital 10. Codul trebuie să se potrivească cu pinii utilizați în cablarea dvs.

De ce senzorul meu cu ultrasunete HC-SR04 returnează valori zero sau aleatorii?

Cauzele obișnuite includ cablare slăbită, alimentare instabilă de 5 V, numere greșite ale PIN-ului TRIG sau ECHO, niciun obiect în rază, suprafețe țintă înclinate, materiale moi, capete de senzori blocate sau lipsa unui timeout în funcția pulseIn().

Care este zona oarbă a senzorului ultrasonic HC-SR04?

Zona oarbă este distanța minimă în care modulul nu poate măsura în mod fiabil. Pentru HC-SR04, zona oarbă este de obicei de aproximativ 2 cm. Obiectele mai aproape de aceasta pot produce citiri instabile.

Poate HC-SR04 să măsoare nivelul apei cu Arduino?

Da, HC-SR04 poate fi folosit pentru proiecte simple de nivel al apei, fără contact, dacă senzorul este protejat de umiditate și montat deasupra suprafeței lichidului. Pentru rezervoarele umede, exterioare sau industriale, se recomandă un senzor ultrasonic rezistent la apă.

Cum pot face citirile senzorului cu ultrasunete Arduino mai stabile?

Folosiți o sursă de alimentare stabilă, mențineți senzorul perpendicular pe țintă, evitați suprafețele moi sau înclinate, adăugați pulseIn timeout, luați mai multe citiri, utilizați filtrarea mediană și lăsați aproximativ 60 ms între măsurători.

Cuprins