• Dans cet exemple, la fonction MoyenneSignalNombre(PinMesure, DureeLecturePourMoyenne)  renvoie la moyenne du signal sur un pin, après avoir effectué des mesures successives pendant la durée DureeLecturePourMoyenne (exprimée en millisecondes)

    Exemple : MoyenneSignalNombre(A0, 500) renvoie la moyenne du signal sur le pin A0 après avoir réalisé des mesures pendant 500 ms.

    Dans cet exemple, environ 4140 mesures sont réalisées en 500 ms !

     

    void setup() {
       pinMode(A0, INPUT);
       Serial.begin(9600);
    }
    //-----------------------------------------------------------------------------
    void loop() {
       Serial.print(millis() / 1000.0);
       Serial.print(" ");
       Serial.println(MoyenneSignalDuree(A0, 500)); // Broche de lecture et durée en ms
    }
    //-----------------------------------------------------------------------------
    float MoyenneSignalDuree (int PinMesure, int DureeLecturePourMoyenne) {
       int NombreLecture = 0;
       float Signal = 0.0;
       int TempsFinal = millis() + DureeLecturePourMoyenne;
       do {
          Signal = Signal + analogRead(PinMesure);
          NombreLecture = NombreLecture + 1;
       }
       while (millis() < TempsFinal );
       //Serial.print(NombreLecture); Serial.print(" -> ");
       return (Signal / NombreLecture);
    }