Affichage de la tension en sortie analogique

Bonjour,
j'utilise mon Arduino pour piloter un moteur a courant continue, via un IBT4, et je veut afficher la tension en sortie sur mon Arduino en utilisant Le module ACS712.
Quand je prend la mesure au départ ça m'affiche les bonne valeur sur le multimètre ainsi que sur mon terminal d'Arduino, le souci et quand mon moteur n'avance pas pour cause de blocage mécanique, les valeur afficher sur le multimètre et différente de ce afficher sur mon Arduino (2.7v sur le multimètre et 2.5V sur Arduino).
pouvez vous me donner une explication, parce que je veut faire en sorte que le courant coupe quand je suis a cette valeur.
merci pour vos réponse.

Salut.
Il faudrait en dire plus :

  • quel module ACS712 (5A, 20A, 30A) ?
  • quel courant moteur ?

Lorsque l'on mesure une tension avec un ARDUINO, la précision dépend en particulier de la tension de référence choisie : voir AnalogReference().

Remarque préliminaire : ce qui ne fait qu'un écart de 8 %.
Le multimètre est un instrument de mesure, l'arduino n'en est pas un.
Pour avoir le droit de s'appeler "instrument de mesure" un simple convertisseur analogique numérique n'est pas suffisant.

Remarque 2.
Si j'en crois la datasheet de l'ACS712, quand le courant est nul, la tension de sortie est égale à Vcc/2 soit 2,5 V si Vcc = 5 V.
Quelle est la valeur de Vcc ?
Si Vcc est bien 5 V, comme recommandé par Allegro, cela signifie que le courant est faible, voire nul. Ce qui paraît anormal pour un moteur à courant continu classique[1] bloqué.
[1] : c'est-à-dire avec collecteur et balais.
Est-ce bien ce type de moteur ?

Quelle est la valeur de la résistance du bobinage ? -> R
Quelle est la tension d'alimentation du moteur ? -->V
Moteur stoppé, le courant devrait être I =V/R.

Quelles sont les conditions de la mesure "au départ" ?
Courant mesuré dans les deux cas ?

salut,
merci pour votre réponse

Le module ACS712 (30A).

courant alternatif continue de 12V.
je fait une simulation pour piloter le marche pied du camping-car, pour le faire rentrer et le faire sortir, (avant/arrière) a l'aide de deux bouton, je veut récupérer la tension MAX pour pouvoir commander sa fin de course.

-moteur au repos je récupère 2,5V et sur l'arduino 2,5V

-le moteur marche avant 2,7V mais sur l'arduino, quand c'est en augmentation il augmente aussi mais quand il est arriver a la fin de course il revient a 2,5V.

  • le moteur marche arrière 2,2V ,mais sur l'arduino, quand c'est en diminution il diminue aussi mais quand il arrive a la fin de course il revient a 2,5V.

je ne sais pas si je suis claire.

C'est normal : c'est le fonctionnement normal du circuit intégré.
La tension de sortie en absence de courant est égale à Vcc/2.

Euh.....

C'est du courant alternatif ou du courant continu ?

Bonjour;

oui un écart je pense qui n'est pas du a la mesure ( j'ai fait un test en générant des tension avec le générateur de tension et y'avait pas cet écart dans la mesure avec le multimètre (entre 0V et 5V).

Je pense que oui c'est ça et j'utilise aussi un Module pilote de moteur IBT-4, semi-conducteur de réfrigération 50A.

je vais voir les caracteristique du moteur ça m'a echapper

Il s’alimente avec 12V.

  • moteur au repos je récupère 2,5V et sur l'arduino 2,5V

  • le moteur marche avant 2,7V mais sur l'arduino, quand c'est en augmentation il augmente aussi mais quand il est arriver a la fin de course il revient a 2,5V.

  • le moteur marche arrière 2,2V ,mais sur l'arduino, quand c'est en diminution il diminue aussi mais quand il arrive a la fin de course il revient a 2,5V.
    j'espère que je suis claire.

désolé c'est un courant continu.

Tu parles de tension avec un dispositif destiné à mesurer des courants.
Il faut convertir en courant.

