Capteur de gaz Groove MQ9

Matériel:

1) Carte Arduino

2)Shield Grove

3)Capteur de gaz Grove MQ9

Branchements:

Le capteur est branché au port A0 du shield.

Configuration simple:

S’il ne faut chercher que la détection des gazes, le programme suivant donne le voltage du capteur, qui changera s’il détecte un gaz.

void setup () { 
    SerialUSB.begin (9600); 
} 

void loop () { 
    float capteur_volt; 
    float sensorValue; 

    sensorValue = analogRead (A0); 
    sensor_volt = sensorValue / 1024 * 5.0; 

    SerialUSB.print ("sensor_volt ="); 
    SerialUSB.print (sensor_volt); 
    SerialUSB.println ("V"); 
    retard (1000); 
}

Configuration avancée:

Si vous cherchez la mesure des gazes plutôt que la détection, il faut d’abord exécuter le programme suivant:

void setup() {
    SerialUSB.begin(9600);
}

void loop() {
    float sensor_volt;
    float RS_air; //  Get the value of RS via in a clear air
    float R0;  // Get the value of R0 via in LPG
    float sensorValue;

    /*--- Get a average data by testing 100 times ---*/
    for(int x = 0 ; x < 100 ; x++)
    {
        sensorValue = sensorValue + analogRead(A0);
    }
    sensorValue = sensorValue/100.0;
    /*-----------------------------------------------*/

    sensor_volt = sensorValue/1024*5.0;
    RS_air = (5.0-sensor_volt)/sensor_volt; // omit *RL
    R0 = RS_air/9.9; // The ratio of RS/R0 is 9.9 in LPG gas from Graph (Found using WebPlotDigitizer)

    SerialUSB.print("sensor_volt = ");
    SerialUSB.print(sensor_volt);
    SerialUSB.print(" V");

    SerialUSB.print("R0 = ");
    SerialUSB.println(R0);
    delay(1000);

}

Attention: les valeurs obtenues peuvent varier selon la température ou l’humidité.

Une fois que le programme est sur la carte, ouvrez le moniteur arduino. Attendez que la valeur de « R0 » se stabilise puis notez-la.

Maintenant, il faut exécuter le programme suivant en ayant au préalable remplacé le « R0 » par la valeur notée précédemment.

void setup() {
    SerialUSB.begin(9600);
}

void loop() {

    float sensor_volt;
    float RS_gas; // Get value of RS in a GAS
    float ratio; // Get ratio RS_GAS/RS_air
    int sensorValue = analogRead(A0);
    sensor_volt=(float)sensorValue/1024*5.0;
    RS_gas = (5.0-sensor_volt)/sensor_volt; // omit *RL

          /*-Replace the name "R0" with the value of R0 in the demo of First Test -*/
    ratio = RS_gas/R0;  // ratio = RS/R0
          /*-----------------------------------------------------------------------*/

    SerialUSB.print("sensor_volt = ");
    SerialUSB.print(sensor_volt);
    SerialUSB.print("RS_ratio = ");
    SerialUSB.println(RS_gas);
    SerialUSB.print("Rs/R0 = ");
    SerialUSB.print(ratio);

    SerialUSB.print("\n\n");

    delay(1000);

}

Ce programme vous retourne une valeur « RS/R0 » qui permet de mesurer les gazes détectables par le capteur grove. Le graphique suivant indique la signification des mesures:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *