Descriptif du programme
Ce programme très simple ne fait que mesurer la température sur demande de l’utilisateur en utilisant le capteur LM35.
L’intérêt de ce programme est de mettre en oeuvre sur un exemple minimal le schéma général de l’utilisation de la liaison série.
Le capteur de température LM35
Ce capteur est très facile à utiliser puisqu’il suffit de l’alimenter avec les pattes VCC et GND et la patte centrale à une entrée analogique d’Arduino.
La conversion elle aussi est simple puisqu’un volt correspond à 100 degrés Celsius.
La lecture analogique d’u signal de 0 à 5V étant codée de 0 à 1023, on a la formule
Temp = Volt * 5./1023*100 ;
Le code
/* Sur demande de l"utilisateur via la liaison serie (caractere m), le programme mesure la temperature en degre Celsius. */ //------------------------------------------------------------ // Librairies //------------------------------------------------------------ // pour le traitement du message recu sur la liaison serie #include <SerialDLF.h> //------------------------------------------------------------ // Constantes //------------------------------------------------------------ // Classe de SerialDLF SerialString messageRecu; const int LM35=A0; // pin analogique du capteur de temperature LM35 //------------------------------------------------------------ // Setup //------------------------------------------------------------ void setup() { // Initialisation de la liaison serie Serial.begin(9600); Serial.flush(); Serial.println("Liaison serie operationnelle !"); Serial.println("------------------------------"); delay(1000); Serial.println("Descriptif du programme :"); Serial.println("--------------------------"); Serial.println("Ce programme mesure la temperature a la demande."); Serial.println("--------------------------"); Serial.println("Pour connaitre les commandes, taper sur h ou H."); Serial.println("--------------------------"); // Autres initilisations } // fin setup //------------------------------------------------------------ // Loop //------------------------------------------------------------ void loop() { messageRecu.renew(); // on lit un eventuel message. if (messageRecu.empty()==false) // Si le message est non vide ... { //Serial.println(messageRecu.get()); traitement(); Serial.flush(); } } //fin loop //------------------------------------------------------------ // Fonction traitement() //------------------------------------------------------------ /* Execute le traitement des caracteres recus par la liaison serie qui sont stockes dans messageRecu. */ void traitement() { float temp; if ((messageRecu.equals("Descriptif")) || (messageRecu.equals("d"))) { Serial.println("--------------------------"); Serial.println("Descriptif du programme :"); Serial.println("--------------------------"); Serial.println("Ce programme mesure la temperature a la demande."); Serial.println("--------------------------"); } else if ((messageRecu.equals("Help")) || (messageRecu.equals("h"))) { Serial.println("--------------------------"); Serial.println("Liste des commandes :"); Serial.println("--------------------------"); Serial.println("--> Descriptif ou d : affiche le descriptif du programme."); Serial.println("--> Help ou h : affiche la liste des commandes."); Serial.println("--> Mesure ou m : demande une mesure."); Serial.println("--------------------------"); } else if ((messageRecu.equals("Mesure")) || (messageRecu.equals("m"))) { temp=analogRead(LM35)*5./1023*100; // lecture et conversion en degres Celsius. Serial.print("Temperature en degres Celsius : "); Serial.println(temp); } else { Serial.println("Erreur de saisie !"); } } // fin traitement