Stap 3: 3 kanaal dimmer/fader: tips voor software
Hoewel het lijkt een beetje ontmoedigend om software voor een 3-kanaals dimmer te ontwikkelen, is het niet zo moeilijk, zolang u houden gericht op de essentie van die de software moet doen:
-Wachten op de zerocross interrupt gebeuren.
-Wacht een ingestelde tijd vóór tiggering de TRIAC
-Trigger de TRIAC
Voor 3 kanalen, dat is niet veel anders, je alleen maar om 3 tijdvariabelen bij te houden. U kunt dat doen met "vertragingen", maar dat is nogal ingewikkeld. U kunt dat doen met "micros" en houd controle de 3 tijdvariabelen tegen de tijd verstreken sinds de zerocross. Ten slotte kunt u het doen met een timer-interrupt.
De manier waarop de timer interrupts normaal gesproken gebruikt worden als u zijn het dimmen van één kanaal, is de interrupt instellen voor het gewenste tijdstip en wanneer de interrupt optreedt om trigger de TRIAC. Met 3 kanalen dat is onmogelijk omdat u niet beschikt over 3 timer interrupts.
Een betere manier is om het instellen van de timer-interrupt optreden voor 78uS. Die verdeelt de periode van een frequentie van 50Hz raster in 128 stappen (Onthoud de re zijn 2 zerocrossings per periode van 50 Hz, dus je hebt in feite een 100 Hz signaal, zo 10mS te doen van het werk in voordat de volgende zerocrossing interrupt. 10mS/128 = 78.125uS). Een waarde van 65, zou goed zijn voor 60Hz.
Dan laat u de timer interrupt service routine instellen een teller die in feite het aantal stappen van de 78uS die zijn verstreken telt sinds de zerocrossing interrupt is opgetreden.
Uw 3 tijdvariabelen – elk voor elk kanaal – worden uitgedrukt in een niveau tussen 0 en 128. In de hoofdlus controle die tegen de teller ingesteld door uw timer onderbreken en wanneer het op het gewenste niveau... ontbranden de overeenkomstige TRIAC.
Als je geen idee hoe hebt u timer interrupts, Controleer dit artikel.