Calibration Courant SCT-013-000 100A

Bonjour,

Je m’excuse si la réponse parait évidente ou simpliste pour certain, mais je n’arrive pas à trouver la bonne calibration pour mes capteurs. La calibration est une branche à part de l’électronique tant elle est dense, mais je m’y connais que très peu dans ce domaine.

J’ai à disposition un capteur de courant SCT-013-000 100A, voici ces caractéristiques:

Input Current: 0~100A AC

Output Mode: 0~50mA

Non-linearity: ±3%

Turn Ratio: 100A:0.05A

Resistance Grade: Grade B

Work Temperature: -25℃ ~ ﹢70℃

Dielectric Strength(between shell and output): 1000V AC/1min 5mA

Leading Wire in Length: 1m

Open Size: 13mm x 13mm

Et voici ma partie du code (que j’ai commenté mais sans trop de conviction) :

//##################################
/* Fonction de lecture des courants */
/* Le capteur CT SCT-013-000 délivre en sortie un courant alternatif moyen de 50 mA (pour 100 A en entrée) --> un courant alternatif pic à pic de : (50 mA x √2) x 2 = 141,4 mA.
   Avec une résistance de 33 Ω pour transformer le courant en tension, la valeur maximale obtenue est : 141,4 mA x 33 Ω = 4,67 V --> 100 A = 4,67 V
   Avec un convertisseur 5 V - 10 bits, Arduino converti la tension récue en un nombre compris entre 0 et 1023.
   Comme dans notre cas, calcul ci-dessus, la tension maximale est de 4.67 V, la tension convertie sera un nombre compris entre 0 et 956 
   La valeur du courant dans la fonction est obtenu par un produit en croix avec comme relation : 100 A = 4,67 V = 956 --> 100 A = 956
   NB : Ce calcul pourrait être modifié lors du montage réel. 
*/ 
void lireMesCrt()
{
  /* Déclaration des variables locales */
  byte cpt, pin;
  String affichOrdi;
  
  for (cpt = 0; cpt < 1 ; cpt++)                    // Parcourir un à un les capteurs
  {
    pin = cpt + 1;
    MesCrt[cpt] = float(analogRead(A0));             // Lire la valeur du courant convertie en nombre
    MesCrt[cpt] = (MesCrt[cpt] * 100)/956;              // Convertir le nombre lu en valeur de courant équivalente
    
    /* Affichage Ordinateur */
    affichOrdi = "Capteur Courant-" + cpt; 
    affichOrdi = affichOrdi + " : " + MesCrt[cpt];  
    Serial.print(affichOrdi);                   
    Serial.println(" A");
  }
}

Or, je trouve des valeurs exorbitantes, problème d’unité, d’équation, de compréhension?

Merci d’avance pour votre aide précieuse !

P.S: j’ai oublié un élément très important, j’utilise une capacité de 10microF, ainsi que 2 résistances de 10kOhms, et une résistance de 33Ohms, je joins le branchement utilisé !

Des idées ? toujours bloqué. Le courant n'a même pas l'air d'être mesuré.... Les valeurs varient entre 0.01A et 0.80A

Peut tu nous expliquer comment fonctionne cette sonde de courant.

Elle est prévue pour mesurer du courant alternatif 50 Hz, mais que délivre-t-elle en sortie ?
Du courant continu ou du courant alternatif ?

Tu fais débiter le transformateur de courant dans une résistance de 330 ohms quelle tension penses tu obtenir ?
Si le transformateur de courant délivre un courant sinusoïdal la tension le sera aussi.
Je serai surpris que le microcontrôleur qui n'accepte pas de tension négative apprécie.

