const byte potPin = A0;
float valeurLissee;
float coefficientDescente = 0.01; // on amortit fort
float coefficientMontee = 0.95; // on amortit peu
float filtreAsymetrique(float valeur, float valeurInstantannee, float coefMin, float coefMax) {
float coef = (valeurInstantannee > valeur) ? coefMax : coefMin;
return (1.0 - coef) * valeur + coef * valeurInstantannee;
}
void setup () {
Serial.begin (115200);
}
void loop () {
valeurLissee = filtreAsymetrique(valeurLissee, analogRead (potPin), coefficientDescente, coefficientMontee);
Serial.println (valeurLissee);
delay(20);
}