» electronică » Arduino »Telemetru cu ultrasunete foarte precis

Telemetru cu ultrasunete foarte precis



Acest telemetru cu ultrasunete HC-SR04 a fost îmbunătățit cu senzorul de temperatură LM35.

De la școală puteți aminti că viteza sunetului depinde de densitatea aerului, iar densitatea aerului depinde de temperatură.
Vom calcula temperatura folosind această formulă
temp2 = (temp / 1023.0) * 5,0 * 1000/10;

Atunci când temp2 este valoarea temperaturii finite după formulă,
Și unde temperatura este valoarea brută de la senzor.

De ce avem nevoie:
  • Ultrasonic Rangefinder HC-SR04
  • Arduino
  • bord prototipuri
  • jumperii
  • Thermistor LM35 (senzor de temperatură)


Rețineți că HC-SR04 are două forme -
Aici am unul bun și măsoară stabil distanța.
Amândouă măsoară de la 4 cm la 400 cm.
Alimentat de 3,3 până la 5 v


Pentru început, o batjocorim pe o placă de pâine.

Senzor cu ultrasunete:
  • GND - gnd
  • Ecou - 3 pini
  • Trig - 2 pini
  • Vcc - 5v

Termistor LM35:
  • 1 - 5v
  • 2 - A0
  • 3 - GND

Telemetru cu ultrasunete foarte precis

Ar trebui să fie așa:

În continuare completăm schița.
Descărcați biblioteca pentru senzorul HC-SR04 -
iarduino_hc-sr04.zip [299.69 Kb] (descărcări: 207)

Descărcați schița -
sketch_mar23f.zip [338 b] (descărcări: 157)

#include  // conectați biblioteca pentru a lucra cu senzorul ultrasonic HC-SR04
iarduino_HC_SR04 hcsr (2,3); // denotați contactele Trig și Echo
int temp = 0; // temperatura brută
float temp2 = 0; // valoarea temperaturii gata

void setup () {// rulează 1 dată
  Serial.begin (9600); // porniți monitorul portului
  pinMode (A0, INPUT); // denotați contactul A0 ca intrare
}

void loop () {// repetă un număr infinit de ori
  temp = analogRead (A0); // citiți valoarea contactului A0 și atribuiți variabilei temp
  temp2 = (temp / 1023.0) * 5,0 * 1000/10; // calculați valoarea brută în funcție de formula pentru a obține valoarea temperaturii finite
  Serial.println (hcsr.distance (temp2)); // scrieți gama pregătită în monitorul portului
  întârziere (1000); // întârziere 1 secundă
}

Și aici este o schiță pentru un ecran LCD-
Descărcați schița -
sketch_mar23f-1.zip [861 b] (descărcări: 139)


#include  // conectați biblioteca pentru a lucra cu senzorul ultrasonic HC-SR04
#include  // conectați biblioteca pentru a funcționa cu afișajul pe magistrala I2C

LiquidCrystal_I2C lcd (0x27, 16, 2); // denota (adresă, coloane, linii)
iarduino_HC_SR04 hcsr (2,3); // denotați contactele Trig și Echo

int temp = 0; // temperatura brută
float temp2 = 0; // valoarea temperaturii gata

void setup () {// rulează 1 dată
  lcd.init (); // inițializează afișajul
  lcd.backlight (); // porniți lumina de fundal a afișajului
  pinMode (A0, INPUT); // denotați contactul A0 ca intrare
}

void loop () {// repetă un număr infinit de ori
  temp = analogRead (A0); // citiți valoarea contactului A0 și atribuiți variabilei temp
  temp2 = (temp / 1023.0) * 5,0 * 1000/10; // calculați valoarea brută în funcție de formula pentru a obține valoarea temperaturii finite
  lcd.setCursor (2, 0); // puneți cursorul pe 2 coloane și pe 0 rând
  lcd.print (temp2); // scrieți distanța
  lcd.setCursor (5,0); // așezați cursorul pe coloana a 5-a și a 0-a rând
  lcd.print ("cm"); // scrie cm
  întârziere (1000); // întârziere 1 secundă
}


