Advertisement
RuiViana

Dimmer_ZeroCros

Oct 7th, 2018
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <TimerOne.h>         // inclui biblioteca Timer1
  2. #define ZCport 2
  3. #define triacApin 9           // Define que o Dimmer será comandado pelo pino 9
  4. //#define pot A4
  5. int valorlido = 0;            // inicializa variavel que controla potencia na lampada com 0 (lampada apagada)
  6. int valor = 0;                // inicializa variavel que controla potencia na lampada com 0 (lampada apagada)
  7.  
  8. long dimtime;
  9. //------------------
  10. void setup()
  11. {
  12.   Serial.begin(9600);
  13.   pinMode(triacApin, OUTPUT);
  14.   pinMode(ZCport, INPUT);
  15.   digitalWrite(triacApin, LOW);
  16.   // Attach the interrupt 0 to pin 2 for the detection of zero crossing (Zero Cross Detection)
  17.   attachInterrupt(0, zero_cross_detect, FALLING);     // Attach an Interrupt to Pin 2 (Interrupt 0) for Zero Cross Detection
  18. }
  19. //------------------
  20. void loop()
  21. {
  22.   if (Serial.available() > 0)
  23.   {
  24.     valorlido = Serial.parseInt(); //
  25.   }
  26.   valor = map(valorlido, 0, 100, 1, 100);
  27.   //  valor = map(analogRead(pot), 0, 1023, 0, 100);
  28. }
  29. //------------------
  30. void zero_cross_detect()
  31. {
  32.   dimtime = map(valor, 0, 100, 8000, 150);  // calcula o tempo de delay para o disparo do TRIAC 7950,100
  33.   Timer1.initialize(dimtime);
  34.   Timer1.attachInterrupt(gateTRIAC);        // associa a funcao gateTRIAC com Interrupcao do TIMER1
  35. }
  36. //------------------
  37. void gateTRIAC ()                             // trata interrupcao do TIMER1 gerando pulso no gate do TRIAC
  38. {
  39.   Timer1.stop();
  40.   digitalWrite(triacApin, HIGH);              // dispara o Triac
  41.   delayMicroseconds(5);                       // aguarda 5 microsegundos para garantir disparo do TRIAC
  42.   digitalWrite(triacApin, LOW);               // desabibilta gate do TRIAC
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement