Telemetru cu ultrasunete program hc sr04. Telemetru cu ultrasunete HC-SR04. Sarcina de auto-execuție

vei avea nevoie

  • Arduino;
  • senzor ultrasonic HC-SR04;
  • fire de conectare.

1 Principiul de funcționare telemetru cu ultrasunete HC-SR04

Funcționarea telemetrului cu ultrasunete HC-SR04 se bazează pe principiul ecolocației. Emite impulsuri sonore în spațiu și primește un semnal reflectat de la un obstacol. Distanța până la obiect este determinată de timpul de propagare a undei sonore la obstacol și înapoi.

Figura 7: Modul de intersecție. Lipsa unui servomotor îngreunează virajul. În plus, se evită virajele la 180° ale mașinii deoarece nu se pot face într-o singură etapă, necesitând, ca în viata reala, Mai mult miscarile. Prin urmare, vom face întotdeauna doar viraje la 90°. În figura 7, o mașină intră într-o intersecție și încearcă să vire la stânga. Semnalele ultrasonice generate de senzorii de pe mașină se vor propaga în funcție de reprezentare. Până când senzorul din dreapta ajunge perpendicular pe peretele frontal, valorile primite de la acesta și senzorul frontal vor detecta distanțe mai mari decât atunci când am terminat virajul.

Lansarea unei unde sonore începe cu aplicarea unui puls pozitiv care durează cel puțin 10 microsecunde la picior TRIG telemetru. De îndată ce pulsul se termină, telemetrul emite un pachet de impulsuri sonore cu o frecvență de 40 kHz în spațiul din fața lui. În același timp, pe picior ECOU telemetrul apare ca o unitate logică. De îndată ce senzorul detectează semnalul reflectat, la pinul ECHO apare un zero logic. Durata unității logice pe piciorul ECHO („Echo Delay” în figură) determină distanța până la obstacol.

Dacă se execută cu viteză mică și rămâne staționar, putem presupune că virajul este complet când atingem valoarea minimă pentru fiecare dintre cele două fascicule. În cele din urmă, ultimul lucru rămas este ce comportament ar trebui să aibă mașina când vine vorba de o oprire. Nu ne mai putem întoarce, așa că vom face o lovitură și ne vom întoarce până ajungem la intersecția unde am fost.

Interfața este cât se poate de ușor de utilizat și de extinsă. Robotul încorporat poate naviga într-un labirint simplu folosind o serie de algoritmi pentru a menține o cale, a se întoarce și a-și găsi calea de ieșire din labirint. Crearea unui labirint în care două sau mai multe intersecții sunt foarte apropiate sau ale căror pereți nu sunt complet drepti poate duce la o serie de probleme, făcând imposibilă explorarea întregului labirint sau schimbarea direcției de mers fără a lovi obstacole. Această limitare se datorează faptului că folosim doar trei senzori ultrasonici la distanță pentru a interacționa cu mediul extern.

Intervalul de măsurare a distanței al telemetrului HC-SR04 este de până la 4 metri cu o rezoluție de 0,3 cm. Unghiul de vizualizare este de 30°, unghiul efectiv de 15°. Consumul de curent în modul standby este de 2 mA, în timpul funcționării - 15 mA.

2 Schema de conectare senzor de distanta

Telemetrul cu ultrasunete este alimentat de o tensiune de +5 V. Ceilalți doi pini sunt conectați la orice porturi digitale Arduino pe care le vom conecta la 11 și 12.

Un giroscop ar fi foarte util în stabilirea și menținerea traiectoriei, dar ar afecta costul total al proiectului.





Deci, este o interfață foarte simplă pentru a controla controlerul. Dacă găsiți un obiect în față, pinul de eco va fi la un nivel ridicat și, în funcție de distanța diferită, va dura o durată diferită. nivel înalt.

Astfel putem calcula cu ușurință distanța. În cele din urmă, uită-te la partea din spate a modulului. Toate cipurile din modul au fost întărite, poate că autorul dorește să prevină crearea de plagiat. Nu este o sarcină dificilă de spart, dar este la un preț atât de mic, chiar mai ieftin decât copia ta.





3 Obținerea distanței până la un obiect de la senzorul HC-SR04

Acum să scriem o schiță care determină distanța până la obstacol și o trimite la portul serial. Mai întâi, setăm numerele pinii TRIG și ECHO - aceștia sunt pinii 12 și 11. Apoi declarăm declanșatorul ca ieșire și ecoul ca intrare. Inițializați portul serial la 9600 baud. Fiecare repetare a ciclului buclă() Citim distanța și o trimitem în port.

