Bonjour à tous ,
je voudrais lire la valeur d'une sonde d'humectation qui est sur 3 fils :
un fil pour la masse ---> ok
un fil blanc pour l'excitation un signal de 5v appliqué pendant au moins 10ms ----> ok
un fil rouge pour la mesure ,et là tout ce que je sais c'est :
Any datalogger which can produce a 2.5 to 5V excitation with
approximately 10 millisecond duration and read a voltlevel signal with 12-bit or better resolution should be compatible
pour l'instant j'arrive bien à lire une valeur resistive de ma sonde entre deux fils mais qui n'est pas tres precise et je voudrais bien recuperer cette valeur numerique qui est prevue....
oui c'est ce que pensais au début
mais le problème est que je devrais lire une tension entre 250 mv et 1v en gros
et que j'excite ou non mon capteur par le fil blanc ......cest pareil !!
c'est la que je coince
int pulse = 1; // fil blanc connectée à la broche numérique n° 1
int capteurH = A0; //renomme la broche A0 en capteurH pour fil rouge
int ValeurcapteurH = 0; // definie la variable d'Humidité
void setup()
{
Serial.begin(9600);
pinMode(pulse, OUTPUT); // met la broche utilisée pour la pulse en SORTIE
pinMode(capteurH, INPUT); // met la broche utilisée pour la pulse en SORTIE
}
void loop()
{
digitalWrite(pulse,HIGH); // pulse pendant 100ms
delay(100);
ValeurcapteurH = analogRead(capteurH);
Serial.print("Humectation = " ); //affichage sur ordi
Serial.println(ValeurcapteurH);
//digitalWrite(pulse, LOW); // fin de pulse
delay(2000); // pause 5 secondes avant nouvelle mesure
}
oui en effet je viens de me mettre sur la broche 2 et c'est mieux
la mesure à l'air de se faire correctement avec une pulse de 10ms
c'est juste le delta de mesure entre la valeur sèche et completement humide qui ne m'a pas l'air très grande
je varie entre une valeur de 100 et 250
je pense que ne dois pas delivrer assez de courant avec l'arduino....
bazounga:
oui en effet je viens de me mettre sur la broche 2 et c'est mieux
la mesure à l'air de se faire correctement avec une pulse de 10ms
c'est juste le delta de mesure entre la valeur sèche et completement humide qui ne m'a pas l'air très grande
je varie entre une valeur de 100 et 250
je pense que ne dois pas delivrer assez de courant avec l'arduino....
c'est surement du au fait que tu travaille avec le convertisseur AD sous 5 volt de reference
le pas etant alors de 5/1024 = 0.0049V
si ta valeur min renvoyée est de 100 cela signifie que ton capteur ne renvoi pas plus bas que 0.49V et plus haut avec 250 que 1.22V.
si tu veux ameliorer la resolution, il te faut une Aref externe au plus proche de 1.22 V
c'est dommage tu es un peu au dessus de la ref interne de 1.1V
une idée en passant , je mettrais en serie qq diode sur le fil d'excitation histoire de faire chute le V excitation et de renrer sous la barre du 1.1V en retour
oui c'est ça merci
je viens de ré ecrire mon code et je me retrouve avec des valeurs en mV du meme ordre de grandeur qu'avec l'équipement de mesure original ....
par contre je veux bien que tu me ré explique ton histoire de tension de ref
int pulse = 2; // fil blanc connectée à la broche numérique n° 1
int capteurH = A0; //renomme la broche A0 en capteurH pour fil rouge
int ValeurcapteurH = 0; // definie la variable d'Humidité
int Vcor;
void setup()
{
Serial.begin(9600);
pinMode(pulse, OUTPUT); // met la broche utilisée pour la pulse en SORTIE
pinMode(capteurH, INPUT); // met la broche utilisée pour la pulse en SORTIE
}
void loop()
{
digitalWrite(pulse,HIGH); // pulse pendant 10ms
delay(10);
ValeurcapteurH = analogRead(capteurH);
Vcor = map(ValeurcapteurH, 0, 1023, 0, 5000);
Serial.print("Humectation = " ); //affichage sur ordi
Serial.print(Vcor);
Serial.println(" mV");
digitalWrite(pulse, LOW); // fin de pulse
delay(60000); // pause 60 secondes avant nouvelle mesure
}
bazounga:
par contre je veux bien que tu me ré explique ton histoire de tension de ref
déjà lire ça
pour obtenir la meilleure resolution sur la gamme , il faut dans l'ideal que la rerence de tension du convertisseur AD soit egale au Vout max du capteur.
Là dans ton cas tu excite ton capteur avec du 5V et il te sort en max 1.2 V ~
perso je ferais un test en mettant en serie sur la ligne d'excitation 1,2,3 ... diodes basiques qui vont apporter une chute de tension de 0.7V~ , l'interet est d'inserer le nombre de diodes juste suffisant pour passer le Vout max sous la barre du 1.1V et d'utiliser l'AREF interne par analogReference(INTERNAL)
ta resolution deviendra alors 1.1/1024
si tu descend le V d'excitation à ~ 3V tu passe sous la barre du 1.1V
voir specifs