» elektronik » Arduino »Mycket exakt ultraljudsavståndsmätare

Mycket exakt ultraljudsavståndsmätare



Den här ultraljudsavståndsmätaren HC-SR04 har förbättrats med temperatursensorn LM35.

Från skolan kan du komma ihåg att ljudets hastighet beror på lufttätheten och lufttätheten beror på temperaturen.
Vi beräknar temperaturen med denna formel
temp2 = (temp / 1023,0) * 5,0 * 1000/10;

Där temp2 är det färdiga temperaturvärdet efter formeln,
Och där temp är det råvärdet från sensorn.

Vad vi behöver:
  • Ultraljuds avståndsmätare HC-SR04
  • Arduino
  • prototyper ombord
  • hoppare
  • Termistor LM35 (temperatursensor)


Tänk på att HC-SR04 finns i två former -
Här har jag en bra och det mäter stabilt avstånd.
De mäter båda från 4 cm till 400 cm.
Drivs av 3.3 till 5 v


Till att börja med hånar vi det hela på en brödskiva.

Ultraljudssensor:
  • GND - gnd
  • Echo - 3 stift
  • Trig - 2 stift
  • Vcc - 5v

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

Mycket exakt ultraljudsavståndsmätare

Det borde vara så här:

Därefter fyller vi in ​​skissen.
Ladda ner bibliotek för HC-SR04 sensor -
iarduino_hc-sr04.zip [299.69 Kb] (nedladdningar: 207)

Ladda ner skiss -
sketch_mar23f.zip [338 b] (nedladdningar: 157)

#include  // anslut biblioteket för att arbeta med ultraljudssensorn HC-SR04
iarduino_HC_SR04 hcsr (2,3); // anger kontakter Trig och Echo
int temp = 0; // rå temperatur
float temp2 = 0; // klar temperaturvärde

void setup () {// kör 1 gång
  Serial.begin (9600); // starta portmonitorn
  pinMode (A0, INPUT); // beteckna kontakt A0 som ingång
}

void loop () {// upprepar ett oändligt antal gånger
  temp = analogRead (A0); // läs värdet på kontakt A0 och tilldela variabel temp till den
  temp2 = (temp / 1023,0) * 5,0 * 1000/10; // beräkna råvärdet enligt formeln för att få det färdiga temperaturvärdet
  Serial.println (hcsr.distance (temp2)); // skriv redoområdet i portmonitorn
  fördröjning (1000); // försena 1 sekund
}

Och här är en skiss för en LCD-skärm-
Ladda ner skiss -
sketch_mar23f-1.zip [861 b] (nedladdningar: 139)


#include  // anslut biblioteket för att arbeta med ultraljudssensorn HC-SR04
#include  // anslut biblioteket så att det fungerar med skärmen på I2C-bussen

LiquidCrystal_I2C lcd (0x27, 16, 2); // markera (adress, kolumner, rader)
iarduino_HC_SR04 hcsr (2,3); // anger kontakter Trig och Echo

int temp = 0; // rå temperatur
float temp2 = 0; // klar temperaturvärde

void setup () {// kör 1 gång
  lcd.init (); // initialisera skärmen
  lcd.backlight (); // slå på skärmens bakgrundsbelysning
  pinMode (A0, INPUT); // beteckna kontakt A0 som ingång
}

void loop () {// upprepar ett oändligt antal gånger
  temp = analogRead (A0); // läs värdet på kontakt A0 och tilldela variabel temp till den
  temp2 = (temp / 1023,0) * 5,0 * 1000/10; // beräkna råvärdet enligt formeln för att få det färdiga temperaturvärdet
  lcd.setCursor (2, 0); // sätta markören på 2 kolumn och 0 rad
  lcd.print (temp2); // skriv avståndet
  lcd.setCursor (5,0); // placera markören på den femte kolumnen och den 0: e raden
  lcd.print ("cm"); // skriv cm
  fördröjning (1000); // försena 1 sekund
}


Skriv kommentarer och frågor, jag kommer att svara på allt!
10
10
10

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
13 kommentar
Gäst Alexander
Var kommer denna formel ifrån:
temp2 = (temp / 1023,0) * 5,0 * 1000/10
Kan du berätta mer i detalj, var kom dessa värden ifrån?
Jag skulle också lägga till punkt 4. Använd inte för mätningar, bara för automatiseringsenheter!
Jag förstår (utifrån parametrarna ovan) att instruktionerna för det ser ut så här:
1. Ta tag i HC-SR04 i din vänstra hand och Atoruchka eller markören till höger.
2. Beräkna avståndet med ögat och skriv ner det.
3. Sätt tillbaka HC-SR04 i lådan.
OK
Citat: “Funktioner i ultraljudsavståndsmätaren HC-SR04
Mätintervall: från 2 cm till 400 cm.
Mätnoggrannhet: ± 1 cm (vid maximalt intervall ± 3 cm).

Fråga: Hur "tung" är temperaturkorrigeringen i det totala felet?
Jag tror att den hemlagade produkten inte implementerades, det finns inget foto av den färdiga enheten och dess funktion.
Jag anser att den här hemlagade produkten är "barnslig", men artikeln visar eller tuggar inte hur du ansluter skärmen. För nybörjare är våra webbplatser oklara, men erfarna behöver inte det. Tugga och visa alla hemmagjorda.
Citat: Anton Martyanov
I själva verket skiljer de sig inte bara i inskription utan också i noggrannhet!

Enligt dokumentationen eller har du stött på detta?
Författaren
I själva verket skiljer de sig inte bara i inskription utan också i noggrannhet!
Men räcker det inte ??? boss Till exempel gillar jag det inte heller när markeringarna är skrivna under en halv meter !!! ler dontknow
Och varför är det fortfarande dåligt, utom markeringens höjd?
Författaren
Den dåliga är inskriptionen HC-SR04 0,5 cm lägre
Mycket exakt
Och vad är noggrannheten? Vad användes som referens? Vad är temperaturfelet?
Tänk på att HC-SR04 finns i två former -
Jag har en bra
Och vilken tycker du är dålig?
Jag säger er från min egen erfarenhet att en ultraljudsavståndsmätare, som "kontaktlös roulette" är en bortskämd !!!
Man ligger omkring som onödigt ...
Och inte på grund av otillräcklig noggrannhet, utan för att de bara kan mäta avståndet till en tillräckligt stor vägg av massivt material ... Men till bakväggen i en nisch i denna vägg - inget sätt !!! Och det fungerar inte heller om denna vägg är full av möbler och andra saker, och det bara finns ett litet "fönster" fritt från röran ... (I det här fallet är det lättare att inte frigöra väggen från allt detta, utan bara använda vanlig roulette).
Återigen, prova att mäta avståndet till en pinne som körs i marken !!!

Och till växthuset?)))
Och till väggen täckt med tyg?)))
Och till fasaden, redan klistrad med mineralullplattor, men fortfarande utan den slutliga beläggningen?))))
Och innan var och en av de tio takbjälkar ordnade i rad?
Och från väggen till slutet av brädet redan spikat vid taket för att skära av den erforderliga längden och stänga detta "hål" ???

Inget av ovanstående kommer att fungera för dig !!!

Och vad ska man mäta med det under reparation, eller på en byggarbetsplats, till exempel ??? Endast storleken och ytan på lokalerna, medan de är fria från möbler ???

Kort sagt, jag kastade den på hyllan för ett par år sedan, och när jag kom ihåg ordspråket om "avaricious, som betalar två gånger", bestämde jag mig för att jag måste köpa en laser ...

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...