Cum să configurați un detector de rază ultrasonică pe un Arduino

detectoarele de rază ultrasonică sunt senzori amuzanți care pot măsura distanța. Le puteți folosi pentru a găsi Distanța până la un obiect sau pentru a detecta când ceva se află în apropierea senzorului ca un detector de mișcare. Sunt ideale pentru proiecte care implică navigație, evitarea obiectelor și securitatea locuinței. Deoarece folosesc sunetul pentru a măsura distanța, lucrează la fel de bine în întuneric ca și în lumină., Ultrasonic range finder eu voi fi folosind în acest tutorial este HC-SR04, care pot măsura distanțe de 2 cm până la 400 cm, cu o precizie de ±3 mm.

În acest articol, eu vă va arăta cum să facă trei diferite range finder circuite pentru Arduino. Primul circuit de căutare este ușor de configurat și are o precizie destul de bună. Celelalte două sunt un pic mai complicate, dar sunt mai precise, deoarece acestea iau în considerare temperatura și umiditatea. Dar înainte de a intra în asta, să vorbim despre modul în care telemetrul măsoară distanța.,

BONUS: am făcut un ghid de pornire rapidă pentru acest tutorial pe care îl puteți descărca și reveni mai târziu dacă nu puteți configura acest lucru chiar acum. Acesta acoperă toate etapele, diagrame, și Codul de care aveți nevoie pentru a începe.detectoarele de rază ultrasonică măsoară distanța prin emiterea unui impuls de sunet ultrasonic care călătorește prin aer până când atinge un obiect. Când acel puls de sunet lovește un obiect, acesta se reflectă în afara obiectului și se deplasează înapoi la căutătorul de rază ultrasonică., Telemetrul cu ultrasunete măsoară cât timp este nevoie de pulsul sonor pentru a călători în călătoria sa dus-întors de la senzor și înapoi. Apoi trimite un semnal către Arduino cu informații despre cât timp a durat pulsul sonic să călătorească.cunoscând timpul necesar pulsului ultrasonic pentru a călători înainte și înapoi la obiect și, de asemenea, cunoscând viteza sunetului, Arduino poate calcula distanța față de obiect., Formula referitoare la viteza sunetului, distanta, si timp parcursă este:

Rearanjarea aceasta formula, vom obține formula utilizată pentru a calcula distanta:

variabila timp este timpul necesar pentru ca impulsul ultrasonic să părăsească senzor, sări de pe obiect, și a reveni la senzor., De fapt, împărțim acest timp în jumătate, deoarece trebuie doar să măsurăm distanța față de obiect, nu Distanța față de obiect și înapoi la senzor. Variabila de viteză este viteza cu care sunetul călătorește prin aer.viteza sunetului în aer se schimbă odată cu temperatura și umiditatea. Prin urmare, pentru a calcula cu exactitate distanța, va trebui să luăm în considerare temperatura și umiditatea ambiantă., Formula pentru viteza sunetului în aer, cu temperatură și umiditate au reprezentat este:

De exemplu, la temperatura de 20°C și 50% umiditate, sunetul calatoreste cu o viteza de:

În ecuația de mai sus, este clar că temperatura are cel mai mare efect asupra vitezei sunetului. Umiditatea are o anumită influență, dar este mult mai mică decât efectul temperaturii.,

cum telemetrul cu ultrasunete măsoară distanța

pe partea frontală a telemetrului cu ultrasunete sunt doi cilindri metalici. Acestea sunt traductoare. Traductoarele transformă forțele mecanice în semnale electrice. În telemetrul cu ultrasunete, există un traductor de transmisie și un traductor de recepție. Traductorul de transmisie convertește un semnal electric în pulsul ultrasonic, iar traductorul de recepție convertește pulsul ultrasonic reflectat înapoi într-un semnal electric., Dacă te uiți la partea din spate a range finder, veți vedea un IC în spatele traductorului de transmisie etichetat MAX3232. Acesta este IC care controlează traductorul de transmisie. În spatele traductorului receptor este un IC etichetat LM324. Acesta este un quad Op-Amp care amplifică semnalul generat de traductorul receptor într-un semnal care este suficient de puternic pentru a transmite Arduino.,