Tensiune de funcționare: 5V Curent static: mai puțin de 2mA. Semnal de ieșire: semnal de frecvență electrică, nivel înalt 5V, nivel scăzut 0V. Unghiul senzorului: nu mai mult de 15 grade. Modul de alimentare cu o tensiune de 5V, ieșirea va fi de 5V în timp ce obstacolul se află în rază, sau 0V dacă nu. Pinul de ieșire al acestui modul este folosit ca ieșire de comutare atunci când modul antifurt și fără pin atunci când modulele de gamă. Notă: Modulul trebuie introdus în circuit înainte de a porni alimentarea pentru a evita un nivel ridicat. lucrare incorectă și, dacă nu, atunci alimentarea din nou.

Const int trigPin = 12; const int echoPin = 11; void setup() ( pinMode(trigPin, OUTPUT); // trigger - pin de ieșire pinMode(echoPin, INPUT); // echo - intrare Serial.begin(9600); // inițializarea secvenței port } void loop() ( distanta lunga = getDistance(); // obține distanța de la senzor Serial.println(distanță); // ieșire la portul serial delay(100); } // Determinarea distanței până la obiect în cm lung getDistance() ( long distacne_cm = getEchoTiming() * 1,7 * 0,01; } return distacne_cm; // Determinați timpul de întârziere lung getEchoTiming() ( }

digitalWrite(trigPin, LOW);

delayMicrosecunde(2);

digitalWrite(trigPin, HIGH); // generează un impuls de declanșare delayMicroseconds(10); digitalWrite(trigPin, LOW);// determinarea duratei nivelului HIGH pe pinul echoPin, µsec: long duration = pulseIn(echoPin, HIGH);

durata returului; Conectarea bibliotecii iarduino_HC_SR04_int Modulul trimite automat opt ​​unde de cuadratura de 40 kHz și determină automat dacă să le primească. semnal puls de întoarcere. Dacă există semnale care revin, ieșirea unui nivel înalt și timpul de nivel înalt continuă. timpul de la transmisia cu ultrasunete până la recepție.

durata returului; Când comandați un site web, veți primi un e-mail de confirmare. Odată ce comanda dvs. a fost expediată, veți fi trimis e-mail informații de urmărire pentru a vă expedia comanda. Puteți selecta metoda de livrare preferată pe pagina Informații despre comandă în timpul procesului de finalizare a comenzii. Site-ul oferă patru metode diferite de expediere internațională.). Pentru a obține timp informații de urmărire pentru a vă expedia comanda. Puteți selecta metoda de livrare preferată pe pagina Informații despre comandă în timpul procesului de finalizare a comenzii. Site-ul oferă patru metode diferite de expediere internațională.în secunde, trebuie să-l împărțiți la 1.000.000 Deoarece sunetul parcurge de două ori distanța - până la obiect și înapoi - trebuie să împărțiți rezultatul la jumătate. Deci, se dovedește că distanța până la obiect S = 34000 cm/sec × durata / 1.000.000 sec / 2 = 1,7 cm/sec / 100, ceea ce am scris în schiță.

Livrarea din depozitul dvs. local este mult mai rapidă. În plus, timpii de tranzit variază în funcție de locul în care vă aflați și de unde se află coletul. Dacă doriți să aflați mai multe informații, vă rugăm să contactați serviciul pentru clienți. Vă vom rezolva problema cât mai curând posibil.

Dacă deteriorarea este legată de ecran, această situație nu va fi considerată inclusă în domeniul de aplicare a acestei garanții. Dacă doriți să reparați acest produs, vă rugăm să-l returnați și îl vom trimite la centrele noastre de reparații. În acest caz, veți fi responsabil pentru plata taxelor de retur și a taxelor de reparație. Dacă sunt suportate costuri suplimentare în timpul procesului de returnare sau reparare, veți fi, de asemenea, responsabil pentru asta.

Prin urmare, microcontrolerul efectuează operația de înmulțire mai rapid decât operația de împărțire :100 L-am inlocuit cu unul echivalent ×0,01.

4 Biblioteca pentru munca cu ecolocator HC-SR04

De asemenea, multe biblioteci au fost scrise pentru a lucra cu telemetru cu ultrasunete. De exemplu, această bibliotecă cu ultrasunete. Biblioteca este instalată standard: descărcați, dezarhivați într-un director /biblioteci/, care se află în folderul cu Arduino IDE. După aceasta, biblioteca poate fi folosită.

