Dimmer - Push Button.ino

Embed Size (px)

DESCRIPTION

Programação para um projeto de Dimmer utilizando arduino, TRIAC e opto acopladores.

Citation preview

//Pinos de Entrada/Saidaint sync = 22; //sinal de sincronismo com a rede eletrica (entrada)int trigger = 23; //pino que aciona o MOC3020 (saida)int incButton = 24; //botao de incremento da potencia (entrada)int decButton = 25; //botao de decremento da potencia (entrada)//Variaveisunsigned int timeToWait; //tempo de espera apos a passagem pelo zero para disparar o TRIAC (em microssegundos)int pulseWidth; //tempo de duracao do pulso de disparoint state = 0; //status do sinal de sincronismoint previousState = 0; //estado anterior do sinal de sincronismoconst int halfCycle = 8333; //tempo em microssegundos de um semiciclo da rede eletrica (constante)float increment; //variavel utilizada para variar mais lentamente a potencia quando o botao e mantido pressionadovoid setup(){ pinMode(trigger, OUTPUT); pinMode(sync, INPUT); pinMode(incButton, INPUT); pinMode(decButton, INPUT); timeToWait = 8333; //para lampada iniciar apagada increment = 8333.0; //nessa condicao nao ocorrera disparo do TRIAC digitalWrite(trigger, LOW); //assegura que a saida ira iniciar em zero}void loop(){ boolean turnOff = 0; //flag para indicar quando deve-se desligar a lampada boolean maxPower = 0; //flag para indicar quando deve-se transmitir potencia maxima para a lampada /*Testa botoes e valores limite para a variavel timeToWait*/ if( (digitalRead(incButton) == LOW)&&(increment >= 300) ) increment -= 0.33; else if( (digitalRead(decButton) == LOW)&&(increment