Étape 4: Arduino contrôlée variateur de lumière : le logiciel
Comme indiqué dans la page précédente théorique, le logiciel est assez facile.
Si vous voulez développer votre propre logiciel, tout ce que vous devez faire est :
Attendez que la zerocrossing
Attendre un moment précis entre 0 et 9090 microsecondes (9090 = 10.000-10)
Allumez yr TRIAC
Attendez environ 10us (c’est le temps vous devez vous assurer que le TRIAC est sur)
mettre hors tension yr TRIAC (en fait, vous enlevez seulement le triggersignal pour le TRIAC, le TRIAC reste allumé jusqu'à la prochaine zerocrossing)
J’esquisse brièvement le flux du programme que j’ai utilisé :
(Assurez-vous de que lire la « NOTE » ci-dessous)
Le signal de X-ing zéro génère une interruption.
À 50Hz qui interrompent est chaque 10 ms ou 10.000uS
À 60Hz qui interrompent est chaque ms 8,333 ou 8333 nous
La routine d’interruption s’allume puis le Triac après un temps spécifique. Cette époque est situe dans la boucle principale du programme.
Car le programme varie selon la gradation de Full off en 128 étapes (c’est juste un choix qui a été fait, pourrait être de 100 étapes aussi bien), à 50 Hz, nous devons les étapes pour être 75 uS et à 60Hz, ils devront être 65 uS
Cela fonctionne comme suit :
La fonction d’interruption « zero_crosss_int » est appelée chaque fois qu’un passage à zéro est détecté, ce qui est 100times/seconde. C' est la seule fonction consiste à définir le moment où le Triac est allumé à la valeur de la variable « gradation »
Dans la boucle principale du programme, la valeur réelle de cette variable est définie
http://www.inmojo.com http://www.inmojo.com
A propos du logiciel : théoriquement dans la boucle, vous pouvez laisser variable « je » commencer par « 0 ». Toutefois, étant donné que le moment de l’interruption est un peu une approximation à l’aide de '0' (pleinement activée) pourrait bousiller le moment un peu. va de même pour 128 (Full off) bien que cela semble être moins critique. Météo « 5 » ou peut-être « 1 » est la limite pour configurer votre est une question d’essayer, votre gamme pouvant aller de p. ex. 2 à 126 au lieu de 0-128. Si quelqu'un a une façon plus précise à mettre en place le moment de l’interruption, je serais heureux de l’entendre.
Bien sûr, qu'il n’est pas nécessaire de travailler avec les interruptions. Il est également possible de garder du scrutin à zéro l’axe de passage pour aller à 0.
Bien que le logiciel fonctionne avec une interruption pour déterminer le moment de zéro crosssing, il n’est toujours pas tellement efficace parce que le temps (dimtime) il faut attendre après le zéro crossing avant le triac est tiré est littéralement passé « en attente » à zéro la Croix interrompre la fonction.
Il serait plus efficace pour régler un interrupt timer pour tirer au bon moment, donc en attendant l’arduino peut faire autre chose. Un tel programme peut être trouvé à l’étape
REMARQUE
Je voudrais juste rappeler la déclaration ci-dessus : ce programme est une démonstration de comment vous pouvez contrôler le variateur. Il n’est pas et le programme efficace car il passe le plus clair de son temps d’attente. Il n’est donc pas le plus approprié pour le combiner avec d’autres tâches du processeur. Si vous avez besoin d’une utilisation plus efficace du programme une minuterie au lieu de retard