Tento ultrazvukový diaľkomer HC-SR04 bol vylepšený snímačom teploty LM35.
Zo školy si môžete pamätať, že rýchlosť zvuku závisí od hustoty vzduchu a hustota vzduchu závisí od teploty.
Pomocou tohto vzorca vypočítame teplotu
temp2 = (temp / 1023,0) * 5,0 * 1 000/10;
Ak temp2 je konečná hodnota teploty podľa vzorca,
A kde temp je surová hodnota zo senzora.
Čo potrebujeme:
- Ultrazvukový diaľkomer HC-SR04
- Arduino
- prototyping board
- prepojky
- Termistor LM35 (snímač teploty)
Majte na pamäti, že HC-SR04 má dve formy -
Tu mám dobrý a stabilne meria vzdialenosť.
Obidve merajú od 4 cm do 400 cm.
Beží na 3,3 až 5 v
Na začiatok to vysmievame všetko na doštičku.
Ultrazvukový senzor:
- GND - gnd
- Echo - 3 kolíky
- Trig - 2 kolíky
- Vcc - 5v
Termistor LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Malo by to byť toto:
Ďalej vyplníme náčrt.
Stiahnite si knižnicu pre snímač HC-SR04 -
Stiahnuť skicu -
#include // pripojte knižnicu, aby pracovala s ultrazvukovým senzorom HC-SR04
iarduino_HC_SR04 hcsr (2,3); // označujú kontakty Trig a Echo
int temp = 0; // surová teplota
float temp2 = 0; // teplota pripravenosti
void setup () {// run 1 time
Serial.egegin (9600); // spustite monitor portu
pinMode (A0, INPUT); // označujú kontakt A0 ako vstup
}
void loop () {// opakuje nekonečný počet opakovaní
temp = analogRead (A0); // prečíta hodnotu kontaktu A0 a priradí mu premennú temp
temp2 = (temp / 1023,0) * 5,0 * 1 000/10; // vypočítajte nespracovanú hodnotu podľa vzorca, aby ste dostali konečnú hodnotu teploty
Serial.println (hcsr.distance (temp2)); // napíšte pripravený rozsah do monitora portov
oneskorenie (1000); // oneskorenie 1 sekunda
}
A tu je náčrt displeja LCD-
Stiahnuť skicu -
#include // pripojte knižnicu, aby pracovala s ultrazvukovým senzorom HC-SR04
#include // pripojte knižnicu, aby pracovala so zobrazením na zbernici I2C
LiquidCrystal_I2C lcd (0x27, 16, 2); // označuje (adresa, stĺpce, riadky)
iarduino_HC_SR04 hcsr (2,3); // označujú kontakty Trig a Echo
int temp = 0; // surová teplota
float temp2 = 0; // teplota pripravenosti
void setup () {// run 1 time
lcd.init (); // inicializácia displeja
lcd.backlight (); // zapnite podsvietenie displeja
pinMode (A0, INPUT); // označujú kontakt A0 ako vstup
}
void loop () {// opakuje nekonečný počet opakovaní
temp = analogRead (A0); // prečíta hodnotu kontaktu A0 a priradí mu premennú temp
temp2 = (temp / 1023,0) * 5,0 * 1 000/10; // vypočítajte nespracovanú hodnotu podľa vzorca, aby ste dostali konečnú hodnotu teploty
lcd.setCursor (2, 0); // umiestnite kurzor na 2 stĺpce a 0 riadok
lcd.print (temp2); // napíš vzdialenosť
lcd.setCursor (5,0); // umiestnite kurzor na piaty stĺpec a 0. riadok
lcd.print ("cm"); // písať cm
oneskorenie (1000); // oneskorenie 1 sekunda
}
Napíšte komentáre a otázky, odpoviem na všetko!