Quel traitement sur la mesure fait tu dans ton code (en français car je n'ai aucune envie de le déchiffrer à partir du code).

De ce que je sais, cela délivre un courant alternatif d’environ 50mA (sinon comment le savoir?)

Je n’utilise pas de 330 ohms

Je ne pense pas tout saisir, je suis un novice dans le domaine veuillez m’excusez…

Merci,

P.S: voici le branchement utilisé en pièce-jointe

On va procéder par ordre :

  1. S'il te plaît ne joint pas le "beau dessin" Fritzing : c'est un dessin de câblage, ce n'est pas un schéma électrique.
    Le schéma électrique est le seul sur lequel on travaille et je n'ai aucune intention de me le taper à partir du dessin de câblage.

Fritzing sait le faire --> tu clique là où il faut pour obtenir un schéma non plus avec des photos mais avec des symboles normalisés.

  1. Un transformateur ne fonctionne qu'avec des signaux variables ( sinusoïdaux, impulsion) c'est pour cela que je subodore que, si c'est un simple transformateur, la sortie sera une image de l'entrée donc dans ton cas une sinusoïde.

  2. Il faudra transformer la sinusoïde en un signal continu :

  • obtention d'une tension sinusoïdale d'amplitude suffisante
  • redressement simple alternance (1 diode) ou double alternance (pont de 4 diodes)
  • filtrage pour isoler la tension moyenne

ou
4) changer de capteur et en prendre un "avec déjà de l'intelligence à l'intérieur" et qui délivrera directement un signal continu.

AMHU avis si tu ne te sens pas vaillant à mettre les mains dans le cambouis de l'électronique analogique tu devrais changer de capteur.

D'accord merci de tes réponses,

Donc si j'essaye de mesurer la réponse de l'ADC en utilisant un sèche-cheveux je risque de tout griller ?
Connais-tu capteur de ce type ?

keaume:
Donc si j’essaye de mesurer la réponse de l’ADC en utilisant un sèche-cheveux je risque de tout griller ?

Rien compris.

keaume:
Connais-tu capteur de ce type ?

Non les courants supérieurs à 1A ce n’est pas ma tasse de thé.

Compléments :
Je viens de faire quelques recherches documentaire sur le redressement. J’en ai trouvé des intéressantes, surtout pour les dessins qui sont parlants. Question formules ne prendre que le résultat final, la démonstration n’est aucunement utile.

Redresseur — Wikipédia → surtout la fin du document où on parle du filtrage.

et ce qui me semble être un petit bijou que je ne connaissais pas et qui remet le redressement en selle :

Remarque :
Le “Serial.print()” de l’électronique analogique s’appelle oscilloscope.

Bonjour a tous,

va voir sur le site https://openenergymonitor.org/ et tu auras toutes les infos et les exemples que tu cherches pour utiliser ce type de transformateur de courant.

Bonne lecture

Jacques

Bonjour,

J'ai déjà consulté ce site de long en large. J'ai effecté un test avec un sèche-cheveux de 1600Watts et les valeurs de l'analogRead sont bons (entre 480 et 540). Mais j'ai comme un "bruit" de 50W constant quand il n'y a rien

Bonjour,

Je reviens sur cette histoire de bruit de 50W. Est-ce que c'est parce que quand il y a rien il lit uniquement la première valeur ? Et la première valeur est la valeur peak ce qui expliquerait les 50W ?

Bonjour,

c'est le principe de la mesure qui fait cela : comme l'ADC de l'AVR ne supporte pas de tension négative, on ajoute une tension continue de 2.5v de manière à ce que le signal à mesurer, initialement à -2.5v ... 2.5v (par la résistance de 100R) soit élevée à 0v ... 5v

en absence de signal, ce que l'arduino mesure ce n'est donc pas 0v, mais environ 2.5v. Dans ton programme tu enlèves ces 2.5v pour obtenir la tension instantanée aux bornes du capteur, cad. 0v

quelle est la grandeur de cette erreur de 50W ?
ton capteur est prévu pour 100A fois 230v, vis à vis desquels l'erreur de 50W représente ... 0.2%
(on fait difficilement mieux avec des résistances de 5% ...)

si ton appli exige qu'une conso == 0 entraîne une mesure = 0, il te faudra mettre en œuvre un redresseur sans seuil

Bonjour et merci de votre réponse. Juste pour information j'ai une résistance de 33Ohms et non 100.
Mais c'est vrai que entre 20 et 40W, cela ne représente pas une erreur très importante. Je devrais peut-etre baisser mon 100A si je veux mesurer des valeurs aussi petite.

Qu'en pensez-vous ?

Juste pour information j'ai une résistance de 33Ohms et non 100

Bonjour,
si on ne peut plus taquiner un peu ... :
" Juste pour information sur ton schéma c'est une 100R "

Je devrais peut-etre baisser mon 100A si je veux mesurer des valeurs aussi petite

la précision en pâtirait, l'idéal serait d'avoir un transfo adapté au courant que tu veux mesurer
cela ne résoudrait par ailleurs pas le problème de l'offset, qui est lié à la méthode de mesure