Tengo un ESP-07 con firmware NodeMCU conectado a un módulo de atenuación con un pin de cruce por cero.
La frecuencia actual debe ser 50Hz, lo que significa que el tiempo entre dos cruces por cero debe ser de 10 ms, ~ 10000 microsegundos.
Sin embargo, el tiempo entre dos interrupciones es a veces correcto, pero a menudo es de unos 450 microsegundos.
¿Cuál es el truco? Yo uso tmr para medir el tiempo
Aquí está el código:
gpio.mode(2, gpio.INPUT)
gpio.mode(5, gpio.OUTPUT)
t = tmr.now();
counter = 0;
local function zc_callback(level, pulse)
counter = counter + 1;
counter = counter % 200;
if(counter == 1) then
print(tmr.now() - t);
end
t = tmr.now();
end
gpio.trig(2, "up", zc_callback)
Gracias, trato de resolver esto durante algún tiempo, afecta a mis bombillas que parpadean en lugar de atenuarse.