détecter un croisement nul en courant alternatif?

15

J'ai besoin de détecter le passage à zéro pour un démarreur progressif. Il y a longtemps, je l'ai fait en utilisant une résistance de 1 méga ohm directement connectée au microcontrôleur d'un côté et à l'alimentation en courant d'un autre côté. J'ai réussi mais est-ce conseillé? de quelle autre façon je peux le faire à moindre coût et de manière fiable?

iamgopal
la source

Réponses:

14

J'ai conçu des démarreurs progressifs en utilisant les processeurs PIC16C74A / F77. Le passage à zéro peut être délicat si vous devez également travailler dans des environnements bruyants.

Si vous n'avez pas besoin que le processeur soit isolé de la ligne, il n'y a rien de mal avec quelques résistances de haute valeur alimentant une broche CPU. J'utiliserais quelques diodes shottky pour augmenter les diodes de protection interne juste pour une question de robustesse, mais cela fonctionnera bien. Si vous avez besoin d'isolement, utilisez un optoisolateur de sortie à transistor. Faites attention à la vitesse de commutation de l'opto et minimisez le courant du collecteur du transistor pour maximiser la vitesse de commutation.

Cela dit, passons au bruit. Si vous contrôlez autre chose que le chauffage résistif, vous aurez du bruit à affronter, ce qui signifie qu'il est très probable que vous n'ayez pas de bruit de passage à zéro. Ne faites pas l'erreur de débutant en alimentant l'entrée de passage par zéro à une broche d'interruption; cela transformera votre logiciel en une masse fumante de méchanceté lorsque le processeur essaie de faire face à des interruptions de gazillion. (Je parle d'expérience.) Lancer un filtre passe-bas RC ou plus avancé sur la ligne ne fera qu'introduire un déphasage. Si vous pouvez travailler avec ça, tant mieux. Sinon (j'ai dû gérer des systèmes 50/60 et 400 Hz), vous devez essayer d'autres moyens.

Sur ma propre conception, je m'en suis occupé dans le logiciel en sondant la ligne et en faisant essentiellement une routine de vote qui ignorait les transitoires. Le déphasage était dans les limites de ce que je pouvais gérer, il était rapide et il ne s'arrêtait pas même dans un bruit intense. (Testé dans une installation où ils ont retiré les bouchons de filtre d'un four à induction, je n'ai jamais vu une ligne aussi bruyante auparavant!) Si je devais la repenser, je pense que je pourrais essayer une solution externe impliquant un one-shot qui serait " verrouiller "la croix zéro, puis le microcontrôleur l'acquitterait avant que la prochaine interruption puisse être réglée.

Cela dit, je pense que trouver de manière fiable le vrai passage à zéro dans n'importe quelle situation pratique était l'un des éléments les plus délicats de la conception du démarreur progressif. La fermeture de la boucle de contrôle était secondaire, mais c'était surtout juste un réglage. Cela semble être une chose très simple à faire, mais j'ai beaucoup appris sur la différence entre la théorie et la pratique à cette époque. :-)

modifier pour décrire la routine de "vote":

Si je me souviens bien, j'avais une ligne d'E / S qui était haute lorsque la ligne était supérieure à zéro et basse lorsque la ligne était inférieure à zéro. La routine de vote a simplement sondé cette ligne et si 2 des 3 derniers échantillons étaient identiques, j'ai accepté le fait que la ligne avait franchi zéro. C'est très similaire au circuit de vote d'un UART pour détecter la marque et l'espace. L'avantage d'un circuit comme celui-ci est que votre déphasage est fixe (fréquence d'échantillonnage 2 *) et vous pouvez le régler en fonction du type de bruit que vous rencontrez. Je ne me souviens pas spontanément de la rapidité du scrutin, mais si je devais risquer une supposition, je dirais 8 kHz, car ce nombre me vient à l'esprit.

akohlsmith
la source
J'ai utilisé une minuterie pour mesurer la fréquence (en cas de retard, et des tableaux Excel et de recherche) ... mais je pense que j'irai avec un passe-bas et un coupleur opto. merci pour la réponse.
iamgopal
Pouvez-vous élaborer sur la routine de vote? Était-ce juste pour ignorer des échantillons uniques différents des échantillons environnants? À quelle fréquence avez-vous sondé?
starblue
7

Pourquoi ne pas utiliser un optocoupleur? Le SFH6206 de Vishay possède deux LED anti-parallèles, il fonctionne donc sur le cycle complet de la tension secteur. Si la tension d'entrée est suffisamment élevée, le transistor de sortie est passant et le collecteur est à un niveau bas. Autour du passage à zéro, cependant, la tension d'entrée est trop faible pour activer le transistor de sortie et son collecteur sera tiré haut. Vous obtenez donc une impulsion positive à chaque passage à zéro.

stevenvh
la source
Pour plus de détails: ici
Vorac
2

Cette note d'application de Microchip à la page 3 suggère une résistance de 20 MOhms.

Je pense que vous pouvez utiliser le MOC3061 qui a un détecteur de passage à zéro.

Mais il existe de nombreux modèles d'appareils comme vous pouvez le voir ici .

Daniel Grillo
la source
merci. une puce est toujours la bienvenue au lieu de résistances et de bouchons.
iamgopal
ΩΩ
1

J'ai eu du succès avec la chaîne de traitement suivante:

  1. Réseau de diviseurs de résistances (utilisant des résistances de valeur MOhm) et optocoupleur pour coupler et isoler le signal de la source
  2. Un comparateur d'amplificateur opérationnel pour acheminer le signal de l'optocoupleur vers une plage de tension connue
  3. Un filtre passe-bande à plusieurs étages extrêmement étanche utilisant des amplificateurs opérationnels (peut également nécessiter un certain gain ici pour tenir compte de la perte de filtre)
  4. Un circuit déphaseur opamp pour ajuster tout décalage de phase introduit dans le filtrage (+/- 360 degrés est une bonne tolérance pour la conception, le déphasage souhaité peut être calibré avec un pot et un oscilloscope)
  5. Un comparateur de plus pour obtenir le signal vers une sortie numérique propre pour un microcontrôleur
Joel B
la source
0

Il y a probablement BEAUCOUP de façons de le faire ... mais si je le faisais, j'utiliserais un petit transformateur d'isolement au cas où. Il n'est jamais recommandé de connecter directement le secteur à un microcontrôleur, même à travers une grande résistance.

Je suppose que vos options sont d'utiliser un grand diviseur de résistance dans un micro ou un petit transformateur qui pousse les tensions du niveau du secteur à la portée de votre micro. Bien sûr, vous pouvez également utiliser une combinaison des deux.

Si vous ne voulez pas utiliser de microcontrôleur, vous pouvez toujours utiliser un comparateur et faire tester la tension contre 0v. L'impulsion du comparateur sera courte, mais il existe également des moyens de gérer cela.

Duvet
la source
l'utilisation d'un transformateur d'isolement induit-elle un retard?
iamgopal
Non. (Quinze caractères)
Connor Wolf
4
Si vous allez comparer à une tension, comparez à quelques% de la ligne complète, pas à zéro. Il vous éloigne de la plupart des bruits que vous rencontrerez et le déphasage est fixe et donc facile à prendre en compte.
akohlsmith
bon appel Andrew :-)
Fuzz
@andrew,: D belle idée !!
iamgopal