Aide débutant sur arduino.

Salut, je me suis lancer dans la programmation arduino récemment et j’ai acheté pas mal de capteurs et autres composants pour m’exercer.
En ce moment je test un capteur de gaz grove.

http://wiki.seeedstudio.com/Grove-Multichannel_Gas_Sensor/

j’aimerais donc juste de récupérer la concentration en CO et le NO2 dans l’air.
J’ai donc téléchargé les librairies du capteur et j’ai commencé avec l’exemples (ReadSensorValue_grove)

Puis j’ai essayer de simplifier le plus possible le programe ce qui donne :

#include <Wire.h>
#include "MutichannelGasSensor.h"

void setup()
{
    Serial.begin(115200);  // Démarage du port série
    Serial.println("Allumage OK");
    gas.begin(0x04);  //Indique l'adresse 
    Serial.println(" ");
    delay(900000); //Délai de 15min pour que le capteur chauffe
   
}

void loop()
{
    float c;

    c = gas.measure_CO();
    Serial.print("La concentration de CO est de ");
    Serial.println(" ppm");

    c = gas.measure_NO2();
    Serial.print("La concentration de NO2 est de ");
    Serial.println(" ppm");

    
    delay(1000);
    Serial.println(" ");
}

J’ai compris que #include était une sorte de macro et j’ai aussi compris le setup.

je voulais donc savoir si quelqu’un pouvais m’expliquer le “loop” et plus précisément
“c = gas.measure_CO();”
je pense que ça fonctionne avec #include “MutichannelGasSensor.h”

Aussi pourquoi dans le moniteur série il y a marqué “version = 2” alors que je ne vois pas où c’est écrit dans le code.
Capture — ImgBB (illustration)
Merci d’avance pour les réponses.

La ligne
c = gas.measure_CO();appelle la fonction measure_CO, appliquée à 'gas' qui est un objet que tu as déclaré quelque part au début de ton code. Sauf que là, il n’apparaît pas dans ton code, soit tu l'as oublié soit ça ne marche pas.

En regardant dans les exemples de la bibliothèque MutichannelGasSensor, je vois que c'est normal : 'gas' doit donc être un mot-clé par défaut pour déclarer le capteur en question.

Quant à l'affichage de la version, on voit dans le code de la bibli que begin appelle getVersion qui affiche le texte.

void MutichannelGasSensor::begin(int address)
{
    __version = 1;          // version 1/2
    r0_inited = false;

    Wire.begin();
    i2cAddress = address;
    __version = getVersion();
}

unsigned char MutichannelGasSensor::getVersion()
{
    if(get_addr_dta(CMD_READ_EEPROM, ADDR_IS_SET) == 1126)        // get version 
    {
        __version = 2;
        Serial.println("version = 2");
        return 2;
    }
    
    __version = 1;
    Serial.println("version = 1");
    return 1;
}

Ok donc si je veux le modifier il faut que je le fasse directement sur le fichier MutichannelGasSensor.h ?

Si tu ne veux pas que la version s'affiche tu peux modifier la bibli. C'est un peu hard, mais c'est possible. Tu peux aussi déclarer le capteur avant de faire le Serial.begin : à tester, je ne sais pas si ça va marcher...

void setup()
{
   gas.begin(0x04);  //Indique l'adresse 
   Serial.begin(115200);  // Démarrage du port série
   Serial.println("Allumage OK");
   Serial.println(" ");
   delay(900000); //Délai de 15min pour que le capteur chauffe
}

à tester, je ne sais pas si ça va marcher…

Oui, c’est préférable.