Déjà, assure-toi que le 5Vcc envoyé à ta carte (le capteur avec l'ACS712) est bien propre, ensuite, il y a bien un filtre
sur la broche 6 mais à mon avis la valeur du condensateur est bien trop petite pour lisser les fluctuations d'un servo.
Je pense qu'il serait plus simple de résoudre ça par programme, mais ça dépend du temps disponible sur ton arduino.
Je n'ai pas d’oscilloscope pour vérifier si le 5V est propre
Le temps disponible que tu parles, c'est pour savoir si on peut mettre une delay?
Pour en revenir sur la remarque de Forthman, je pense qu'il partait du principe que les variations de courant observées sont dues au fait que comme le servomoteur est asservi en position en fonction de la correction à apporter au moteur pour maintenir la position asservie le moteur va plus ou moins moins consommé...
Essaye de tenir en équilibre en marchant sur une corde, a moins que tu sois super doué, en gros tu vas osciller légèrement un peu à droite et à gauche autour de la position d'équilibre.
C'est un peu ce qu'il se passe lors de l'asservissement en position de ton moteur et ça peut se traduire par des variations plus ou moins élevée de courants.
Dans tous les cas il serait intéressant de remettre les valeurs à l'échel en mA pour voir si ça corresponde à une grande variation ou pas.
Supposant que 0V c'est 0A et 5V c'est 5A
une variation de valeur analogique lue de 50 à 100 => ça nous donne une variation en courant 250 à 500mA ...
Sinon pour " Lisser les valeurs" par "programme " il suffit de faire une moyenne glissante sur les 5 ou 10 dernières valeurs par exemples...
Dans un des exemples sur Ebay, il y a :
"As I wrote, output voltage is proportional to input current. The value that links the two measurements is sensitivity (you can find it on the datasheet) which – for 5A model – has a typical value of 185mV/A. The sensor can measure positive and negative currents (range -5A…5A), so if input current is 0, output value is 2.5V.
We’re going to read output value with one of the analog inputs of Arduino and its analogRead() function. That function outputs a value between 0 (0V in input) and 1023 (5V in input) that is 0,0049V for each increment.
The formula you need to convert units from analogRead() to Ampere is:"
Donc je pourrais comme tu le dis, faire une moyenne des valeurs. Moyenne sur un temps donné ou moyenne simplement sur les dernières valeurs?