//Código ESP32-C3
//Pinos entrada:
#define pino_interruptor_lampada 0
#define pino_bot_diminui 1
#define pino_bot_aumenta 2
#define pino_interruptor_exaustao 3
#define pino_interruptor_ventilacao 4
#define pino_interruptor_desliga 5
//Pinos saida:
#define pino_triac 6
#define pino_modulo_rele_exaust_vent 7
#define pino_modulo_rele_liga_desliga 8
#define pino_rele_lampada 9
//Variáveis: bool lampada_esta_ligada = false;
int val_triac = 0;
int val_bruto_triac = 0;
boolean bot_diminui_presente = HIGH;
boolean bot_aumenta_presente = HIGH;
boolean bot_diminui_anterior = HIGH;
boolean bot_aumenta_anterior = HIGH;
void setup() {
Serial.begin(115200);
pinMode(pino_interruptor_lampada, INPUT_PULLUP);
pinMode(pino_bot_diminui, INPUT_PULLUP);
pinMode(pino_bot_aumenta, INPUT_PULLUP);
pinMode(pino_interruptor_exaustao, INPUT_PULLUP);
pinMode(pino_interruptor_ventilacao, INPUT_PULLUP);
pinMode(pino_interruptor_desliga, INPUT_PULLUP);
pinMode(pino_triac, OUTPUT);
pinMode(pino_modulo_rele_exaust_vent, OUTPUT);
pinMode(pino_modulo_rele_liga_desliga, OUTPUT);
}
void loop() {
//Controle botão:
bot_diminui_presente = digitalRead(pino_bot_diminui);
bot_aumenta_presente = digitalRead(pino_bot_aumenta);
if ((bot_aumenta_presente == LOW) && (bot_aumenta_anterior == HIGH) && (val_triac >= 0) && (val_triac <= 100))
{
val_triac = val_triac + 1;
delay(40);
}
bot_aumenta_presente = bot_aumenta_anterior;
if ((bot_diminui_presente == LOW) && (bot_diminui_anterior == HIGH) && (val_triac >= 0) && (val_triac <=100))
{
val_triac = val_triac - 1;
delay(40);
}
bot_diminui_presente = bot_diminui_anterior;
if (val_triac < 0)
{
val_triac = 0;
}
else if (val_triac > 100)
{
val_triac = 100;
}
Serial.println(val_triac);
int val_triac_map = map(val_triac, 0, 100, 0, 255);
analogWrite(pino_triac, val_triac_map);
}