Ce télémètre à ultrasons HC-SR04 a été amélioré avec le capteur de température LM35.
De l'école, vous vous souvenez que la vitesse du son dépend de la densité de l'air et que la densité de l'air dépend de la température.
Nous calculerons la température en utilisant cette formule
temp2 = (temp / 1023,0) * 5,0 * 1000/10;
Où temp2 est la valeur de température finale après la formule,
Et où temp est la valeur brute du capteur.
Ce dont nous avons besoin:
- Télémètre à ultrasons HC-SR04
- Arduino
- Planche à pain
- Cavaliers
- Thermistance LM35 (capteur de température)
Gardez à l'esprit que le HC-SR04 se présente sous deux formes -
Ici, j'en ai un bon et il mesure de manière stable la distance.
Ils mesurent tous les deux de 4 cm à 400 cm.
Alimenté par 3,3 à 5 v
Pour commencer, nous nous moquons de tout sur une planche à pain.
Capteur à ultrasons:
- GND - gnd
- Echo - 3 broches
- Trig - 2 broches
- Vcc - 5v
Thermistance LM35:
- 1 - 5v
- 2 - A0
- 3 - GND
Cela devrait être comme ceci:
Ensuite, nous remplissons le croquis.
Téléchargez la bibliothèque du capteur HC-SR04 -
Télécharger le croquis -
#include // connectez la bibliothèque pour travailler avec le capteur à ultrasons HC-SR04
iarduino_HC_SR04 hcsr (2,3); // désigne les contacts Trig et Echo
int temp = 0; // température brute
float temp2 = 0; // valeur de température prête
void setup () {// exécuter 1 fois
Serial.begin (9600); // démarre le moniteur de port
pinMode (A0, INPUT); // désigne le contact A0 en entrée
}
void loop () {// se répète un nombre infini de fois
temp = lecture analogique (A0); // lit la valeur du contact A0 et lui affecte la variable temp
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // calcule la valeur brute selon la formule pour obtenir la valeur de température finale
Serial.println (hcsr.distance (temp2)); // écrit la plage prête dans le moniteur de port
retard (1000); // retard 1 seconde
}
Et voici un croquis pour un écran LCD-
Télécharger le croquis -
#include // connectez la bibliothèque pour travailler avec le capteur à ultrasons HC-SR04
#include // connecte la bibliothèque pour travailler avec l'affichage sur le bus I2C
Écran LCD LiquidCrystal_I2C (0x27, 16, 2); // dénote (adresse, colonnes, lignes)
iarduino_HC_SR04 hcsr (2,3); // désigne les contacts Trig et Echo
int temp = 0; // température brute
float temp2 = 0; // valeur de température prête
void setup () {// exécuter 1 fois
lcd.init (); // initialise l'affichage
lcd.backlight (); // allume le rétroéclairage de l'écran
pinMode (A0, INPUT); // désigne le contact A0 en entrée
}
void loop () {// se répète un nombre infini de fois
temp = lecture analogique (A0); // lit la valeur du contact A0 et lui affecte la variable temp
temp2 = (temp / 1023,0) * 5,0 * 1000/10; // calcule la valeur brute selon la formule pour obtenir la valeur de température finale
lcd.setCursor (2, 0); // place le curseur sur 2 colonnes et 0 ligne
lcd.print (temp2); // écrit la distance
lcd.setCursor (5,0); // place le curseur sur la 5ème colonne et la 0ème ligne
lcd.print ("cm"); // écrire cm
retard (1000); // retard 1 seconde
}
Écrivez des commentaires et des questions, je répondrai à tout!