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
Det borde vara så här:
Därefter fyller vi in skissen.
Ladda ner bibliotek för HC-SR04 sensor -
Ladda ner skiss -
#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 -
#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!