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
Ar trebui să fie așa:
În continuare completăm schița.
Descărcați biblioteca pentru senzorul HC-SR04 -
Descărcați schița -
#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 -
#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!