Exemplu de lucru suplimentar

Vă vom trimite o factură cu toate taxele pe care trebuie să le plătim înainte de a vi le expedia. Toate cererile de garanție vor fi respinse după 180 de zile de la data expedierii. Dacă produsul ajunge stricat, vă rugăm să ne contactați în termen de 3 zile de la data la care l-ați primit și apoi să urmați garanția produsului de 3 zile.

Dacă nu sunteți mulțumit de achiziția dvs., îl puteți returna în termen de 3 zile de la livrare pentru a primi o rambursare a achiziției mai puțin taxele de transport sau de schimb. Vi se va cere să plătiți costurile de transport în ambele sensuri, cu excepția cazului în care motivul se datorează erorii noastre. Vă rugăm să vă asigurați că articolul este returnat cu ambalajul original și în aceleași condiții în care l-ați primit.

După ce ați instalat biblioteca, să scriem o nouă schiță.

#include // conectați biblioteca Ultrasonic ultrasonic(12, 11); // Trig - 12, Echo - 11 void setup() ( Serial.begin(9600); // inițializarea secvenței port } void loop() ( float dist_cm = ultrasonic.Ranging(CM); // distanta in cm Serial.println(dist_cm); // scoateți distanța până la portul delay(100); }

Rezultatul funcționării sale este același - monitorul portului serial afișează distanța până la obiect în centimetri.

Dacă scrii într-o schiță float dist_cm = ultrasonic.Ranging(INC);- distanța va fi afișată în inci.

5 Concluzii din lucrare cu sonar HC-SR04

Deci, v-am conectat la Arduino telemetru cu ultrasunete HC-SR04 și a primit date de la acesta în două în moduri diferite: cu și fără utilizarea unei biblioteci speciale.

Avantajul utilizării bibliotecii este că cantitatea de cod este redusă semnificativ și lizibilitatea programului este îmbunătățită, nu trebuie să vă aprofundați în complexitățile dispozitivului și îl puteți utiliza imediat. Dar aici se află un dezavantaj: înțelegeți mai rău modul în care funcționează dispozitivul și ce procese au loc în el. În orice caz, ce metodă să folosești depinde de tine.

vei avea nevoie

  • Arduino;
  • senzor ultrasonic HC-SR04;
  • fire de conectare.

1 Principiul de funcționare telemetru cu ultrasunete HC-SR04

Funcționarea telemetrului cu ultrasunete HC-SR04 se bazează pe principiul ecolocației. Emite impulsuri sonore în spațiu și primește un semnal reflectat de la un obstacol. Distanța până la obiect este determinată de timpul de propagare a undei sonore la obstacol și înapoi.

Figura 7: Modul de intersecție. Lipsa unui servomotor îngreunează virajul. În plus, se evită întoarcerile la 180° ale mașinii deoarece nu se pot face într-un singur pas, necesitând, ca în viața reală, mai multe mișcări. Prin urmare, vom face întotdeauna doar viraje la 90°. În figura 7, o mașină intră într-o intersecție și încearcă să vire la stânga. Semnalele ultrasonice generate de senzorii de pe mașină se vor propaga în funcție de reprezentare. Până când senzorul din dreapta ajunge perpendicular pe peretele frontal, valorile primite de la acesta și senzorul frontal vor detecta distanțe mai mari decât atunci când am terminat virajul.

Lansarea unei unde sonore începe cu aplicarea unui puls pozitiv care durează cel puțin 10 microsecunde la picior TRIG telemetru. De îndată ce pulsul se termină, telemetrul emite un pachet de impulsuri sonore cu o frecvență de 40 kHz în spațiul din fața lui. În același timp, pe picior ECOU telemetrul apare ca o unitate logică. De îndată ce senzorul detectează semnalul reflectat, la pinul ECHO apare un zero logic. Durata unității logice pe piciorul ECHO („Echo Delay” în figură) determină distanța până la obstacol.

Dacă se execută cu viteză mică și rămâne staționar, putem presupune că virajul este complet când atingem valoarea minimă pentru fiecare dintre cele două fascicule. În cele din urmă, ultimul lucru rămas este ce comportament ar trebui să aibă mașina când vine vorba de o oprire. Nu ne mai putem întoarce, așa că vom face o lovitură și ne vom întoarce până ajungem la intersecția unde am fost.

