Contrôle moteur AC type "universel" : problème de parasites?


bonjour à tous,
dans le cadre de mon projet de programmateur de lave linge (http://arduino.cc/forum/index.php/topic,62096.0.html), je travaille sur la partie délicate du contrôle de la vitesse du moteur.
sur un moteur universel, il s'agit d'utiliser un triac pour n'alimenter le moteur que pendant la fin de chaque demi-période du secteur à 50hz.
le principe est donc :
- détecter le passage à zéro du secteur (100 fois par seconde)
- temporiser (court si on veut augmenter la vitesse, plus long si on veut ralentir). la tempo est inférieure à la durée d'une demi-période (10ms). 0->moteur à 100%, 10ms->moteur à 0%
- activer le triac jusqu'au prochain passage à zéro.
- recommencer 100 fois par seconde.

c'est un fonctionnement assez classique et on trouve pas mal d'exemples sur le net. mon schéma exact est attaché au message.

mon problème est le suivant :
j'utilise un h11aa1 pour la détection du passage à zéro du secteur, relié à la pin 2 et attaché à l'interruption 0.
quand l'interruption est levée, il faut lancer la tempo pendant laquelle le triac ne conduira pas. cela doit être assez précis.
en théorie, on appelle la routine d'interruption 100 fois par seconde.  cela est vrai quand je n'active pas le triac. par contre, quand celui-ci est activé juste après la tempo, on rentre beaucoup plus souvent dans l'interruption (peut-être 200 fois). je ne sais pas exactement à quel instant. j'ai essayé de filtrer sans trop de succès. pour l'instant le plus efficace est la capa directement entre la pin de l'arduino et le 5v mais ça n'est pas terrible. on arrive toujours à 115,120 interuptions par seconde.
j'ai du mal à comprendre la raison du problème et comment le résoudre.
si vous avez des explications et des solutions, je suis preneur!

merci à vous,
eti


il est fort possible que l'activation du triac génère un glitch sur le secteur qui redéclenche l'optocoupleur.
le moteur aussi va probablement générer du bruit sur le secteur qui peut redéclencher l'optocoupleur.

il est courant quand on cherche se synchroniser sur un évènement périodique d'utiliser une "fenêtre" de (dé)validation qui permet de filtrer les glitches.
l'idée est de désactiver l'interruption entre le moment où elle est détectée et une tempo d'environ 9 ms par exemple. ainsi tu ne prendras pas de parasite jusqu'au moment où tu ré-autorises l'interruption.
plus tu peux gérer précisément la durée de la fenêtre, plus tu pourra la caler proche de 10ms.

au pire, si tu peux peux pas désactiver l'interruption, dans la routine d'interruption elle même tu regarde le temps qui s'est écoulé depuis la dernière interruption "utile". tant que ce temps est inférieur à 9..9,5ms, tu ignores l'interruption.


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Contrôle moteur AC type "universel" : problème de parasites?


arduino

Comments

Popular posts from this blog

Thread: PKI Client 5.00 install (for eToken Pro)

ATmega2560-Arduino Pin Mapping

Crossfader Arduino Tutorial