#include <LiquidCrystal_I2C.h>
//### DEFINIÇÃO DOS PINOS ###//
// ENTRADAS //
const int BOT_LIGA = 15; //Botão Verde
const int BOT_DESL = 2; //Botão Vermelho
const int R_TERM = 4; //Botão Amarelo
// SAÍDAS //
const int LED_VD = 5; //Motor Desligado
const int LED_VM = 18; //Motor Ligado
const int LED_AM = 19; //Falha
const int LED_AZ = 23; //Saída que liga o Motor
// DISPLAY //
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
pinMode(BOT_LIGA, INPUT);
pinMode(BOT_DESL, INPUT);
pinMode(R_TERM, INPUT);
pinMode(LED_VD, OUTPUT);
pinMode(LED_VM, OUTPUT);
pinMode(LED_AM, OUTPUT);
pinMode(LED_AZ, OUTPUT);
lcd.begin(16,2);
lcd.init();
lcd.backlight();
}
int modo=0;
//Modo 0 -> Motor Desligado
//Modo 1 -> Motor Ligado
//Modo 2 -> Falha R. Térmico
//Modo 3 -> Espera Nova Mudança
void loop()
{
if(digitalRead(BOT_LIGA)==HIGH)
{
modo = 1;
}
if(digitalRead(BOT_DESL)==HIGH)
{
modo = 0;
}
if(digitalRead(R_TERM)==HIGH)
{
modo = 2;
}
if(modo==0)
{
digitalWrite(LED_VD, HIGH);
digitalWrite(LED_VM, LOW);
digitalWrite(LED_AM, LOW);
digitalWrite(LED_AZ, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MOTOR DESLIGADO");
modo = 3;
delay(500);
}
else if(modo==1)
{
digitalWrite(LED_VD, LOW);
digitalWrite(LED_VM, HIGH);
digitalWrite(LED_AM, LOW);
digitalWrite(LED_AZ, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("MOTOR LIGADO");
modo = 3;
delay(500);
}
else if(modo==2)
{
digitalWrite(LED_VD, HIGH);
digitalWrite(LED_VM, LOW);
digitalWrite(LED_AM, HIGH);
digitalWrite(LED_AZ, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("FALHA R.TERMICO");
delay(300);
digitalWrite(LED_AM, LOW);
lcd.clear();
delay(300);
modo = 0;
}
}