HC-SR04 ultrasonic range finder are patru pini:

  • Vcc – consumabile puterea de a genera impulsuri ultrasonice
  • GND – conectat la masă
  • Trigonometrie – unde Arduino trimite semnalul pentru a începe cu ultrasunete puls
  • Echo – unde ultrasonic range finder trimite informații despre durata călătoriei întreprinse de impulsul ultrasonic pentru Arduino

Pentru a iniția o distanță de măsurare, avem nevoie pentru a trimite un 5V semnal înalt la Trigonometrie pin pentru cel puțin 10 µs., Când modulul primește acest semnal, acesta va emite 8 impulsuri de sunet ultrasonic la o frecvență de 40 KHz de la traductorul de transmisie. Apoi așteaptă și ascultă la traductorul de recepție semnalul reflectat. Dacă un obiect se află în raza de acțiune, cele 8 impulsuri vor fi reflectate înapoi la senzor. Când pulsul atinge traductorul de recepție, pinul ecou emite un semnal de înaltă tensiune.

lungimea acestui semnal de înaltă tensiune este egală cu timpul total pe care cele 8 impulsuri îl iau pentru a călători de la traductorul de transmisie și înapoi la traductorul de recepție., Cu toate acestea, vrem doar să măsurăm distanța față de obiect și nu Distanța căii pe care a luat-o pulsul sonor. Prin urmare, împărțim acel timp în jumătate pentru a obține variabila de timp în ecuația d = S x t de mai sus. Deoarece știm deja viteza sunetului (s), putem rezolva ecuația pentru distanță.

ultrasonic Range Finder Setup for Serial Monitor Output

Să începem prin a face un simplu interval de căutare cu ultrasunete, care va ieșire măsurători la distanță pentru monitorul serial. Dacă doriți să transmiteți citirile pe un ecran LCD, consultați secțiunea următoare., Conectarea totul este ușor, doar de sârmă ca aceasta:

Odată ce ai totul conectat, încărcați acest program pentru Arduino:

Explicarea Codului

  • Linia 11: Declară variabilele duration și distance.
  • liniile 12 și 13: trimite un semnal scăzut de 2 µs latrigPin pentru a vă asigura că este oprit la începutul buclei de program.,
  • linii 15-17: trimite un semnal ridicat de 10 µs la trigPin pentru a iniția secvența a opt impulsuri ultrasonice de 40 KHz trimise de la traductorul de transmisie.
  • Linia 19: Definește duration variabila ca lungime (în µs) de orice MARE semnal de intrare detectate la echoPin. Ieșirea Echo pin este egală cu timpul necesar impulsului ultrasonic emis pentru a călători la obiect și înapoi la senzor.,
  • Linia 20: Definește distance variabila ca durata (timpul în d = s x t) înmulțită cu viteza sunetului transformată din metri pe secundă la centimetri pe µs (0.0344 cm/µs).
  • liniile 22-24: dacă distanța este mai mare sau egală cu 400 cm sau mai mică sau egală cu 2 cm, afișați „distanță = în afara intervalului” pe monitorul serial.
  • liniile 26-30: dacă măsurarea distanței nu este în afara intervalului, Afișați distanța calculată în linia 20 pe monitorul serial pentru 500 ms.,

Ultrasonic Range Finder Cu LCD de Ieșire

Dacă doriți să ieșire măsurătorile de distanță la un 16X2 LCD, urmați această diagramă pentru a conecta range finder și LCD pentru Arduino:

Dacă aveți nevoie de mai mult ajutor conectarea LCD, încercați noastre alte tutorial despre configurarea unui LCD de pe Arduino., Când totul este conectat, încărcați acest cod pentru Arduino:

O Precizie mai Mare Ultrasonic Range Finder

