Tätä HC-SR04 ultraääni-etäisyysmittaria on parannettu LM35-lämpötila-anturilla.
Koulusta lähtien voit muistaa, että äänen nopeus riippuu ilman tiheydestä ja ilman tiheys riippuu lämpötilasta.
Laskemme lämpötilan tällä kaavalla
temp2 = (temp / 1023,0) * 5,0 * 1000/10;
Missä temp2 on lopullinen lämpötila-arvo kaavan jälkeen,
Ja missä temp on anturin raaka-arvo.
Tarvitsemme:
- Ultraääni etäisyysmittari HC-SR04
- Työläs
- prototyyppien aluksella
- hyppääjiä
- Termistori LM35 (lämpötila-anturi)
Muista, että HC-SR04 on kahta muotoa -
Minulla on hyvä ja se mittaa vakaasti etäisyyttä.
Niiden molemmat ovat 4 - 400 cm.
Voimanlähteenä 3,3 - 5 v
Ensinnäkin pilkkaamme sen kaiken leivänpäälle.
Ultraääni-anturi:
- GND - gnd
- Kaiku - 3 nastaa
- Liipaisin - 2 nastaa
- Vcc - 5v
Termistori LM35:
- 1-5v
- 2 - A0
- 3 - GND
Sen pitäisi olla tällainen:
Seuraavaksi täytämme luonnos.
Lataa kirjasto HC-SR04-anturille -
Lataa luonnos -
#include // yhdistä kirjasto toimimaan ultraäänianturin HC-SR04 kanssa
iarduino_HC_SR04 hcsr (2,3); // merkitse kontaktit Trig ja Echo
int temp = 0; // raaka lämpötila
kelluva temp2 = 0; // valmis lämpötila-arvo
void setup () {// suorita 1 kertaa
Serial.begin (9600); // käynnistä porttinäyttö
pinMode (A0, INPUT); // merkitse kontakti A0 tulona
}
void loop () {// toistaa äärettömän monta kertaa
temp = analoginen lukema (A0); // lue kontaktin A0 arvo ja määritä muuttuva lämpötila sille
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // laske raaka-arvo kaavan mukaan saadaksesi lopullinen lämpötila-arvo
Serial.println (hcsr.distance (temp2)); // kirjoita valmis alue porttinäytölle
viive (1000); // viive 1 sekunti
}
Ja tässä on luonnos LCD-näytölle-
Lataa luonnos -
#include // yhdistä kirjasto toimimaan ultraäänianturin HC-SR04 kanssa
#include // yhdistä kirjasto toimimaan I2C-väylän näytön kanssa
LiquidCrystal_I2C lcd (0x27, 16, 2); // merkitä (osoite, sarakkeet, rivit)
iarduino_HC_SR04 hcsr (2,3); // merkitse kontaktit Trig ja Echo
int temp = 0; // raaka lämpötila
kelluva temp2 = 0; // valmis lämpötila-arvo
void setup () {// suorita 1 kertaa
lcd.init (); // alusta näyttö
lcd taustavalo (); // kytke näytön taustavalo päälle
pinMode (A0, INPUT); // merkitse kontakti A0 tulona
}
void loop () {// toistaa äärettömän monta kertaa
temp = analoginen lukema (A0); // lue kontaktin A0 arvo ja määritä muuttuva lämpötila sille
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // laske raaka-arvo kaavan mukaan saadaksesi lopullinen lämpötila-arvo
lcd.setCursor (2, 0); // laita kohdistin 2 sarakkeeseen ja 0 riville
lcd.print (temp2); // kirjoita etäisyys
lcd.setCursor (5,0); // aseta kohdistin 5. sarakkeeseen ja 0. riville
lcd.print ("cm"); // kirjoita cm
viive (1000); // viive 1 sekunti
}
Kirjoita kommentteja ja kysymyksiä, vastaan kaikkeen!