Deze HC-SR04 ultrasone afstandsmeter is verbeterd met de LM35 temperatuursensor.
Van school kun je je herinneren dat de snelheid van geluid afhangt van de dichtheid van lucht en de dichtheid van lucht hangt af van temperatuur.
Met deze formule berekenen we de temperatuur
temp2 = (temp / 1023.0) * 5.0 * 1000/10;
Waar temp2 de uiteindelijke temperatuurwaarde is na de formule,
En waar temp de ruwe waarde van de sensor is.
Wat we nodig hebben:
- Ultrasone afstandsmeter HC-SR04
- Arduino
- Broodplank
- Truien
- Thermistor LM35 (temperatuursensor)
Houd er rekening mee dat HC-SR04 in twee vormen voorkomt:
Hier heb ik een goede en het meet stabiel afstand.
Ze meten allebei van 4 cm tot 400 cm.
Aangedreven door 3.3 tot 5 v
Om te beginnen bespotten we het allemaal op een breadboard.
Ultrasone sensor:
- GND - GND
- Echo - 3 pinnen
- Trig - 2 pinnen
- Vcc - 5v
Thermistor LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Het zou zo moeten zijn:
Vervolgens vullen we de schets in.
Bibliotheek voor HC-SR04-sensor downloaden -
Schets downloaden -
#include // sluit de bibliotheek aan om te werken met de ultrasone sensor HC-SR04
iarduino_HC_SR04 hcsr (2,3); // verwijzen naar contacten Trig en Echo
int temp = 0; // ruwe temperatuur
float temp2 = 0; // klaar temperatuurwaarde
ongeldige setup () {// 1 keer uitvoeren
Serial.begin (9600); // start de poortmonitor
pinMode (A0, INPUT); // geef contact A0 aan als invoer
}
void loop () {// herhaalt een oneindig aantal keren
temp = analogRead (A0); // lees de waarde van contact A0 en wijs er de variabele temp aan toe
temp2 = (temp / 1023.0) * 5.0 * 1000/10; // bereken de onbewerkte waarde volgens de formule om de voltooide temperatuurwaarde te krijgen
Serial.println (hcsr.distance (temp2)); // Schrijf het ready-bereik in de poortmonitor
vertraging (1000); // vertraging 1 seconde
}
En hier is een schets voor een LCD-scherm-
Schets downloaden -
#include // sluit de bibliotheek aan om te werken met de ultrasone sensor HC-SR04
#include // verbind de bibliotheek om te werken met de weergave op de I2C-bus
LiquidCrystal_I2C lcd (0x27, 16, 2); // aanduiden (adres, kolommen, regels)
iarduino_HC_SR04 hcsr (2,3); // verwijzen naar contacten Trig en Echo
int temp = 0; // ruwe temperatuur
float temp2 = 0; // klaar temperatuurwaarde
ongeldige setup () {// 1 keer uitvoeren
lcd.init (); // initialiseer het scherm
lcd.backlight (); // zet de schermverlichting aan
pinMode (A0, INPUT); // geef contact A0 aan als invoer
}
void loop () {// herhaalt een oneindig aantal keren
temp = analogRead (A0); // lees de waarde van contact A0 en wijs er de variabele temp aan toe
temp2 = (temp / 1023.0) * 5.0 * 1000/10; // bereken de onbewerkte waarde volgens de formule om de voltooide temperatuurwaarde te krijgen
lcd.setCursor (2, 0); // zet de cursor op 2 kolommen en 0 rijen
lcd.print (temp2); // schrijf de afstand
lcd.setCursor (5,0); // plaats de cursor op de 5e kolom en 0e rij
lcd.print ("cm"); // schrijf cm
vertraging (1000); // vertraging 1 seconde
}
Schrijf opmerkingen en vragen, ik zal alles beantwoorden!