Continuamos con el proyecto del Dimmer programable que me permita utilizar todos los excedentes de mis placas fotovoltaicas.
En el capítulo de hoy aprendemos a manejar un Triac desde nuestro microcontrolador para encender o apagar una salida conectada a la red, a 230Vac y hasta 16A.
Vemos su esquema, analizamos su funcionamiento, montamos el circuito y programamos el microcontrolador. Teoría y práctica en 20 minutos.
Además, profundizaremos en el manejo de interrupciones con el Timer del ESP32 para conseguir una temporización sin consumir ciclos de trabajo del micro.
Tanto si necesitas uno, como si eres curioso y te gusta saber cómo funcionan las cosas, no te lo pierdas.
Y aquí el código avanzado, usando interrupciones para manejar el Timer:
#include <Arduino.h>
const int pinSalida = 32; // Pin GPIO35 donde se encenderá y apagará la señal
bool estadoSalida = false; // Estado actual del pin de salida
hw_timer_t *timer = NULL; // Declaración de la variable timer
void cambiarEstado() {
estadoSalida = !estadoSalida; // Invierte el estado
digitalWrite(pinSalida, estadoSalida); // Cambia el estado del pin de salida
}
void setup() {
pinMode(pinSalida, OUTPUT);
// Configura un temporizador para cambiar el estado cada 500 ms (0.5 segundos)
// 500 ms = 500,000 microsegundos
timer = timerBegin(0, 80, true); // Usamos el grupo de temporizadores 0 y la escala de prescaler 80
timerAttachInterrupt(timer, &cambiarEstado, true); // Adjunta la función cambiarEstado como interrupción
timerAlarmWrite(timer, 500000, true); // Establece el período del temporizador (500,000 microsegundos = 500 ms)
timerAlarmEnable(timer); // Habilita la alarma del temporizador
}
void loop() {
// Tu programa principal puede continuar aquí si es necesario
}

