//Código ESP32-C3
//Pinos entrada:
#define pino_interruptor_lampada 0
#define pino_bot_diminui 17 //1
#define pino_bot_aumenta 2
#define pino_interruptor_exaustao 16 //3
#define pino_interruptor_ventilacao 4
#define pino_interruptor_desliga 5
//Variáveis constantes
#define CEM 100
#define ZERO 0
#define DUZENTOS_E_CINQUENTA_E_CINCO 255
//Pinos saida:
#define pino_triac 18 //6
#define pino_modulo_rele_exaust_vent 22 //7
#define pino_modulo_rele_liga_desliga 23 //8
#define pino_rele_lampada 13 //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;
unsigned long Anterior = 0;
unsigned long Intervalo = 1000;
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() {
//Millis:
unsigned long Presente = millis();
//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 >= ZERO) && (val_triac <= CEM))
{
val_triac = val_triac + 1;
}
bot_aumenta_presente = bot_aumenta_anterior;
if ((bot_diminui_presente == LOW) && (bot_diminui_anterior == HIGH) && (val_triac >= ZERO) && (val_triac <=CEM))
{
val_triac = val_triac - 1;
}
bot_diminui_presente = bot_diminui_anterior;
if (val_triac < ZERO)
{
val_triac = ZERO;
}
else if (val_triac > CEM)
{
val_triac = CEM;
}
Serial.println(val_triac);
int val_triac_map = map(val_triac, ZERO, CEM, ZERO, DUZENTOS_E_CINQUENTA_E_CINCO);
analogWrite(pino_triac, val_triac_map);
}
On/Off
Lamp
Diminui/
/Aumenta
Velocidade Ventilador
Exaust/Off/Vent
Ventilador
Ventilação
Velocidade
(TRIAC)
Exaust
-----------
Vent
On
-----
Off
V
E
N
T
I
L
A
D
O
R
F1
F2
Relé DPDT
Soquete
Lampada