Denne ultrasoniske avstandsmåleren HC-SR04 er forbedret med temperatursensoren LM35.
Fra skolen kan du huske at lydens hastighet avhenger av lufttettheten, og lufttettheten avhenger av temperaturen.
Vi vil beregne temperaturen ved å bruke denne formelen
temp2 = (temp / 1023,0) * 5,0 * 1000/10;
Hvor temp2 er den ferdige temperaturverdien etter formelen,
Og hvor temp er råverdien fra sensoren.
Hva vi trenger:
- Ultrasonisk avstandsmåler HC-SR04
- Arduino
- Labkort
- jumpers
- Thermistor LM35 (temperatursensor)
Husk at HC-SR04 kommer i to former -
Her har jeg en god en og den måler stabilt avstand.
De måler begge fra 4 cm til 400 cm.
Drevet av 3.3 til 5 v
Til å begynne med, håner vi det hele på en brødplate.
Ultralydsensor:
- GND - gnd
- Ekko - 3 pinner
- Trig - 2 pinner
- Vcc - 5v
Termistor LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Det skal være slik:
Deretter fyller vi ut skissen.
Last ned bibliotek for HC-SR04 sensor -
Last ned skisse -
#include // koble biblioteket til å fungere med ultralydsensoren HC-SR04
iarduino_HC_SR04 hcsr (2,3); // betegner kontaktene Trig og Echo
int temp = 0; // rå temperatur
float temp2 = 0; // klar temperaturverdi
void setup () {// kjør 1 gang
Serial.begin (9600); // start portmonitoren
pinMode (A0, INPUT); // betegner kontakt A0 som input
}
void loop () {// gjentar et uendelig antall ganger
temp = analog Les (A0); // lese verdien av kontakt A0 og tilordne variabelen temp til den
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // beregne råverdien i henhold til formelen for å få den ferdige temperaturverdien
Serial.println (hcsr.distance (temp2)); // skriv klar rekkevidde på portmonitoren
forsinkelse (1000); // forsinkelse 1 sekund
}
Og her er en skisse for en LCD-skjerm-
Last ned skisse -
#include // koble biblioteket til å fungere med ultralydsensoren HC-SR04
#include // koble biblioteket til å fungere med skjermen på I2C-bussen
LiquidCrystal_I2C lcd (0x27, 16, 2); // betegne (adresse, kolonner, linjer)
iarduino_HC_SR04 hcsr (2,3); // betegner kontaktene Trig og Echo
int temp = 0; // rå temperatur
float temp2 = 0; // klar temperaturverdi
void setup () {// kjør 1 gang
lcd.init (); // initialiser skjermen
lcd.backlight (); // slå på bakgrunnsbelysningen på skjermen
pinMode (A0, INPUT); // betegner kontakt A0 som input
}
void loop () {// gjentar et uendelig antall ganger
temp = analog Les (A0); // lese verdien av kontakt A0 og tilordne variabelen temp til den
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // beregne råverdien i henhold til formelen for å få den ferdige temperaturverdien
lcd.set Markør (2, 0); // sett markøren på 2 kolonner og 0 rad
lcd.print (temp2); // skriv avstanden
lcd.setCursor (5,0); // plasser markøren på 5. kolonne og 0. rad
lcd.print ("cm"); // skriv cm
forsinkelse (1000); // forsinkelse 1 sekund
}
Skriv kommentarer og spørsmål, jeg vil svare på alt!