Si tu as lu la datasheet du CI ACS712 tu as vu que 2,5 V signifie aucun courant.
Tu écris mesure au voltmètre moteur bloqué : 2,7 V dans un sens et 2,2 V dans l'autre sens, soit + 0,2 V dans un sens et - 0,3 V dans l'autre sens.
Cela voudrait dire que le moteur bloqué consomme plus quand il tournait initialement dans un sens que dans l'autre sens !
Ce n'est pas cohérent.
Il faut absolument la conversion en ampères.

La priorité n'est pas de se bloquer sur les différences voltmètre/CAN_arduino.
Tu donnes l'impression de mettre la charrue avant les bœufs en comparant deux valeurs sans avoir vérifié avant qu'au minimum une est cohérente.

Si la tension revient à 2.5V, cela veut dire ZERO courant. Étrange tout de même. C'est comme s'il y avait une protection quelque part, ou que l'alimentation se coupe.

oui c'est ce que je ne comprend pas, une protection je ne sais pas, mais l'alimentation ne se coupe pas.

de quel dispositif tu parle là?

oui mais par contre quand je suis au max dans un sens il revient a 2.5 même si y'a toujours du courant.

c'est normal c'est le module moteur qui fait ça, l'Arduino ne supporte pas une tension de 12 V

Tu pourrais nous faire un schéma du montage?

L'ampèremètre est bien en série avec l'ACS712?

Du module ACS712.
C'est quand même bien un capteur de courant.

Premières lignes de sa datasheet :

Je commence à être inquiet sur la compréhension que tu as de ce produit.
La datasheet :
https://www.allegromicro.com/~/media/files/datasheets/acs712-datasheet.ashx

Ce n'est pas une explication, ce n'est qu'une affirmation sans explication.
Déjà la moindre des corrections aurait été de donner la référence du "module moteur".
Les liens vers le matériel, les schémas, le code sont des requis demandés dans le message épinglé en tête de forum.

En ce moment, nous sommes obligés de t'arracher les renseignements un par un.
En général, si le demandeur ne fait pas un effort pour donner tous les renseignements, cette situation ne dure pas longtemps.

Appliques les recommandations du message précité et immédiatement les échanges seront plus constructifs.

@lounis9254 ne donne que des résultats en volts, j'ai l'impression qu'il ne sait pas que ce produit est fait pour se comporter en ampèremètre.

Pas vraiment. L'essentiel est de retrancher 2.5V à la mesure obtenue et multiplier par un facteur correspondant à la sensibilité de l'ACS712 (66mV/A pour le 30A).
Mais pour l'instant 2.5V (ZERO ampère) avec le moteur en butée semble vraiment anormal.

si oui c'est un capteur courant, je fait une conversion pour avoir la valeur sur l'Arduino
float SensorRead = analogRead(A1)*(5.0 / 1023.0);
c'est ça qui me donne la tension.

Je vais changer mon capteur courant, pour voir si se problème vient de là, au début je me suis dit peut être l'entrée Analogique de l'Arduino donne une valeur spécifique, mais après avoir tester avec juste le GBF ça réagie bien.
note bien que quand j'arrête aussi le moteur avec mes main avant la fin de course ça fait aussi la même chose

merci je vais essayer de mettre une meilleur explication, Je suis nouveau sur le forum désolé.

La réponse suivante de @lounis9254 confirme mes craintes :

@lounis9254
Ce n'est pas cette conversion qu'il faut, cette conversion est celle du CAN du microcontroleur.

Ce qu'il faut, c'est celle de l'ACS712.
L'ACS 712 existe en plusieurs gammes de courant : 5 A, 20 A, 30 A

Ce qu'il faut pour valider les mesures c'est :

  1. convertir les volts en ampères et pour cela il faut connaître quelle version d'ACS712 tu as : modèle 5 A, 20 A ou 30 A --> la question t'as déjà été posée et tu n'as pas répondu.
  2. mesurer la résistance du bobinage
  3. connaissant la tension d'alimentation du moteur, calculer le courant moteur bloqué Imax = U/R
  4. valider la cohérence de Imax calculé avec les mesures.

Si tu ne peux pas savoir ce que tu as commandé, il faut mettre le multimètre en position ampèremètre et comparer avec le calcul fait en exploitant la tension de sortie de l'ACS712.
Tu pourras en déduire si le modèle est 5, 20 ou 30 A.

Note importante :
Une recherche "ACS712 arduino" te donnera des exemples de traitement pour exploiter ce composant.

C'est un 30A.