Table des matières:
- Étape 1: conception de circuits
- Étape 2: Prototypage et test
- Étape 3: Code Arduino
- Étape 4: Le test acide
Vidéo: Comment mesurer le facteur de puissance CA à l'aide d'Arduino : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Salut à tous! Il s'agit de mon troisième instructable, j'espère que vous le trouverez informatif:-) Ce sera un instructable sur la façon de faire une mesure de base du facteur de puissance à l'aide d'un Arduino. Avant de commencer, il y a quelques points à garder à l'esprit:
- Cela fonctionnera UNIQUEMENT avec des charges LINÉAIRES (par exemple des moteurs inductifs, des transformateurs, des solénoïdes)
- Cela ne fonctionnera PAS avec les non-linéaires (par exemple, les ampoules CFL, les alimentations à découpage, les LED)
- Je suis ingénieur électricien et très compétent lorsque je travaille avec du potentiel secteur (c'est-à-dire 230V)
Avertissement! Si vous n'êtes pas formé ou ne savez pas comment travailler correctement avec la tension secteur, je vous suggère de ne pas procéder avec cette partie de l'instructable et je vais vous montrer une méthode sûre pour prouver que le circuit fonctionne.
Il s'agit d'une solution matérielle au problème de la mesure du PF dans les charges linéaires. Cela peut également être fait uniquement par le code, y compris la possibilité de mesurer des charges non linéaires, que je vais essayer de couvrir dans un autre instructable.
Pour le bénéfice de tous les débutants qui lisent ceci, le facteur de puissance est le rapport entre la puissance réelle et la puissance apparente et peut être calculé en trouvant le cosinus de l'angle de phase entre la tension d'alimentation et le courant (voir l'image jointe de Google). Ceci est important dans les applications CA, car la "puissance apparente" (volts-ampères) peut être facilement calculée en utilisant la tension multipliée par le courant. Cependant pour obtenir la puissance réelle ou "True Power" (Watts) la puissance apparente doit être multipliée par le facteur de puissance pour faire une vraie mesure de puissance en Watts. Ceci s'applique uniquement aux charges qui ont une composante inductive ou capacitive significative (comme un moteur). Les charges purement résistives telles que les radiateurs électriques ou les ampoules à incandescence ont un facteur de puissance de 1,0 (unité) et donc la puissance réelle et la puissance apparente sont identiques.
Étape 1: conception de circuits
Le facteur de puissance peut être calculé à l'aide d'un oscilloscope, en mesurant la différence de temps entre le signal de tension et le signal de courant. Ceux-ci peuvent être mesurés à n'importe quel point de l'onde tant qu'ils sont échantillonnés au même endroit. Dans ce cas, il était logique de mesurer entre les points de passage par zéro (points de l'onde où la tension croisait l'axe X).
J'ai conçu le circuit suivant dans Multisim. En supposant que le courant et la tension de la charge sont des formes d'onde sinusoïdales pures, le facteur de puissance peut être mesuré. Chaque forme d'onde est introduite dans un détecteur de passage par zéro (parfois appelé convertisseur sinus/onde carrée) qui est simplement un amplificateur opérationnel 741 en mode comparateur où la tension de comparaison est de 0 V. Lorsque l'onde sinusoïdale est dans le cycle négatif, une impulsion CC négative est générée, et lorsque l'onde sinusoïdale est positive, une impulsion CC positive est générée. Les deux ondes carrées sont ensuite comparées à l'aide d'une porte logique OU exclusif (XOR), qui produira une impulsion CC élevée positive uniquement lorsque les ondes carrées ne se chevauchent pas, et 0 V lorsqu'elles se chevauchent. La sortie de la porte XOR est donc la différence de temps (delta t) entre les deux ondes à partir du point où elles croisent le point zéro. Ce signal de différence peut ensuite être chronométré par un microcontrôleur et converti en facteur de puissance à l'aide du calcul suivant (assurez-vous que votre calculatrice scientifique est en degrés et non en radians):
cos(phi) = f * dt * 360
Où:
cos(phi) - le facteur de puissance
f - La fréquence de l'alimentation mesurée
dt - delta t ou différence de temps entre les vagues
360 - une constante utilisée pour donner la réponse en degrés
Dans les images, vous verrez trois traces d'oscilloscope simulées pour le circuit. Les deux signaux d'entrée représentent le courant et la tension de la charge. J'ai donné au deuxième signal une différence de phase de 18 degrés, pour démontrer la théorie. Cela donne un PF d'environ 0,95.
Étape 2: Prototypage et test
Pour la construction de mon prototype, j'ai mis la conception du circuit sur une planche à pain sans soudure. D'après la fiche technique UA741CN et la fiche technique CD4070CN, les deux circuits intégrés fonctionnent avec une alimentation 12-15 Vdc.
Simuler une charge
Vous pouvez simuler une charge en utilisant un générateur de signaux à deux canaux ou un générateur de fonctions. J'ai utilisé cette boîte chinoise bon marché et joyeuse pour produire deux ondes sinusoïdales de 50 Hz à 18 degrés l'une de l'autre et j'ai introduit les signaux dans le circuit. Vous pouvez voir les formes d'onde résultantes sur un oscilloscope. Dans les images ci-dessus, vous pouvez voir les deux ondes carrées qui se chevauchent (sortie de chaque ampli-op), et les trois autres images illustrent la sortie de la porte XOR. Remarquez comment la largeur de l'impulsion de sortie diminue avec la diminution de l'angle de phase. Les exemples ci-dessus montrent 90, 40, 0 degrés.
Étape 3: Code Arduino
Comme mentionné ci-dessus, la sortie du circuit de mesure est la différence de temps entre les deux signaux d'entrée (c'est-à-dire le courant et le signal de tension). Le code arduino utilise "pulseIn" pour mesurer la longueur de l'impulsion de sortie du circuit de mesure en nanosecondes et l'utilise dans la formule PF mentionnée ci-dessus.
Le code commence par définir des constantes, principalement pour rendre le code plus organisé et lisible. Plus important encore, le code C (code arduino) fonctionne en radians et non en degrés, une conversion des radians en degrés est donc nécessaire pour calculer les angles et les PF plus tard. Un radian équivaut à env. 57,29577951 degrés. Le nombre 360 est également stocké et le facteur de multiplication 1x10^-6 pour convertir les nanosecondes en secondes simples. La fréquence est également définie au début, si vous utilisez autre chose que 50 Hz, assurez-vous qu'elle est mise à jour au début du code.
Dans "void loop()", j'ai dit à l'Arduino de calculer l'angle en fonction de la formule PF mentionnée précédemment. Lors de ma première itération de ce code, le code renverrait l'angle et le facteur de puissance corrects, mais entre chaque résultat correct, une valeur faible erronée serait également renvoyée dans la console série. J'ai remarqué que c'était soit toutes les autres lectures, soit toutes les quatre mesures. J'ai placé une instruction "if" dans une boucle "for" pour stocker la valeur maximale de toutes les quatre lectures consécutives. Pour ce faire, il compare le calcul à "angle_max" qui est initialement égal à zéro, et s'il est plus grand, il stocke la nouvelle valeur à l'intérieur de "angle_max". Ceci est répété pour la mesure PF. En faisant cela dans une boucle "for", cela signifie que l'angle et le pf corrects sont toujours renvoyés, mais si l'angle mesuré change (supérieur ou inférieur), lorsque "for" se termine "angle_max" se réinitialise à zéro pour le prochain test, lorsque " void loop()" se répète. Il y a un très bon exemple de comment cela fonctionne sur le site Web Arduino (https://www.arduino.cc/en/Tutorial/Calibration). La deuxième formule "si" empêche simplement toute valeur supérieure à 360 d'être renvoyée en cas de valeur élevée erronée mesurée lorsque l'appareil testé est éteint.
Étape 4: Le test acide
N'essayez pas ce qui suit à moins que vous ne sachiez comment travailler en toute sécurité avec une tension secteur CA. Si vous avez des doutes quant à votre sécurité, essayez de simuler les signaux d'entrée avec un générateur de signaux à deux canaux.
A la demande d'un adepte, j'ai fait une maquette sur Fritzing pour donner une meilleure idée du circuit et du circuit d'échantillonnage/détection (j'ai joint le fichier.fzz et un schéma.png). Le moteur en haut représente le ventilateur de bureau que j'ai utilisé et la bobine d'induction représente le transformateur de courant que j'ai enroulé autour du conducteur Live. J'ai alimenté les circuits intégrés 741 à l'aide de deux packs de batteries 12V disposés pour donner +12 VDC, 0 VDC (terre) et -12 VDC. Le CD4070 peut également être alimenté directement à partir du rail d'alimentation 5V de l'Arduino.
Pour prouver que le concept fonctionne dans la réalité, le circuit a été construit sur une maquette sans soudure. Sur les photos, vous pouvez voir l'arrangement du circuit. J'ai utilisé un ventilateur de bureau comme charge inductive pour tester le concept. Entre l'alimentation secteur 230V et la charge se trouve mon équipement de détection. J'ai un transformateur abaisseur qui transforme 230V directement en 5V pour permettre l'échantillonnage de la forme d'onde de tension. Un transformateur de courant non invasif fixé autour du conducteur sous tension a été utilisé pour échantillonner la forme d'onde du courant (à droite de la résistance revêtue d'aluminium). Notez que vous n'avez pas nécessairement besoin de connaître l'amplitude du courant ou de la tension, juste la forme d'onde de l'ampli-op pour identifier le passage par zéro. Les images ci-dessus montrent les formes d'onde de courant et de tension réelles du ventilateur et de la console série arduino, qui signale un PF de 0,41 et un angle de 65 degrés.
Ce principe de fonctionnement peut être intégré à un moniteur d'énergie fait maison pour effectuer de véritables mesures de puissance. Si vous êtes compétent, vous pouvez essayer de surveiller différentes charges inductives et résistives et de déterminer leur facteur de puissance. Et voilà ! une méthode très simple de mesure du facteur de puissance.
Conseillé:
Mesurer la température et l'humidité à l'aide de DHT11 / DHT22 et Arduino : 4 étapes
Mesurer la température et l'humidité à l'aide de DHT11 / DHT22 et Arduino : Dans ce didacticiel Arduino, nous apprendrons à utiliser le capteur DHT11 ou DHT22 pour mesurer la température et l'humidité avec la carte Arduino
Mesurer la fréquence du secteur à l'aide d'Arduino : 7 étapes (avec photos)
Mesurer la fréquence du secteur à l'aide d'Arduino : le 3 avril, le Premier ministre indien, Shri. Narendra Modi avait appelé les Indiens à éteindre leurs lumières et à allumer une lampe (Diya) à 21h00 le 5 avril pour marquer la lutte de l'Inde contre le virus Corona. Juste après l'annonce, c'était le grand chaos
Comment faire un PCB personnalisé à l'aide d'un graveur laser de faible puissance : 8 étapes (avec photos)
Comment faire un PCB personnalisé à l'aide d'un graveur laser basse consommation : Lorsqu'il s'agit de fabriquer un PCB fait maison, vous pouvez trouver plusieurs méthodes en ligne : de la plus rudimentaire, utilisant uniquement un stylo, à la plus sophistiquée utilisant des imprimantes 3D et d'autres équipements. Et ce tutoriel tombe sur ce dernier cas! Dans ce projet, je sh
Compteur intelligent avec unité de correction automatique du facteur de puissance : 29 étapes
Compteur intelligent avec unité de correction automatique du facteur de puissance : un compteur bidirectionnel avec un gadget de modification automatique du facteur de puissance examine la puissance active et réactive et, en outre, le facteur de puissance de la tension de ligne et la détection du courant de ligne par le capteur de tension et de courant
Comment mesurer simultanément la haute fréquence et le cycle de service à l'aide d'un microcontrôleur : 4 étapes
Comment mesurer simultanément la haute fréquence et le rapport cyclique à l'aide d'un microcontrôleur. : Je sais ce que vous pensez : " Huh ? Il existe de nombreux Instructables sur la façon d'utiliser des microcontrôleurs pour mesurer la fréquence du signal. Bâillement." Mais attendez, il y a une nouveauté dans celle-ci : je décris une méthode de mesure de fréquences bien supérieure à un micro