Buenos dias,
Quiero hacer un dimmer controlado por el modulo wifi ESP07 y he encontrado un código que funciona perfectamente salvo que utiliza la librería TimerOne la cual no es compatible con el ESP07. Tras buscar otras alternativas he encontrado la librería Ticker.h que si es compatible con el ESP07 y que se supone que actúa de igual manera que la librería TimerOne, pero no consigo adecuar el código que utiliza la primera librería para utilizarla con Ticker y que funcione con el esp.
El código de ejemplo es el siguiente:
#include <TimerOne.h>
volatile int i=0; // Variable to use as a counter volatile as it is in an interrupt
volatile boolean zero_cross=0; // Boolean to store a "switch" to tell us if we have crossed zero
int AC_pin1 = 4;// Output to Opto Triac
int dim1 = 0;// Dimming level (0-100) 0 = on, 100 = 0ff
int inc=1; // counting up or down, 1=up, -1=down
int freqStep = 100; // make this 83 for 60Hz gridfrequency
void zero_cross_detect() {
zero_cross = true; // set the boolean to true to tell our dimming function that a zero cross has occured
i=0;
digitalWrite(AC_pin1, LOW); // turn off TRIAC (and AC)
}
// Turn on the TRIAC at the appropriate time
void dim_check() {
if(zero_cross == true) {
if(i>=dim1) {
digitalWrite(AC_pin1, HIGH); // turn on light
i=0; // reset time step counter
zero_cross = false; //reset zero cross detection
}
else {
i++; // increment time step counter
}
}
}
void setup()
{
attachInterrupt(0, zero_cross_detect, RISING); // Attach an Interupt to Pin 2 (interupt 0) for Zero Cross Detection
Timer1.initialize(freqStep); // Initialize TimerOne library for the freq we need
Timer1.attachInterrupt(dim_check, freqStep);
pinMode(4, OUTPUT);
}
Si alguien pudiera decirme como adecuar el código para la nueva librería se lo agradecería mucho.
Un saludo.