Table des matières
LM35
Arduinomètre avec sonde LM35
Le LM35
C'est un circuit intégré, de la taille d'un petit transistor, conçu pour générer une tension proportionnelle à la température en son cœur.
D'après les données fabricant, on peut atteindre une précision de 0,5°C. Voici un extrait des données de chez National Semiconductor :
Nous allons nous contenter du branchement “simple” (schéma de gauche), prévu pour la plage de températures de 2°C à 150°C. Notez que cette sonde est déjà calibrée, nous avons juste à convertir la tension de sortie en valeur de température en °C. La conversion est assez simple : la tension de base est 0v et elle augmente de 10mV pour chaque degré Centigrade. Donc à 20°C on aura une tension de 200mV. Ainsi à 150°C la tension sera de 1500mV, ou 1,5v.
L'Arduinomètre est programmé (pour des raisons de précision) à n'accepter que les tensions jusqu'à 1,1V : donc notre plage de température utile sera de 2°C à 110°C.
Schéma de branchement
Très simple : la bête n'a que trois pattes : +5v (alimentation); Vsortie ; 0v. Voici le montage sur une platine (j'ai omis l'afficheur LCD : ses branchements ne changent pas) :
Une fois n'est pas coutume : pas de schéma, c'est tellement simple.
Sonde flexible
Comme vous voyez sur la première image, il est possible de fabriquer une sonde flexible à l'instar de notre sonde à diode. A cause des tensions très faibles à basse température, je vous conseille de trouver du câble blindé (genre câble pour microphone). Sinon, au moins faire une paire torsadée avec le fil de sortie et le fil 0v.
Isoler les trois “pattes” avec de la gaine thermorétractable puis protéger l'ensemble avec une deuxième gaine par-dessus (dans l'image j'ai retiré la gaine de protection : on voit les trois pattes).
Dans l'image suivante on voit les branchements avec un câble blindé : fil rouge = +5v; fil blanc = Vsortie; fil orange = blindage = 0v.
Comme je l'ai dit en préambule, la température correspond à la température au coeur de la bête. L'encapsulation en plastique est relativement isolante, la chaleur est plutôt transmise par les pattes. Ce point n'a pas d'incidence dans la plupart des cas, mais vous remarquerez peut-être un temps de réponse un peu long par rapport à la sonde diode.
Modification Sketch
Je vous laisse modifier le sketch vous-même ! Non, non - ce n'est pas si difficile que cela. La seule vraie modification c'est pour les paramètres de la commande *map();* . La gamme de température devient de 2° à 110°; et la gamme de valeurs retournées par *analogRead();* devient (20/1.075) = 19 à 1023.
Double sonde
Pour voir à quel point la diode est précise (ou pas) il est possible de modifier le sketch afin de lire la valeur des deux sondes. L'Arduino est équipé de 6 entrées analogiques, il n'y a pas de raison de s'en priver !
Attention, cependant : le convertisseur analogique > numérique (ADC) a besoin d'un certain temps pour effectuer ses opérations, et un temps de repos entre chaque lecture. Je vous conseille de faire en sorte de laisser un minimum de 1mS entre deux lectures. Par exemple :
- exemple.ino
diode_value = analogRead(diode_pin); // lire valeur de la sonde diode delay(1); // attente lm35_value = analogRead(lm35_pin); // lire valeur de la sonde lm35