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) :
Or, je trouve des valeurs exorbitantes, problème d'unité, d'équation, de compréhension?Code://################################## /* 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"); } }
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é !
-----