Pages: [1]   Go Down
Author Topic: pulseIn , mersure de frequence 9Khz .  (Read 507 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour , dans un projet visant a mesurer l'humidité relative de l'air , j'utilise un module HTF3223 de chez humirel
http://pdf1.alldatasheet.fr/datasheet-pdf/view/95387/HUMIREL/HTF3223.html

Ce module à en sortie (en fonction de l'humidité) une fréquence de 8K a 9Khz (de 0% a 100%Hr)

Mis sur une plaque d’essais , j'alimente le module et mesure grâce à mon super multimètre une fréquence de 8930Hz qui correspond a 45% d'humidité , cela est correcte j'ai effectivement 45% d'humidité relative a la maison.

Toujours sur une plaque d'essais , je regarde le signal grâce a un oscilloscope (pc-carte son) le signal , 8930 Hz , tout va bien.

La ou cela se complique c'est pour la mesure de fréquence par arduino.
effectivement arduino mesure une fréquence de 10200 Hz , la ou multimètre et oscilloscope pc mesure 8930Hz.
et donc la mesure est > pas bonne. smiley-eek
dans le doute , j'utilise arduino mega , puis arduino nano , je me suis dit peut être que un arduino à quelque souci sa marchera mieux sur l'autre arduino ,
NON , méga et nano me font les même mesure.

voici le code : http://g7nbp.blogspot.fr/2011/09/arduino-htf3223-humidity-sensor.html
Code:
/*

Humidity sensor test for HTF3223 humidity sensor

By G7NBP - Chris Williams

V0.0.1 28th - May 2011

The inexpensive HTF3223 sensor (ebay etc) provides good accuracy relative humidity
sensor readings (typically +/- 5%) and has a simple linear output.

Its output however is in the form of a variable frequency proportionate to the humidity.

The formula for convertion is RH = (9740/Freq)/18

Although it is possible to use the frequency library to collect the frequency, this
is somewhat overkill as the freq is not expected to be above 10KHz.

Instead the pulseIn function is used and frequency averaged over 4096 counts.



connect H pin on  HTF3223 to digital pin 7

*/

const int hpin = 7;  // the sensor pin

 
void setup() {
  Serial.begin(9600);
  pinMode(hpin, INPUT);

}

void loop() {
  long sensorValue = getFrequency(hpin);    // get the raw sensor frequency
  long humidity = convertToRH(sensorValue); // convert it to RH%
  Serial.print("S:");
  Serial.print(sensorValue, DEC);
  Serial.print(" H:");
  Serial.print(humidity, DEC);
  Serial.println("%");
  delay(3000);
 
}

long getFrequency(int pin){
  #define SAMPLES 4096
  long freq = 0;
  for(unsigned int j=0; j<SAMPLES; j++) freq+= 500000/pulseIn(pin, HIGH, 250000);
  return freq / SAMPLES;
}


long convertToRH(long sensorValue){
  long rh = (9740-sensorValue)/18;
  return rh;
}


J’aurai bien tester le code avec mon Générateur basse fréquence mais il est a 300Km ...

est ce que la mesure de fréquence inspire quelqu’un ? je suis preneur de conseil.
Merci a tous , cordialement , julien.
« Last Edit: February 18, 2013, 04:39:34 pm by ppzikos » Logged

Rennes
Offline Offline
Sr. Member
****
Karma: 1
Posts: 318
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bizarre.
Je ferais plutôt un truc genre sommer la période sur tous les samples puis retourner samples/periode pour avoir la fréquence moyenne
Logged


Pages: [1]   Go Up
Jump to: