Introduction :
Le montage présenté permet de mesurer en continu très simplement la température avec un capteur et un Arduino (Yun ici).
Les résultats sont transmis par l’Arduino au PC via l’interface série puis affichés dans la console Arduino.
Le capteur retenu pour ce montage permettant la mesure de température est le LM35 DZ car il est très simple à mettre en œuvre, il est étalonné directement en usine et ne coûte pas très cher.
Il permet de faire des mesures de températures assez précises (+/- 0.5 degré) de 0 à 100 degrés.
Il fournit une tension proportionnelle à la température mesurée. Celle-ci augmente de 10 mV par degré : Il fournit 0 V pour 0 degré, 250 mV pour 25 degrés, etc. et un maximum de 1 volt pour 100 degrés.
Brochage du LM35 DZ
Broches | Désignation |
---|---|
VS | Alimentation du capteur |
OUT | Sortie proportionnelle à la température |
GND | Masse du capteur |
D’autres versions du LM35 sont disponibles et en particulier les suivantes :
– LM35AH : boîtier métal TO46, plage -55 °C à +150 °C
– LM35CZ : boîtier plastique TO92, plage -40 °C à +100 °C
Montage
Schéma
Photo
Code
/////////////////////////////////////////////////////// // Objet : Mesure de temperature avec un LM35 DZ // // pm_lm35_temperature.ino // // Auteur : PHM // // Date création : Le 07 12 2015 // // Date dernière mise à jour : so // /////////////////////////////////////////////////////// //Déclaration et initialisation des variables float mesure=0; //Variable pour le stockage mesure retournée par le capteur float tension=0; //Variable pour le stockage de la tension float temperature=0; //Variable pour le stockage de la température float tempmin=100; //Temperature min float tempmax=0; //Temperature max int portana0 = 0; //Numéro du port analogique sur lequel la température est mesurée //Traitements initialisation void setup() { Serial.begin(9600); //initialisation de la liaison série à 9 600 bauds } //Traitements itératifs void loop() { mesure = analogRead(portana0); //Lecture de la valeur fournie par le capteur de température tension = mesure * 5 / 1024; //Conversion en tension (en volt) temperature = tension * 100; //Conversion en température (en degré Celsius) if (temperature < tempmin) {tempmin = temperature;} //Calcul temperature mini if (temperature > tempmax) {tempmax = temperature;} //Calcul temperature maxi //Envoi de la tension et des températures au PC par la liaison série pour affichage dans la console Serial.print("Tension : "); Serial.print (tension); Serial.print(" Volts - "); Serial.print("Temperatures :"); Serial.print(" >Actuelle : "); Serial.print (temperature); Serial.print(" >Mini : "); Serial.print (tempmin); Serial.print (" >Max : "); Serial.println (tempmax); //Attente de 5 secondes avant de faire une nouvelle mesure delay(5000); }
Résultats
Dans la console, on doit voir les messages suivants :
On voit que la température initiale était de 21 degrés, puis en prenant le capteur entre les mains la température monte à 25 degrés puis ensuite redescend après avoir relâché le capteur.
Pour plus d’informations sur l’Arduino, vous pouvez consulter le site http://phmarduino.free.fr/
Programme simple et bien détaillé pour sa compréhension; Merci !
J’aimeJ’aime
Bonjour, Merci beaucoup pour votre commentaire.
J’aimeJ’aime
merci beaucoup pour ce travail.
J’aimeJ’aime
Merci pour ces encouragements.
J’aimeJ’aime
bonjour,
j’essaie depuis deux jours de faire fonctionner ce projet.
la première température est entre 26 et 325°, la deuxième est correcte et la troisième verqs 341°
de quoi cela peut provenir
merci*f. Jubert
J’aimeJ’aime
Bonjour François, même problème pour ma part. Les valeurs sont très hazardeuses, est varient énormément. Je ne pense pas que cela vienne du code proposé ici, mais d’une évolution d’Arduino.. C’est assez étrange.
Cordialement ,
J’aimeJ’aime