Bonjour à tous
J'ai voulu expérimenter le module ZMPT101B.
Le scketch calibrage ne fonctionnant pas, j'ai relevé le schéma de mon module. Il ne correspond pas aux schémas
Schema.pdf (69,6 Ko)
que j'ai pu voir sur le Web.
Le calibrage ne fonctionne pas car le pot n'est pas dans la boucle de contre réaction.
Le réglage est simple, dans le sketch de mesure vous mettez
#define SENSITIVITY 500.0f
et vous réglez le pot pour que l'arduino affiche la valeur de la tension Main injectée.
Le calibrage se fait par le potentiomètre R4 de 100k.
Si on applique le théorème de Thévenin le potentiomètre est équivalent à une résistance variable.
Cette résistance variable se retrouve en série avec R6 (10k) et est bien dans la boucle de contre-réaction du gain de IC1_B.
Le gain de IC1_B n'est pas de 10 comme indiqué, il est variable.
Exemple : Si le curseur du potentiomètre est réglé au milieu, vu de la sortie curseur, on verra deux résistances de 100k/2 en parallèle, c'est-à-dire que l'on verra 25K qui s'ajouteront aux 10 k de R6.
Le gain de IC1_B sera donc G = - 100/(25+10) = 2,85.
Pour tout autre réglage, il faut refaire le calcul de la résistance équivalente du potentiomètre.
Le calcul détaillé demain si tu le veux, ce soir, je n'ai pas le temps.
Quel sketch? Sur plusieurs sites j'ai vu le même programme que celui ci-dessous au chapitre " AC Voltage Sensor Sample Program"
Bonjour, Merci pour votre réponse, lors de mes études j'ai appris que par convention le gain d'AOP montage inverseur est pour ICIB -R9/R6 et pour ICIA -R1/R2.
Certes votre calcul est juste mais il faut préciser que ceci n'est vrai que si le générateur alimentant le potentiomètre est un générateur de tension avec Rint=0.
Par principe, en cas de dépannage d'un tel module, on ne connait pas la position de R4 (on ne la change pas). Cela n’empêche pas de vérifier le bon fonctionnement de IC1 avec un voltmètre ou un decibelmètre (ou un oscilloscope) si le signal d'entrée à une fréquence trop grande pour le voltmètre. En cas de doute du réglage de R4, perso je le positionne à 50% car un bon concepteur choisit la valeur de R4 pour que le réglage optimal soit au alentour de 50%.
De plus ce montage a un défaut car la tension de polarisation (2V5) n'est pas filtrée, il n'y adonc pas de masse dynamique sur e+.
Tout ceci étant dis le terme calibrage n'est pas utilisé correctement le potentiomètre R4 permet "d'étalonner" le module pour que l'Arduino indique la tension d'entrée "Main".
Ce Sketch permet de mesurer la tension secteur 0.6%
/*
ZMPT101B - AC Voltage sensor
Calculate Voltage
modified on 7 Sep 2020
by Mohammad Reza Akbari @ Electropeak
Home
*/
// Declare variables to store sensor values and results
double sensorValue1 = 0;
double sensorValue2 = 0;
int crosscount = 0;
int climb_flag = 0;
int val[100]; // Array to store sensor values
int max_v = 0;
double VmaxD = 0; // Max voltage
double VeffD = 0; // Effective voltage
double Veff = 0; // Resulting voltage
// Setup function: Initializes the program
void setup() {
Serial.begin(74880);
}
void loop() {
for (int i = 0; i < 100; i++)//
{
sensorValue1 = analogRead(A0); // Valeur tension pin A0 (0->1024 , 0-> 5V)
if (analogRead(A0) > 511)// l'echantillon mesuré est supérieur à 2V5
{
val[i] = sensorValue1; // Tableau des valeurs supérieures à 511 (2V5)
} else//
{
val[i] = 0; // Otherwise, set the value to 0
}
delay(1); // Short delay for stability
}
// recherche de la valeur max du tableau
max_v = 0;
for (int i = 0; i < 100; i++)//
{
if (val[i] > max_v)//
{
max_v = val[i]; // Update max_v if a higher value is found
}
val[i] = 0; // Reset the array element to 0
}
// Calcul de la tension maximale
if (max_v != 0)//
{
VmaxD = max_v; // Set VmaxD to the maximum sensor value
VeffD = VmaxD / sqrt(2); // Calculate effective voltage (RMS) from VmaxD
Veff = (((VeffD - 420.76) / -90.24) * -210.2) + 210.2; // Apply calibration and scaling to Veff
} else//
{
Veff = 0; // If no maximum value, set Veff to 0
}
// Print the calculated voltage to the serial monitor
Serial.print("Voltage : ");
Serial.println(Veff);
VmaxD = 0; // Reset VmaxD for the next iteration
delay(100); // Delay for 100 milliseconds before the next loop
}
Tout à fait, mais c'est le cas des AOP : impédance d'entrée infinie, impédance de sortie nulle et gain infini.
Oui, mais quand il y a plusieurs résistances mises en série, il ne faut pas se limiter à celle qui est la plus proche physiquement de l'AOP. Il faut prendre la résistance réellement équivalente.
Circonstance aggravante dans ton utilisation, la résistance qui vient en série avec la 10k change énormément de valeur → de 0 à 25 k.
Paramètre alpha : (position du curseur)
0 ≤ alpha ≤ 1
Curseur à la masse alpha = 0
Curseur à la sortie de l'ampli alpha = 1
La tension de sortie au niveau du curseur est égale à
Vs= alpha * Vsortie_ic1_a
R = Ra + Rb = alpha * R + (1-alpha) * R
Résistance équivalente : 1/Requi = 1/Ra + 1/Rb
Requi = alpha * (1 - alpha)
Quand alpha = 0 Requi = 0
Quand alpha = 1 Requi = 0l
Quand alpha = 0,5 la même résistance vaut 25 k
Entre (0k + 10 k) et (25 k + 10 k) il y a une différence qu'on ne peut négliger.
Entrée de IC1_B et sortie en fonction de la valeur de alpha.
J'ai considérer IC1_A comme un générateur parfait sortant 1 V et d'impédance de sortie nulle.
Ce n'est pas une simulation, c'est un calcul mathématique.
La courbe de la sortie est loin d'être une droite .
Parfaitement, et un bon concepteur, s'il n'a pas besoin de toute l'excursion du curseur place des résistances talons haute et basse en série avec le potentiomètre pour éviter d'aller là où c'est inutile et par voie indirecte améliorer la sensibilité et la précision du réglage, ce qui est toujours appréciable.
Certes la masse "dynamique", j'emploie le terme "virtuelle" mais c'est la même chose, peut être améliorée avec un condensateur de filtrage, mais elle bien présente malgré cette absence de condensateur.
Tout le monde ne doit pas suivre : maintenant il nous parle de masse virtuelle ?
Ce qui suit n'est valable qu'avec des signaux sinusoïdaux et une électronique analogique.
Est considéré comme masse virtuelle tout point dont la tension est parfaitement constante. C'est-à-dire qu'en ce point il peut y avoir une tension purement continue, mais il ne doit pas y avoir de tension alternative et c'est le cas (théoriquement) en e+ de IC1_B.
Pour avoir moi-même longtemps mélangé les termes "étalonnage" et "calibration", je dis, il y a confusion.
- Première opération : on étalonne, à savoir que l'on note la différence entre la mesure avec le résultat obtenu avec un étalon : un appareil de mesure de précision supérieure à celle de l'appareil que l'on règle.
Le résultat d'un étalonnage est une courbe d'écarts.
On ne touche pas aux réglages de l'appareil en test. - Ensuite on calibre, c'est-à-dire que l'on utilise les réglages pour que la mesure fournie par l'appareil en réglage entre dans la fourchette de précision de ses spécifications.
Le résultat d'une calibration n'est pas un résultat exact, c'est un résultat qui entre dans une fourchette.
Le résultat d'un étalonnage peut donner un résultat exact à condition que l'on dispose de la feuille d'étalonnage pour corriger la mesure lue.
merci pour toutes ces précisions, on sent le professionnel
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.