Deoarece temperatura este o variabilă în viteza sunetului ecuația de mai sus (c = 331.4 + (0.606 x T) + (0.0124 x H)), temperatura aerului în jurul senzorului ne afectează măsurători la distanță. Pentru a compensa acest lucru, tot ce trebuie să facem este să adăugăm un termistor în circuitul nostru și să introducem citirile sale în ecuație. Acest lucru ar trebui să ofere măsurătorilor noastre de distanță o precizie mai mare., Un termistor este un rezistor variabil care schimbă rezistența cu temperatura. Pentru a afla mai multe despre termistori, consultați articolul nostru, tutorialul senzorului de temperatură Arduino termistor. Aici este o diagramă pentru a vă ajuta să adăugați un termistor pentru a-ți range finder circuit:

  • R1 = 10K Ohm rezistor
  • – Lea = 10K Ohm termistor

Notă: valoarea R1 trebuie sa fie egala cu rezistenta termistor.,după ce totul este conectat, încărcați acest cod în Arduino:

explicația Codului

în programul de căutare a gamei de bază la începutul acestui articol, am folosit formula d = S x t pentru a calcula distanța. În acest program, vom folosi formula care conturile pentru temperatură și umiditate (c = 331.4 + (0.606 x, T) + (0.0124 x H)).

în liniile 5-10, ecuația Steinhart-Hart este utilizată pentru a converti valorile rezistenței termistorului la temperatură, care sunt stocate într-o variabilă numită temp., În linia 35, adăugăm o nouă variabilă (spdSnd) care conține ecuația vitezei sunetului. Ieșirea din variabila spdSnd este utilizată ca viteză în funcția distance pe linia 36.

foarte mare (aproape prea mare) precizie cu ultrasunete gama Finder

temperatura compensată cu ultrasunete gama finder circuit este destul de precis pentru ceea ce cei mai mulți oameni vor folosi pentru. Cu toate acestea, există un alt factor care afectează viteza sunetului în aer (și, prin urmare, calculul distanței), și anume umiditatea., Puteți spune din ecuația vitezei sunetului că umiditatea are doar un efect mic asupra vitezei sunetului, dar vă permite să o verificați oricum.există mai multe tipuri de senzori de umiditate pe care le puteți utiliza pe Arduino, dar voi folosi senzorul de umiditate și temperatură DHT11. Acest modul are de fapt un termistor în plus față de senzor de umiditate, astfel încât configurarea este foarte simplu:

După ce totul este conectat, va trebui să instalați o bibliotecă specială pentru a rula codul., Biblioteca este biblioteca DHTLib scrisă de Rob Tillaart. Biblioteca este ușor de instalat. În primul rând, descărcați .fișierul zip de mai jos. Apoi, în Arduino IDE, du-te pentru a Schița>Include Biblioteca>Adăugare ZIP Library, apoi selectați DHTLib.fișier zip.,

DHTLib

După ce biblioteca este instalat, încărcați acest cod pentru Arduino:

Explicarea Codului

valorile de temperatură și umiditate ieșire de DHT11 sunt digitale, deci nu avem nevoie de a utiliza Steinhart-Hart ecuație pentru a converti termistor rezistenta la temperatura. Biblioteca DHTLib conține toate funcțiile necesare pentru a obține temperatura și umiditatea în unități pe care le putem folosi direct în ecuația vitezei sunetului. Variabilele de temperatură și umiditate sunt numite DHT.temperature și DHT.humidity., Apoi, viteza este utilizată ca variabilă în ecuația distanței pe linia 28.

La ieșire măsurătorile de distanță la un LCD, conectați mai întâi LCD următoarele nostru tutorial Cum să înființeze un Ecran LCD pe un Arduino, apoi încărcați acest cod:

urmariti tutorialul video pentru a vedea ultrasonic range finder circuite în acțiune:

vă Mulțumim pentru citirea! Lasă un comentariu dacă ai întrebări despre cum să le configurezi., Dacă vă plac articolele noastre aici, la elementele de bază ale circuitului, abonați-vă și vă vom anunța când publicăm articole noi. De asemenea, dacă știți pe altcineva care ar găsi acest articol util, vă rugăm să-l împărtășească!

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *