'Resolu ' mesure de courant et tension

OK donc votre code et votre arduino fonctionnent. pas de soucis.

Dans la vraie vie en courant continue une intensité de 0A vous donnera un courant proche de Vcc / 2 donc vous serez toujours au dessus de ce seuil dans la mesure de AnalogRead() (échantilloné) et donc la formule mathématique de l'intensité ne passera pas négative.

(68tjs dira que dans la vraie vie va falloir tenir compte des petites approximations et il aura raison)

Le principe de ce produit est simple : il est prévu pour le continu comme pour l'alternatif.
Comme on évite au maximum d'utiliser une double tension +5V et -5V, le concepteur du produit a prévu un décalage sur la sortie égal à Vcc/2 et j'y tiens absolument Vcc/2 pas 2,5V --> si Vcc = 4,8V la sortie sera égale à 2,4 V et avec 2.5 la valeur de ton courant sera fausse !

Donc cette valeur de Vcc/2 ne représente en rien la valeur du courant.
Avant toute manipulation du résultat il faut VIRER cette composante continue de Vcc/2.
Sinon tu compliques inutilement comme en ce moment.

Je te rappelle que je t'ai dit qu'en fonctionnement avec un courant continu si tu fais passer le courant dans un sens la mesure vraie ( après déduction du Vcc/2) aura un sens et si tu inverse le câblage tu obtiendra la même valeur absolue mais avec le signe opposé.

je veux bien comprendre ta variation de vcc/2

mais cela n explique pas pourquoi j obtient 13.5 ampere a vcc et non 5 amperes.....

Je n'ai pas regardé mais en faisant confiance à 68tjs --> La formule qui donne l'intensité pour un x05B (Imax = 5A sensibilité = 185 mV par ampère)

Vs = 2,5 + 0,185 * I   (I en ampères)

soit

I = (Vs - 2,5) / 0,185

MAIS comme votre capteur est calibré pour ne pas mesurer plus de 5A, ça veut donc dire que Vs ne sera jamais égal à 5V mais au mieux il sera à environ 3.425V ce qui donne bien les 5A souhaités -> analogRead() sera environ à 700.

votre "simulation" sort des conditions normales de fonctionnement du capteur et donc la formule est hors intervalle de validité

Tiens une bonne remarque et j'ajoute c'est quelle version de capteur exactement ?

Parce qu'avec les renseignements donnés au compte goutte je n'arrive plus à m'y retrouver.
Dans le code j'ai aperçu une version 5A et dans le texte il me semble avoir lu une version 20 A

RAZ --> Remise à Zéro pour ceux qui ne comprennent pas le français.
Si je reprends en tenant compte de la remarque judicieuse de J-M-L

La datasheet est prévue pour 3 versions du circuit
x05B Imax = 5A sensibilité = 185 mV par ampère
x20A Imax = 20A sensibilité 100 mV par ampère
x30A Imax = 30A sensibilité = 66 mV par ampère

Soit une excursion maximale par version avec un Vcc théorique égal à 5,00 V

Version Vmax si sens positif Vmin si sens négatif
x05B 2,5V + 0,185x5 = 3,425V 2,5V - 0,185 x 5 = 1,575V
x20A 2,5V + 0,100x 20 = 4,5V 2,5 V -0,100 x 20 = 0,5 V
x30A 2,5V + 0,066x 30 = 4,48 V 2,5V + 0,066x 30 = 0,52V

Conclusion : ta méthode de placer à 0 et à Vcc n'est pas bonne.
Franchement je n'avais compris ce que tu voulais faire, je pensais que tu voulais seulement vérifier les entrées de ta carte.
Si tu veux étalonner il faut utiliser une charge réelle, utiliser un multimètre en fonction ampèremètre et comparer les résultats.
Si tu veux simuler tu peux utiliser un potentiomètre branché entre la masse et le Vcc et dont tu règles la tension de sortie avec un voltmètre.

Mais as-tu seulement un multimètre, je me pose la question.

Question qui j'espère obtiendra une réponse : le code c'est toi qui l'a pondu ou tu l'a récupéré ?

J-M-L:
Je n'ai pas regardé mais en faisant confiance à 68tjs --> La formule qui donne l'intensité pour un x05B (Imax = 5A sensibilité = 185 mV par ampère)

Vs = 2,5 + 0,185 * I   (I en ampères)

soit

I = (Vs - 2,5) / 0,185

MAIS comme votre capteur est calibré pour ne pas mesurer plus de 5A, ça veut donc dire que Vs ne sera jamais égal à 5V mais au mieux il sera à environ 3.425V ce qui donne bien les 5A souhaités -> analogRead() sera environ à 700.

votre "simulation" sort des conditions normales de fonctionnement du capteur et donc la formule est hors intervalle de validité

pour respecter les ordre des priorite mathematique Vs = 2,5 +( 0,185 * I)   (I en ampères)
avec butee haute a vs = 3.425
cela deviens de suite plus comprehensif

Pascal17740:
pour respecter les ordre des priorite mathematique Vs = 2,5 +( 0,185 * I)  (I en ampères)
avec butee haute a vs = 3.425
cela deviens de suite plus comprehensif

que dire... la multiplication étant prioritaire en notation mathématiques sur l'addition, mon expression est entièrement correcte.... désolé...

il n'y a que vous qui ne comprenez pas depuis le début j'ai l'impression... ou alors on était dans un flou artistique :slight_smile: moi aussi je pensais que vous ne vouliez que vérifier si les entrées analogiques de votre carte étaient en bon état... (cf mon post plus haut où je dis "votre code et votre arduino fonctionnent. pas de soucis")

68tjs:
Tiens une bonne remarque et j'ajoute c'est quelle version de capteur exactement ?

Parce qu'avec les renseignements donnés au compte goutte je n'arrive plus à m'y retrouver.
Dans le code j'ai aperçu une version 5A et dans le texte il me semble avoir lu une version 20 A

RAZ --> Remise à Zéro pour ceux qui ne comprennent pas le français.
Si je reprends en tenant compte de la remarque judicieuse de J-M-L
Soit une excursion maximale par version avec un Vcc théorique égal à 5,00 V

Version Vmax si sens positif Vmin si sens négatif
x05B 2,5V + 0,185x5 = 3,425V 2,5V - 0,185 x 5 = 1,575V
x20A 2,5V + 0,100x 20 = 4,5V 2,5 V -0,100 x 20 = 0,5 V
x30A 2,5V + 0,066x 30 = 4,48 V 2,5V + 0,066x 30 = 0,52V

Conclusion : ta méthode de placer à 0 et à Vcc n'est pas bonne.
Franchement je n'avais compris ce que tu voulais faire, je pensais que tu voulais seulement vérifier les entrées de ta carte.
Si tu veux étalonner il faut utiliser une charge réelle, utiliser un multimètre en fonction ampèremètre et comparer les résultats.
Si tu veux simuler tu peux utiliser un potentiomètre branché entre la masse et le Vcc et dont tu règles la tension de sortie avec un voltmètre.

Mais as-tu seulement un multimètre, je me pose la question.

Question qui j'espère obtiendra une réponse : le code c'est toi qui l'a pondu ou tu l'a récupéré ?

desole ne sachant pas que l on atteind jamais les 5 volts en sorti je me suis focaliser sur cette valeur et non la butee de 3.425 v pour le capteur 5 amperes
j ai preciser que je voulais comprendre la formule mathematique et que le capteur n'etait pas brancher sur la uno et c est maintenant que l on me dit que la tension maximun de sortie du capteur est de 3.425 v pour 5 A.
Oui j ai bien parler de capteur 5 et 20 amperes mais cela etait avant de faire des test simple sur Uno avec la formule pour le acs712 5 A avant de poursuivre avec celui de 20 A et lorsque tout aurait ete concluant et l inclure dans mon prjet de domotique . Pour une fois que je fais des tests les plus simplicime possible pour verifier une partie de code sans aucune autre interraction jai bien utiliser un potar de 10 meghom pour faie varier la valeur d entree sur ma pin analogique et aussi un multimtre pour en controler la tension.

bon - l'important c'est que tout est compris maintenant :slight_smile:

bonne soirée

Et continue d'être aussi clair que cette fois et on pourra avancer plus vite.
Je répète ma question : est-ce toi qui a pondu le code avec le moyenage ou l'as tu trouvé sur internet ?

Pascal17740:
............... Pour une fois que je fais des tests les plus simplicime possible pour verifier une partie de code sans aucune autre interraction jai bien utiliser un potar de 10 meghom pour faie varier la valeur d entree sur ma pin analogique et aussi un multimtre pour en controler la tension.

Je trouve cette valeur bien trop élevée ...

Serge .D

Exact, cela m'avais échappé.
La datasheet du microcontroleur indique que la source analogique à mesurer ne doit pas avoir une impédance interne supérieure à 1 megohm.

Avec un potar 10 megohms et le curseur au point milieu on obtient une impédance de sortie de 5 megohms.

68tjs:
...
Avec un potar 10 megohms et le curseur au point milieu on obtient une impédance de sortie de 5 megohms.

Ah bon ! Moi j'aurais dit 2.5 MOhm ...

Cordialement.

Pierre

Avec un potar 10 megohms et le curseur au point milieu on obtient une impédance de sortie de 5 megohms.

ChPr:
Ah bon ! Moi j'aurais dit 2.5 MOhm ...

Cordialement.

Pierre

Je dirais :

  • Sans voltmètre 5 MOhm
  • Avec voltmètre, moins que cela, tout dépends de l'impédance du voltmètre....

Serge .D

aligote:
Je dirais :

  • Sans voltmètre 5 MOhm
  • potentiomètre = 10 MOhm,
  • curseur au milieur -> deux résistances de 5 MOhm
  • l'une allant au +5V et l'autre au GND
  • l'impédance de la source est quasiment nulle devant ces valeurs

On a donc deux résistances de 5 MOhm en parallèle, ce qui nous fait ... 2.5 MOhm

Cordialement.

Pierre

ChPr:

  • potentiomètre = 10 MOhm,
  • curseur au milieur -> deux résistances de 5 MOhm
  • l'une allant au +5V et l'autre au GND
  • l'impédance de la source est quasiment nulle devant ces valeurs

On a donc deux résistances de 5 MOhm en parallèle, ce qui nous fait ... 2.5 MOhm

Cordialement.

Pierre

Tout à fait exact ! lecture approximative et trop rapide de ma part. Gloup ! et ReGloup !
D'autant que pour les autres positions du potentiomètre c'est moins.
...... mais c'est quand même trop.

Serge .D

Punition : Recopier 100 fois le théorème de Thévenin

J'ajoute ma dose personnelle de "gloups".
Voilà ce que c'est de répondre trop vite.

Pour ne pas avoir totalement tort (quelle mauvaise foi ! ) la limite étant de 1 Mohms il serait préférable de ne pas dépasser 470 k.
Et 47k (ou 51k) feront parfaitement l'affaire.

Un peu d'explication :
L'ADC fonctionne selon le principe de charge de capacités. Si la résistance de source est trop élevée les différentes capacités internes de l'ADC du micro n'auront pas le temps de se charger et le résultat sera faux.

68tjs:
J'ajoute ma dose personnelle de "gloups".
Voilà ce que c'est de répondre trop vite.

Pour ne pas avoir totalement tort (quelle mauvaise foi ! ) la limite étant de 1 Mohms il serait préférable de ne pas dépasser 470 k.
Et 47k (ou 51k) feront parfaitement l'affaire.

Un peu d'explication :
L'ADC fonctionne selon le principe de charge de capacités. Si la résistance de source est trop élevée les différentes capacités internes de l'ADC du micro n'auront pas le temps de se charger et le résultat sera faux.

Participation au message d'un frère Gloupeur :

Pour ma part j'évite les valeurs d'impédances de sortie élevées, car en plus de l'erreur systématique de mesure, à haute impédance le signal risque d'être davantage pollué par des parasites électriques qui rendent les résultats fluctuants.

serge .D

Bonjour n etant pas informaticien de nature j ai trouver la formule de base sur de la doc ecrite par le pere de l arduino ou un de ses peres , dont je ne rappel plus le Nom au moments ou je saisie c'est quelques lignes .Pour le potensiometre alias potart , j ai fait une boulette :confused: il s'agissait d un 100k
entre vcc et gnd .
Merci a tous pour votre participation.