'Resolu ' mesure de courant et tension

J-M-L:
Non car il y a déjà un .049 et la variable average qui fait basculer tout le calcul en flottant ...

C'est vrai. Je croyais que la valeur la plus extérieure (1000) donnait le ton. Mais bon, je serai toujours surpris par les subtilités du C.

Pour autant, j'ai essayé votre formule avec un simple Serial.println(average) et en remplaçant la lecture analogique par 1023 : on affiche bien une valeur ... qui plus est, croit avec le temps et tend vers l'infini..

Votre problème vient de la lecture analogique.

Par ailleurs, votre formule décrit le comportement d'un intégrateur.

Pour qu'elle se comporte comme un filtre passe-bas, il faut l'écrire ce cette façon :

average = A * average + B * nouvelle_lecture

avec A + B = 1. Par exemple, A = 0.9 et B = 0.1.

Plus le rapport A / B sera grand, plus le filtrage sera efficace mais plus le résultat sera long à obtenir.

Cordialement.

Pierre