Interfața este cât se poate de ușor de utilizat și de extinsă. Robotul încorporat poate naviga într-un labirint simplu folosind o serie de algoritmi pentru a menține o cale, a se întoarce și a-și găsi calea de ieșire din labirint. Crearea unui labirint în care două sau mai multe intersecții sunt foarte apropiate sau ale căror pereți nu sunt complet drepti poate duce la o serie de probleme, făcând imposibilă explorarea întregului labirint sau schimbarea direcției de mers fără a lovi obstacole. Această limitare se datorează faptului că folosim doar trei senzori ultrasonici la distanță pentru a interacționa cu mediul extern.

Intervalul de măsurare a distanței al telemetrului HC-SR04 este de până la 4 metri cu o rezoluție de 0,3 cm. Unghiul de vizualizare este de 30°, unghiul efectiv de 15°. Consumul de curent în modul standby este de 2 mA, în timpul funcționării - 15 mA.

2 Schema de conectare senzor de distanta

Telemetrul cu ultrasunete este alimentat de o tensiune de +5 V. Ceilalți doi pini sunt conectați la orice porturi digitale Arduino pe care le vom conecta la 11 și 12.

Un giroscop ar fi foarte util în stabilirea și menținerea traiectoriei, dar ar afecta costul total al proiectului.





Deci, este o interfață foarte simplă pentru a controla controlerul. Dacă găsiți un obiect în față, pinul ecou va fi la un nivel înalt, iar pe baza diferitelor distanțe va dura o durată diferită a nivelului înalt.

Astfel putem calcula cu ușurință distanța. În cele din urmă, uită-te la partea din spate a modulului. Toate cipurile din modul au fost întărite, poate că autorul dorește să prevină crearea de plagiat. Nu este o sarcină dificilă de spart, dar este la un preț atât de mic, chiar mai ieftin decât copia ta.





3 Obținerea distanței până la un obiect de la senzorul HC-SR04

Acum să scriem o schiță care determină distanța până la obstacol și o trimite la portul serial. Mai întâi, setăm numerele pinii TRIG și ECHO - aceștia sunt pinii 12 și 11. Apoi declarăm declanșatorul ca ieșire și ecoul ca intrare. Inițializați portul serial la 9600 baud. Fiecare repetare a ciclului buclă() Citim distanța și o trimitem în port.

Tensiune de funcționare: 5V Curent static: mai puțin de 2mA. Semnal de ieșire: semnal de frecvență electrică, nivel înalt 5V, nivel scăzut 0V. Unghiul senzorului: nu mai mult de 15 grade. Modul de alimentare cu o tensiune de 5V, ieșirea va fi de 5V în timp ce obstacolul se află în rază, sau 0V dacă nu. Pinul de ieșire al acestui modul este folosit ca ieșire de comutare atunci când modul antifurt și fără pin atunci când modulele de gamă. Notă: Modulul trebuie introdus în circuit înainte de a porni alimentarea pentru a evita un nivel ridicat. lucrare incorectă și, dacă nu, atunci alimentarea din nou.

Const int trigPin = 12; const int echoPin = 11; void setup() ( pinMode(trigPin, OUTPUT); // trigger - pin de ieșire pinMode(echoPin, INPUT); // echo - intrare Serial.begin(9600); // inițializarea secvenței port } void loop() ( distanta lunga = getDistance(); // obține distanța de la senzor Serial.println(distanță); // ieșire la portul serial delay(100); } // Determinarea distanței până la obiect în cm lung getDistance() ( long distacne_cm = getEchoTiming() * 1,7 * 0,01; } return distacne_cm; // Determinați timpul de întârziere lung getEchoTiming() ( }

digitalWrite(trigPin, LOW);

delayMicrosecunde(2);

Când comandați un site web, veți primi un e-mail de confirmare. Odată ce comanda dvs. a fost expediată, vi se vor trimite prin e-mail informații de urmărire pentru a vă expedia comanda. Puteți selecta metoda de livrare preferată pe pagina Informații despre comandă în timpul procesului de finalizare a comenzii. Site-ul oferă patru metode diferite de expediere internațională.

durata returului; Conectarea bibliotecii iarduino_HC_SR04_int Modulul trimite automat opt ​​unde de cuadratura de 40 kHz și determină automat dacă să le primească. semnal puls de întoarcere. Dacă există semnale care revin, ieșirea unui nivel înalt și timpul de nivel înalt continuă. timpul de la transmisia cu ultrasunete până la recepție.

durata returului; Când comandați un site web, veți primi un e-mail de confirmare. Odată ce comanda dvs. a fost expediată, veți fi trimis e-mail informații de urmărire pentru a vă expedia comanda. Puteți selecta metoda de livrare preferată pe pagina Informații despre comandă în timpul procesului de finalizare a comenzii. Site-ul oferă patru metode diferite de expediere internațională.). Pentru a obține timp informații de urmărire pentru a vă expedia comanda. Puteți selecta metoda de livrare preferată pe pagina Informații despre comandă în timpul procesului de finalizare a comenzii. Site-ul oferă patru metode diferite de expediere internațională.în secunde, trebuie să-l împărțiți la 1.000.000 Deoarece sunetul parcurge de două ori distanța - până la obiect și înapoi - trebuie să împărțiți rezultatul la jumătate. Deci, se dovedește că distanța până la obiect S = 34000 cm/sec × durata / 1.000.000 sec / 2 = 1,7 cm/sec / 100, ceea ce am scris în schiță.