Scrie comentarii și întrebări, voi răspunde la toate!
10
10
10

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
13 comentariu
Musafir Alexandru
De unde provine această formulă:
temp2 = (temp / 1023.0) * 5,0 * 1000/10
Mi-ai putea spune mai detaliat, de unde provin aceste valori?
Aș adăuga și punctul 4. Nu folosiți pentru măsurători, doar pentru dispozitive de automatizare!
Înțeleg (judecând după parametrii de mai sus) că instrucțiunile pentru acesta arată așa ceva:
1. Prindeți HC-SR04 în mâna stângă și Atoruchka, sau marker, în dreapta dvs.
2. Estimați distanța după ochi și scrieți-o.
3. Introduceți HC-SR04 înapoi în cutie.
bine
Citat: „Caracteristici ale telemetrului cu ultrasunete HC-SR04
Domeniu de măsurare: de la 2 cm la 400 cm.
Precizia măsurătorii: ± 1 cm (la o distanță maximă de ± 3 cm).

Întrebare: Cât de „grea” este corectarea temperaturii în eroarea totală?
Cred că produsul de casă nu a fost implementat, nu există nicio fotografie cu dispozitivul finit și funcționarea acestuia.
Consider acest produs de casă drept „copilăresc”, dar articolul nu arată sau mestecă cum să conectezi ecranul. Pentru începători, site-urile noastre sunt neclare, dar cele cu experiență nu au nevoie. Mestecați și arătați toate casele.
Citat: Anton Martyanov
De fapt, acestea diferă nu numai în inscripție, ci și în acuratețe!

Conform documentației sau ai dat peste asta?
Autorul
De fapt, acestea diferă nu numai în inscripție, ci și în acuratețe!
Dar nu este suficient ??? șef De exemplu, de asemenea, nu-mi place când marcajele sunt scrise sub jumătate de metru !!! zâmbete dontknow
Și de ce este încă rău, cu excepția înălțimii marcajului?
Autorul
Cea proastă este inscripția HC-SR04 cu 0,5 cm mai mică
Foarte precis
Și care este exactitatea? Ce a fost folosit ca referință? Care este eroarea de temperatură?
Rețineți că HC-SR04 are două forme -
Am unul bun
Și care credeți că este rău?
Vă voi spune din experiența mea că un telemetru cu ultrasunete, cum ar fi „ruleta fără contact” este o răsfăț !!!
Unul este întins ca fiind inutil ...
Și nu din cauza preciziei insuficiente, ci pentru că pot măsura doar distanța până la un perete suficient de mare de material solid ... Dar până la peretele din spate al unei nișe din acest perete - în niciun fel !!! De asemenea, nu va funcționa dacă acest perete este plin de mobilier și alte lucruri, și există doar o mică „fereastră” lipsită de dezordine ... (În acest caz, este mai ușor să nu eliberați peretele de toate acestea, ci să folosiți doar ruletă obișnuită).
Din nou, încercați să măsurați distanța până la o țepă condusă în pământ !!!

Și la seră?)))
Și la peretele acoperit cu țesătură?)))
Și la fațadă, deja lipită cu dale de vată minerală, dar încă fără acoperirea finală?))))
Și înainte de fiecare dintre cele zece căpriori aranjate la rând?
Și de la perete până la capătul plăcii deja bătut în tavan pentru a tăia lungimea necesară și a închide această „gaură” ???

Nimic din cele de mai sus nu va funcționa pentru dvs. !!!

Și atunci ce să măsoare cu acesta în timpul reparației sau la un șantier, de exemplu ??? Doar dimensiunea și suprafața spațiilor, fără mobila ???

Pe scurt, l-am aruncat pe raft acum câțiva ani și, amintindu-mi proverbul despre „avarul care plătește de două ori”, am decis că trebuie să cumpăr un laser….

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...