Capteur d`humidité résistif

publicité
Capteur d'humidité résistif
Extrait du PoBot
http://www.pobot.org
Capteur d'humidité résistif
- Robopedia - Constituants - Les capteurs - Capteurs d'environnement -
Date de mise en ligne : dimanche 25 janvier 2009
PoBot
Copyright © PoBot
Page 1/6
Capteur d'humidité résistif
Sommaire
• Circuit de connexion au (...)
• Le montage
• Les tests
• Test 1 : courbe analogique
• Test 2 : les calculs
• Exploitation des résultats
Un capteur d'humidité résistif (ou humidistance) permet d'évaluer l'humidité dans l'air au travers d'un simple dipôle se
comportant et se connectant comme une résistance.
Pour notre test il s'agit du H25K5A de Sencera :
Il coûte un peu moins de 4Euros chez Gotronic
[http://www.gotronic.fr/catalog/capteurs/capteursframe.php?page_cible=humidistance.htm] et c'est un bon moyen de
réviser l'acquisition d'une résistance, et comment on peut implémenter une table de correspondance dans un
microcontrôleur (look-up table).
Datasheet H25K5A
<!-- google_ad_client = "ca-pub-6809994141685910"; /* Corps central */ google_ad_slot = "0178404633";
google_ad_width = 728; google_ad_height = 90; //--» <script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
Circuit de connexion au µC
On utilise deux résistances : l'humidistance (nom générique du capteur) en pull-up connectée à l'alimentation 5 volts
et une résistance en pull-down connectée à la masse.
Entre les deux résistances, on obtient une tension de sortie du montage qu'on connecte sur un convertisseur
analogique/numérique (tout bon microcontrôleur en est pourvu, avec plus ou moins de précision, 8 bits chez Pic et
Copyright © PoBot
Page 2/6
Capteur d'humidité résistif
10 bits chez Atmel).
La formule de calcul de la tension est donnée dans le petit schéma ci-dessous :
Il s'agit du montage classique de diviseur résistif.
Calcul de résistance
Je ne résiste pas au plaisir de vous faire partager mon bonheur depuis que j'ai trouvé le petit logiciel "Calcul de
résistances [http://www.atlence.com/index.php?page=cr_features]" qui permet à la fois d'identifier la vieille résistance
qui traine dans votre tiroir et aussi de préparer les couleurs des anneaux qu'il va falloir repérer dans les 10 000
résistances de votre tout nouveau sac "lowcost" où toutes les résistances sont mélangées sans aucune indication !
Interface de recherche d'une résistance
Le montage
Voici le circuit installé sur une plaquette d'essai. Quelques fils permettent de relier chacun des points à l'alimentation
et à l'entrée analogique d'une Arduino.
Copyright © PoBot
Page 3/6
Capteur d'humidité résistif
Humidistance en test
Astuce du chef
Utilisez une lampe à incandescence (pas à leds) pour sécher l'air autour de votre capteur :)
Les tests
Test 1 : courbe analogique
Comme le circuit est connecté à une entrée analogique, on peut déjà réutiliser l'oscilloscope minimal et visualiser la
valeur, et voir les variations.
#define ANALOG_IN 0 void setup() { Serial.begin(38400); } void loop() { int val = analogRead(ANALOG_IN);
Serial.print( 0xff, BYTE); Serial.print( (val >> 8) & 0xff, BYTE); Serial.print( val & 0xff, BYTE); }
Et ça fonctionne : on peut mouiller le capteur avec un tissu imbibé d'eau puis sécher le capteur avec une lampe de
bureau à incandescence (celle qui brûle les doigts quand on l'oriente) pour observer des variations.
Premier test
au doigt mouillé, et pour une fois ce n'est pas une expression :)
Copyright © PoBot
Page 4/6
Capteur d'humidité résistif
Second test
On prend des risques en approchant un tissu humidifié du montage.
La valeur sur ces diagrammes est comprise entre 12 (capteur sec) et 360 (capteur mouillé), l'unité étant le millième
de 5 volts, puisque l'entrée analogique converti une tension entre 0 volts et la tension de référence (ici, 5 volts mais
le microcontrôleur possède une entrée "AREF" permettant de changer cette valeur) en une valeur numérique sur 10
bits, soit comprise entre 0 et 1024.
Test 2 : les calculs
Bien sûr, il est plus difficile d'étalonner un capteur d'humidité qu'un capteur de température, car on n'a pas forcément
sous la main un appareil de mesure d'humidité et il est difficile de faire varier l'humidité ambiante (rappelez-vous que
pour le test premier, j'ai humecté directement le capteur).
Donc on va recourir à la formule du diviseur résistif (rappelé ci-dessus et expliqué par Pierre Mayé dans son très utile
et très clair "Aide-mémoire des composants électroniques" chez Dunod éditeur, un peu de pub ne fait pas de mal et
si jamais l'auteur lit ces lignes, qu'il n'hésite pas à nous contacter pour qu'on parle de moteurs électriques, un autre
de ses ouvrages). Les calculs et les courbes sont rassemblés dans le fichier Excel ci-joint, que vous pourrez modifier
à votre guise, notamment en prenant en compte les valeurs de résistance correspondant à votre température
d'utilisation telles que vous les trouverez dans la datasheet fournie au début de cet article.
Feuille de calcul humidistance
pour connaître les valeurs de correspondance entre humidité relative (RH) dans l'air et acquisition d'une tension
analogique.
Le tableau est très simple : on reproduit la table de correspondance fournie par le constructeur, on applique la
formule de calcul de la tension entre les deux résistances RT et RH pour une tension d'entrée et une valeur de RT
connue, et on fait le calcul de conversion linéaire de la tension analogique en une valeur numérique telle que l'opère
le microcontrôleur Atmel 10 bits (d'où le 1024 que vous trouverez dans le tableau).
Tables de conversion humidité/tension/valeur numérique
Donc si tout à l'heure j'ai obtenu 360 dans la lecture du port analogique, c'est que ça correspondait à 47% d'humidité
relative (%HR) à la surface du capteur (logique puisque je ne l'ai pas non plus immergé dans l'eau, car avec la
plaque d'essai où il est fixé ce ne serait pas pratique).
Copyright © PoBot
Page 5/6
Capteur d'humidité résistif
Exploitation des résultats
Bon, avec Excel on peut facilement calculer l'humidité en fonction de la valeur lue. Mais comment l'implémenter dans
un microcontrôleur, sans prendre trop de ressources de calcul ? Regardons la courbe :
Courbe de comparaison humidité/valeur numérique
On peut considérer que la courbe est suffisamment droite pour faire une interpolation linéaire (on prend la valeur
min, la valeur max, on en déduit la pente et on obtient l'humidité relative RH = a*T + b où a et b sont deux
coefficients fixes qu'on ajuste selon la courbe.
Si cela n'est pas suffisant, on peut à la rigueur découper la courbe en 2 tronçons linéaires. Bien sûr l'idéal est de le
faire pour le plus de valeurs possibles, c'est une discrétisation de la courbe qui permet de s'adapter aux ressources
disponibles (mémoire, temps de calcul) dans le microcontrôleur.
En fait, la courbe n'est pas linéaire par hasard, cela tient au choix de la valeur de 47 kOhms pour la résistance RT.
On le constate si on trace la courbe pour des valeurs de 1 kOhms et 200 kOhms :
Courbe trop basse (1k)
Courbe trop haute (200k)
Copyright © PoBot
Page 6/6
Téléchargement