Denne HC-SR04 ultrasoniske afstandsmåler er forbedret med LM35 temperatursensoren.
Fra skolen kan du huske, at lydhastigheden afhænger af lufttætheden, og luftens densitet afhænger af temperaturen.
Vi beregner temperaturen ved hjælp af denne formel
temp2 = (temp / 1023,0) * 5,0 * 1000/10;
Hvor temp2 er den færdige temperaturværdi efter formlen,
Og hvor temp er den rå værdi fra sensoren.
Hvad vi har brug for:
- Ultralyds afstandsmåler HC-SR04
- Arduino
- prototyping board
- jumpere
- Thermistor LM35 (temperatursensor)
Husk, at HC-SR04 findes i to former -
Her har jeg en god, og den måler stabilt afstand.
De måler begge fra 4 cm til 400 cm.
Drives af 3.3 til 5 v
Til at begynde med håner vi det hele på en brødbræt.
Ultralydsensor:
- GND - gnd
- Echo - 3 pins
- Trig - 2 stifter
- Vcc - 5v
Termistor LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Det skulle være sådan:
Derefter udfylder vi skitsen.
Download bibliotek til HC-SR04 sensor -
Download skitse -
#include // tilslut biblioteket til at arbejde med ultralydssensoren HC-SR04
iarduino_HC_SR04 hcsr (2,3); // betegner kontakter Trig og Echo
int temp = 0; // rå temperatur
float temp2 = 0; // klar temperaturværdi
void setup () {// kør 1 gang
Serial.begin (9600); // start portmonitoren
pinMode (A0, INPUT); // betegner kontakt A0 som input
}
void loop () {// gentager et uendeligt antal gange
temp = analoglæse (A0); // læse værdien af kontakt A0 og tildele den variable temp til den
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // beregne råværdien i henhold til formlen for at få den færdige temperaturværdi
Serial.println (hcsr.distance (temp2)); // skriv det klare område i portmonitoren
forsinkelse (1000); // forsink 1 sekund
}
Og her er en skitse til et LCD-display-
Download skitse -
#include // tilslut biblioteket til at arbejde med ultralydssensoren HC-SR04
#include // tilslut biblioteket til at arbejde med displayet på I2C-bussen
LiquidCrystal_I2C lcd (0x27, 16, 2); // betegne (adresse, kolonner, linjer)
iarduino_HC_SR04 hcsr (2,3); // betegner kontakter Trig og Echo
int temp = 0; // rå temperatur
float temp2 = 0; // klar temperaturværdi
void setup () {// kør 1 gang
lcd.init (); // initialiser displayet
lcd.backlight (); // tænd for displayets baggrundsbelysning
pinMode (A0, INPUT); // betegner kontakt A0 som input
}
void loop () {// gentager et uendeligt antal gange
temp = analoglæse (A0); // læse værdien af kontakt A0 og tildele den variable temp til den
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // beregne råværdien i henhold til formlen for at få den færdige temperaturværdi
lcd.set markør (2, 0); // Sæt markøren på 2 kolonne og 0 række
lcd.print (temp2); // skriv afstanden
lcd.setCursor (5,0); // placer markøren på 5. kolonne og 0. række
lcd.print ("cm"); // skriv cm
forsinkelse (1000); // forsink 1 sekund
}
Skriv kommentarer og spørgsmål, jeg vil svare på alt!