Livrarea din depozitul dvs. local este mult mai rapidă. În plus, timpii de tranzit variază în funcție de locul în care vă aflați și de unde se află coletul. Dacă doriți să aflați mai multe informații, vă rugăm să contactați serviciul pentru clienți. Vă vom rezolva problema cât mai curând posibil.

Dacă deteriorarea este legată de ecran, această situație nu va fi considerată inclusă în domeniul de aplicare a acestei garanții. Dacă doriți să reparați acest produs, vă rugăm să-l returnați și îl vom trimite la centrele noastre de reparații. În acest caz, veți fi responsabil pentru plata taxelor de retur și a taxelor de reparație. Dacă sunt suportate costuri suplimentare în timpul procesului de returnare sau reparare, veți fi, de asemenea, responsabil pentru asta.

Prin urmare, microcontrolerul efectuează operația de înmulțire mai rapid decât operația de împărțire :100 L-am inlocuit cu unul echivalent ×0,01.

4 Biblioteca pentru munca cu ecolocator HC-SR04

De asemenea, multe biblioteci au fost scrise pentru a lucra cu telemetru cu ultrasunete. De exemplu, această bibliotecă cu ultrasunete. Biblioteca este instalată standard: descărcați, dezarhivați într-un director /biblioteci/, care se află în folderul Arduino IDE. După aceasta, biblioteca poate fi folosită.

Exemplu de lucru suplimentar

Vă vom trimite o factură cu toate taxele pe care trebuie să le plătim înainte de a vi le expedia. Toate cererile de garanție vor fi respinse după 180 de zile de la data expedierii. Dacă produsul ajunge stricat, vă rugăm să ne contactați în termen de 3 zile de la data la care l-ați primit și apoi să urmați garanția produsului de 3 zile.

Dacă nu sunteți mulțumit de achiziția dvs., îl puteți returna în termen de 3 zile de la livrare pentru a primi o rambursare a achiziției mai puțin taxele de transport sau de schimb. Vi se va cere să plătiți costurile de transport în ambele sensuri, cu excepția cazului în care motivul se datorează erorii noastre. Vă rugăm să vă asigurați că articolul este returnat cu ambalajul original și în aceleași condiții în care l-ați primit.

După ce ați instalat biblioteca, să scriem o nouă schiță.

#include // conectați biblioteca Ultrasonic ultrasonic(12, 11); // Trig - 12, Echo - 11 void setup() ( Serial.begin(9600); // inițializarea secvenței port } void loop() ( float dist_cm = ultrasonic.Ranging(CM); // distanta in cm Serial.println(dist_cm); // scoateți distanța până la portul delay(100); }

Rezultatul funcționării sale este același - monitorul portului serial afișează distanța până la obiect în centimetri.

Dacă scrii într-o schiță float dist_cm = ultrasonic.Ranging(INC);- distanța va fi afișată în inci.

5 Concluzii din lucrare cu sonar HC-SR04

Deci, am conectat telemetrul cu ultrasunete HC-SR04 la Arduino și am primit date de la acesta în două moduri diferite: folosind o bibliotecă specială și fără.

Avantajul utilizării bibliotecii este că cantitatea de cod este redusă semnificativ și lizibilitatea programului este îmbunătățită, nu trebuie să vă aprofundați în complexitățile dispozitivului și îl puteți utiliza imediat. Dar aici se află un dezavantaj: înțelegeți mai rău modul în care funcționează dispozitivul și ce procese au loc în el. În orice caz, ce metodă să folosești depinde de tine.