Ten ultradźwiękowy dalmierz HC-SR04 został ulepszony o czujnik temperatury LM35.
Ze szkoły możesz sobie przypomnieć, że prędkość dźwięku zależy od gęstości powietrza, a gęstość powietrza zależy od temperatury.
Obliczymy temperaturę za pomocą tego wzoru
temp2 = (temp / 1023,0) * 5,0 * 1000/10;
Gdzie temp2 jest wartością końcową temperatury po formule,
A gdzie temp to nieprzetworzona wartość z czujnika.
Czego potrzebujemy:
- Dalmierz ultradźwiękowy HC-SR04
- Arduino
- Breadboard
- Swetry
- Termistor LM35 (czujnik temperatury)
Należy pamiętać, że HC-SR04 występuje w dwóch formach -
Tutaj mam dobry i stabilnie mierzy odległość.
Oba mierzą od 4 cm do 400 cm.
Zasilany przez 3,3 do 5 v
Na początek wyśmiewamy to wszystko na desce do krojenia.
Czujnik ultradźwiękowy:
- GND - gnd
- Echo - 3 piny
- Trig - 2 piny
- Vcc - 5v
Termistor LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Powinno to wyglądać tak:
Następnie wypełniamy szkic.
Pobierz bibliotekę dla czujnika HC-SR04 -
Pobierz szkic -
#include // podłącz bibliotekę do pracy z czujnikiem ultradźwiękowym HC-SR04
iarduino_HC_SR04 hcsr (2,3); // oznacz kontakty Trig i Echo
int temp = 0; // surowa temperatura
float temp2 = 0; // gotowa wartość temperatury
void setup () {// uruchom 1 raz
Serial.begin (9600); // uruchom monitor portu
pinMode (A0, WEJŚCIE); // oznacz kontakt A0 jako wejście
}
void loop () {// powtarza nieskończoną liczbę razy
temp = analogRead (A0); // odczytać wartość styku A0 i przypisać mu zmienną temp
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // oblicz wartość surową zgodnie ze wzorem, aby uzyskać gotową wartość temperatury
Serial.println (hcsr.distance (temp2)); // zapisz gotowy zakres na monitorze portu
opóźnienie (1000); // opóźnienie 1 sekundy
}
A oto szkic wyświetlacza LCD
Pobierz szkic -
#include // podłącz bibliotekę do pracy z czujnikiem ultradźwiękowym HC-SR04
#include // podłącz bibliotekę do pracy z wyświetlaczem na magistrali I2C
LiquidCrystal_I2C lcd (0x27, 16, 2); // oznacz (adres, kolumny, wiersze)
iarduino_HC_SR04 hcsr (2,3); // oznacz kontakty Trig i Echo
int temp = 0; // surowa temperatura
float temp2 = 0; // gotowa wartość temperatury
void setup () {// uruchom 1 raz
lcd.init (); // zainicjuj wyświetlanie
lcd.backlight (); // włącz podświetlenie wyświetlacza
pinMode (A0, WEJŚCIE); // oznacz kontakt A0 jako wejście
}
void loop () {// powtarza nieskończoną liczbę razy
temp = analogRead (A0); // odczytać wartość styku A0 i przypisać mu zmienną temp
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // oblicz wartość surową zgodnie ze wzorem, aby uzyskać gotową wartość temperatury
lcd.setCursor (2, 0); // umieść kursor na 2 kolumnach i 0 wierszach
lcd.print (temp2); // wpisz odległość
lcd.setCursor (5,0); // umieść kursor w 5 kolumnie i 0 rzędzie
lcd.print („cm”); // napisz cm
opóźnienie (1000); // opóźnienie 1 sekundy
}
Napisz komentarze i pytania, odpowiem na wszystko!