Détecteur de gaz MQ-2 (besoin d'aide)

Bonjour à tous.
J'ai acheté ce genre de capteur de gaz (à base de MQ-2) sur le web :


Tout les spcecs (datasheet, code, câblage...) sont visible dans les 2 liens suivants :
http://netdrive.envell.com/pic/ebay/SEN-000004/SEN-000004_Datasheet.pdf
http://netdrive.envell.com/pic/ebay/SEN-000004/MQ-2.pdf
La platine est somme toute assez simple, un capteur MQ-2, un potentiomètre, une résistance SMD de 4.7Kohms et un connecteur.
Il y a des points qui sont encore un peut flou, donc si quelqu'un peut m'éclairer.
Car j'aimerais que ce code fonctionne, il affiche les valeurs en ppm pour 3 sortes de gaz (même si le le LPG je m'en tape un peut).
Ok, alors :

#define         MQ_PIN                       (0)     //define which analog input channel you are going to use

Ok, c'est la valeur de la pin d'entrée analogique sur laquelle la platine est branchée.

#define         RL_VALUE                     (5)     //define the load resistance on the board, in kilo ohms

C'est la valeur de la résistance qui ce trouve sur la platine !?
Chez moi c'est 4.7Kohms, je remplace 5 par 4.7

#define         RO_CLEAN_AIR_FACTOR          (9.83)  //RO_CLEAR_AIR_FACTOR=(Sensor resistance in clean air)/RO,
                                                     //which is derived from the chart in datasheet

Là je sais pas quoi mettre ?

#define         CALIBARAION_SAMPLE_TIMES     (50)    //define how many samples you are going to take in the calibration phase
#define         CALIBRATION_SAMPLE_INTERVAL  (500)   //define the time interal(in milisecond) between each samples in the
                                                     //cablibration phase
#define         READ_SAMPLE_INTERVAL         (50)    //define how many samples you are going to take in normal operation
#define         READ_SAMPLE_TIMES            (5)     //define the time interal(in milisecond) between each samples in 
                                                     //normal operation

C'est les temporisations pour les mesures, j'ai pas besoin de les changer normalement !?

#define         GAS_LPG                      (0)
#define         GAS_CO                       (1)
#define         GAS_SMOKE                    (2)

C'est des constantes définies pour les différents types de gaz, à ne pas changer donc !?

float           LPGCurve[3]  =  {2.3,0.21,-0.47};   //two points are taken from the curve. 
                                                    //with these two points, a line is formed which is "approximately equivalent"
                                                    //to the original curve. 
                                                    //data format:{ x, y, slope}; point1: (lg200, 0.21), point2: (lg10000, -0.59) 
float           COCurve[3]  =  {2.3,0.72,-0.34};    //two points are taken from the curve. 
                                                    //with these two points, a line is formed which is "approximately equivalent" 
                                                    //to the original curve.
                                                    //data format:{ x, y, slope}; point1: (lg200, 0.72), point2: (lg10000,  0.15) 
float           SmokeCurve[3] ={2.3,0.53,-0.44};    //two points are taken from the curve. 
                                                    //with these two points, a line is formed which is "approximately equivalent" 
                                                    //to the original curve.
                                                    //data format:{ x, y, slope}; point1: (lg200, 0.53), point2: (lg10000,  -0.22)                                                     
float           Ro           =  10;                 //Ro is initialized to 10 kilo ohms

Là, j'ai rien compris :slight_smile:
Je dois y toucher ?

Et le potentiomètre, il sert à quoi, je dois le régler comment ?

Quand je teste j'ai toujours 0ppm, y compris pour le smoke quand je lui balance de la fumé :frowning:

Merci de m'aider.

Résistance 4,7k ou 5K:
The protection resistor (4.7Kohms) and the adjustable (0-50Kohms) are in serial which forms a load resistor RL (4.7-54.7Kohms).
Réponse : ni l'un ni l'autre. 4,7k est une résistance talon anti-connerie. Si on avait le schéma complet on pourrait sans doute voir que le "potentiomètre" est en fait monté en "résistance variable" et que si on met cette résistance à zéro on doit court-circuiter une sortie. Donc à priori je laisserais la valeur de l'exemple.

A-tu vu ceci dans la partie C :
Preheating Time Over 24 hours.

Tu laisses chauffer le capteur combien de temps avant de faire la mesure ?

Pour le reste je n'ai pas regardé.

68tjs:
Résistance 4,7k ou 5K:
The protection resistor (4.7Kohms) and the adjustable (0-50Kohms) are in serial which forms a load resistor RL (4.7-54.7Kohms).
Réponse : ni l'un ni l'autre. 4,7k est une résistance talon anti-connerie. Si on avait le schéma complet on pourrait sans doute voir que le "potentiomètre" est en fait monté en "résistance variable" et que si on met cette résistance à zéro on doit court-circuiter une sortie. Donc à priori je laisserais la valeur de l'exemple.

A-tu vu ceci dans la partie C :
Preheating Time Over 24 hours.

Tu laisses chauffer le capteur combien de temps avant de faire la mesure ?

Pour le reste je n'ai pas regardé.

Ok, super, merci pour ces explications.
En fait, je dirais aussi comme toi que le potentiomètre et la résistance sont en série pour avoir comme décrit entre 4.7 et 54.7Kohms.
C'est ce que j'obtiens quand je mesure à l’ohmmètre entre VCC et la sortie.
Je dois régler sur combien ?
J'ai mis 5K pour être comme dans le code (soit pas tout à fait au minimum).

En effet, dans la section C ils parlent d'un temps de préchauffe de 24 heures minimum :astonished:
C'est beaucoup pour faire des tests, je veux bien qu'une fois en place, 24 heures c'est pas énorme (encore que, c'est là que tu risques d'avoir un incendie sans qu'il soit détecté, la poisse XD)
Car j'ai bien senti qu'il chauffe un peut.
Mais ça doit juste être pour la précision, non ?, ça n'explique pas pourquoi je suis toujours à 0 !?

Mais ça doit juste être pour la précision, non ?

Je n'en sais fichtrement rien, je ne connais pas ces capteurs.
J'ai répondu sur le point de la valeur de la résistance et j'ai fait remarquer que quand cela ne fonctionne pas il faut bien vérifier qu'on utilise le composant comme son fournisseur le préconise.
Il lui faut peut-être un temps de mise en route un peu long et après ce temps initial il peut très bien réagir vite.

Une bonne chose serait de faire une recherche sur internet pour avoir des explications sur le fonctionnement physique des capteurs de gaz. Si j'avais à en utiliser c'est ce que je ferai mais je ne compte pas en utiliser.........

tout ces capteurs "gaz" comporte un element chauffant (heater) qui consomme ~< 1W, tu l'alimente comment en 5V ? par le 5V de l'arduino ?

mq2 ou mq3 voir ici un cablage et code simple

datasheet MQ2

Artouste:
tout ces capteurs "gaz" comporte un element chauffant (heater) qui consomme ~< 1W, tu l'alimente comment en 5V ? par le 5V de l'arduino ?

mq2 ou mq3 voir ici un cablage et code simple
AirQualityMQ135 \ Learning \ Wiring

datasheet MQ2
http://www.pololu.com/file/download/MQ2.pdf?file_id=0J309

Oui, le carte ou ce trouve le capteur est alimentée en 5V depuis la carte Arduino (Mega).
Le câblage semble correspondre, à part que à la place d'une seul résistance de 10K, ils sont mis une de 4.7K avec un potentiomètre en série.