Aquest telescopi ultrasònic HC-SR04 ha estat millorat amb el sensor de temperatura LM35.
Des de l’escola podeu recordar que la velocitat del so depèn de la densitat de l’aire i que la densitat de l’aire depèn de la temperatura.
Calcularem la temperatura mitjançant aquesta fórmula
temp2 = (temp / 1023,0) * 5,0 * 1000/10;
Quan temp2 és el valor de temperatura acabat després de la fórmula,
I on la temperatura és el valor brut del sensor.
El que necessitem:
- Ultrasonic Rangefinder HC-SR04
- Arduino
- Panell
- Jumpers
- Thermistor LM35 (Sensor de temperatura)
Tingueu en compte que l’HC-SR04 es presenta en dues formes:
Aquí en tinc un de bo i mesura de forma estable la distància.
Ambdós mesuren de 4 cm a 400 cm.
Potenciat per 3.3 a 5 v
Per començar, ho burlem tot sobre un panell.
Sensor d'ultrasons:
- GND - gnd
- Ressò: 3 pins
- Trig - 2 pins
- Vcc - 5v
Termistor LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Hauria de ser així:
A continuació, emplenem l’esbós.
Descarregueu la biblioteca per al sensor HC-SR04 -
Descarregar esbós -
#include // connectar la biblioteca per treballar amb el sensor d'ultrasons HC-SR04
iarduino_HC_SR04 hcsr (2,3); // denotar contactes Trig i Echo
int temp = 0; // temperatura crua
float temp2 = 0; // valor de temperatura llest
void setup () {// executar 1 vegada
Serial.begin (9600); // iniciar el monitor del port
pinMode (A0, INPUT); // denota el contacte A0 com a entrada
}
void loop () {// repeteix un nombre infinit de vegades
temp = analogRead (A0); // llegeix el valor del contacte A0 i assigna-li la variable temp
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // calculeu el valor brut segons la fórmula per obtenir el valor de temperatura acabat
Serial.println (hcsr.distance (temp2)); // escriviu la gamma preparada al monitor del port
retard (1000); // retardar 1 segon
}
I aquí teniu un esbós per a una pantalla LCD-
Descarregar esbós -
#include // connectar la biblioteca per treballar amb el sensor d'ultrasons HC-SR04
#include // connectar la biblioteca per treballar amb la visualització del bus I2C
LiquidCrystal_I2C lcd (0x27, 16, 2); // denote (adreça, columnes, línies)
iarduino_HC_SR04 hcsr (2,3); // denotar contactes Trig i Echo
int temp = 0; // temperatura crua
float temp2 = 0; // valor de temperatura llest
void setup () {// executar 1 vegada
lcd.init (); // inicialitzar la pantalla
lcd.backlight (); // encendre el retroil·luminació de la pantalla
pinMode (A0, INPUT); // denota el contacte A0 com a entrada
}
void loop () {// repeteix un nombre infinit de vegades
temp = analogRead (A0); // llegeix el valor del contacte A0 i assigna-li la variable temp
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // calculeu el valor brut segons la fórmula per obtenir el valor de temperatura acabat
lcd.setCursor (2, 0); // poseu el cursor a 2 columnes i 0 fila
lcd.print (temp2); // escriure la distància
lcd.setCursor (5,0); // col·loca el cursor a la cinquena columna i la 0a fila
lcd.print ("cm"); // escriure cm
retard (1000); // retardar 1 segon
}
Escriu comentaris i preguntes, ho respondré tot!