Projet 2
Projet 3
visiteurs
visiteurs en ligne
Le LM35 est un capteur de température.
Alimenté entre 2.7V et 5V, il délivre une tension proportionnelle à la température (10mV par °C)
T = Vout * 100
REMARQUES :
- pour un fonctionnement optimum, une alimentation de plus de 4V est préferable.
- avec le montage simple, il n'est pas possible de traiter des températures négatives
- le second montage permet de traiter les températures négatives (la diode introduit un offset de 0.5V)
La tension de sortie est mesurée par l'entrée analogique A0 de la carte ESP8266, le convertisseur analogique sur 10 bits (1024 points) permet d'obtenir la valeur de la tension par : Vout = analogRead(A0) * 3.3 / 1023
Pour le montage simple, T = Vout * 100
Pour le montage avec la diode, T = (Vout -0.5) * 100
REMARQUE
- dans la pratique, les montages proposés sont sous-alimentés et la tension de seuil de la diode varie avec la température. La valeur 100 doit être ajustée à la baisse pour compensé ces défauts
Concrètement, les valeurs 100 et 3.3
Pour tester la mise en œuvre du composant, un affichage est nécessaire, la liaison série entre la carte et le PC sera utilisée.
Après lancement du programme sur la carte, dans l'IDE Arduino, choisir dans "Outils", "Moniteur série" pour voir la valeurs de tension et de température.
Programme à charger dans la carte ESP8266 :
/*
Nom du programme :Test_analogue_input
Montage du LM35 avec la diode 1N4007 et la résistance de 1 kOhm
Lecture de la valeur de l'entrée A0 par potentiomètre
test entrée analogique A0
utilisation de la liaison série */
//int Vout=0;
float Vout=0;
float T=0;
void setup() {
// on communique avec l'ordinateur
Serial.begin(9600);
//Serial.setDebugOutput(true);
Serial.println("ESP8266 + LM35");
pinMode(A0,INPUT);//inutile
pinMode(D4,OUTPUT);
}
void loop(){
digitalWrite(D4, LOW);// pour signaler la mesure de température
//delay(100);
analogRead(A0);
delay(10);
Vout=analogRead(A0);
Serial.print("out = ");
Serial.println(Vout);
Vout=Vout * 3.3 /1023.0;
Serial.print("Vout = ");
Serial.println(Vout);
Serial.print("Temp");
char myChar = 233;//caractère "é"
Serial.print(myChar);
Serial.print("rature = ");
T = (Vout -0.5)*97.0;// normalement * 100
Serial.println(T);
digitalWrite(D4, HIGH); // sets the LED on
delay(1000);//temporisation entre chaque mesure
}