#include <LiquidCrystal.
h> //Biblioteca para o LCD no arduino
// #include <elapsedMillis.h>
// Declarar as variáveis
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // Pinos RS, E, D4, D5, D6, D7
int b0 = A4; // Botão Desliga
int b1 = A2; // Botão Liga
int brt = A3; // Relê Térmico
int k1 = 6; // LED verde esquerda representando K1
int k2 = 5; // LED verde meio representando K2
int k3 = 4; // LED verde direita representando K3
int q4 = 3; // LED amarelo para indicar falha
int q5 = 2; // LED vermelho
int buzina = 13; // Pino para buzina
bool brton = false;
bool ligar = false;
bool bon = false;
bool boff = false;
float LM35MT = A0; // Sensor de temperatura do Motor
float LM35MC = A1; // Sensor de temperatura do Mancal
float tempMT = 0; // Variável para armazenar a temperatura do Motor
float tempMC = 0; // Variável para armazenar a temperatura do Mancal
// int interlockPin = A3; // Pino para a entrada de Interlock
// bool interlockAtivo = false; // Estado do Interlock (inicialmente desativado)
// unsigned long tempoEstrela = 0; // Tempo para acionar o contator K2 bool
estrelaAtivada = false; // Estado da partida Estrela (inicialmente desativada)
void setup(){
pinMode(b0, INPUT);
pinMode(b1, INPUT);
pinMode(brt, INPUT);
pinMode(k1, OUTPUT);
pinMode(k2, OUTPUT);
pinMode(k3, OUTPUT);
pinMode(q4, OUTPUT);
pinMode(q5, OUTPUT);
pinMode(LM35MT, INPUT);
pinMode(LM35MC, INPUT);
pinMode(buzina, OUTPUT);
// *********************************
// atividade A11 – um sinal sonoro duplo bipe - INICIAL
tone(buzina, 1000);
delay(1000);
noTone(buzina);
delay(1500);
tone(buzina, 1000);
delay(1000);
noTone(buzina);
delay(200);
lcd.begin(16, 2); // funcao que define o LCD
Serial.begin(9600); // funcao habilita monitor do thinkecad (orientacao)
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("UNIUBE");
lcd.setCursor(0, 1);
lcd.print("PROJETOS INTEGR.");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ENG. ELETRICA I");
lcd.setCursor(0, 1);
lcd.print("");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CLEITON RESENDE");
lcd.setCursor(0, 1);
lcd.print("R.A.: 1079648");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SEJAM BEM VINDOS");
lcd.setCursor(0, 1);
lcd.print(" U N I U B E");
delay(3000);
lcd.clear();
// atividade A11 – um sinal sonoro duplo bipe - FINAL
tone(buzina, 1000);
delay(1000);
noTone(buzina);
delay(200);
}
void loop()
{
// Ler temperatura e exibir no display
tempMT = map(((analogRead(A0) - 20) * 3.04), 0, 1023, -40, 125);
tempMC = map(((analogRead(A1) - 20) * 3.04), 0, 1023, -40, 125);
lcd.setCursor(0, 0);
lcd.print("Temp Motor: ");
lcd.print(tempMT);
lcd.setCursor(0, 1);
lcd.print("Temp Manc.: ");
lcd.print(tempMC);
bon = digitalRead(b1); // Verifica o botão "ligar" no loop
boff = digitalRead(b0); // Verifica o botão "desligar" no loop
if (tempMT > 60 || tempMC >80 || boff == true) {
ligar == false ;
boff == true;
digitalWrite(q5, HIGH);
digitalWrite(k1, LOW);
Serial.println("k1 off");
digitalWrite(k2, LOW);
Serial.println("k2 off");
digitalWrite(k3, LOW);
Serial.println("k3 off");
bon = digitalRead(b1); // Verifica o botão "ligar" no loop
boff = digitalRead(b0); // Verifica o botão "desligar" no loop
}
else
{
ligar == true;
boff == false;
if (bon == true) {
ligar = true;
Serial.println("motor ligado");
bon = digitalRead(b1); // Verifica o botão "ligar" no loop
boff = digitalRead(b0); // Verifica o botão "desligar" no loop
if (ligar == true) {
boff == false;
digitalWrite(k3, LOW);
digitalWrite(q5, LOW);
digitalWrite(k1, HIGH);
Serial.println("k1 on");
digitalWrite(k3, HIGH);
Serial.println("k3 on");
delay(2500); // ATENCAO AQUI ----> mudar para 35 projeto final
digitalWrite(k3, LOW);
Serial.println("k3 off");
digitalWrite(k2, HIGH);
Serial.println("k2 on");
bon = digitalRead(b1); // Verifica o botão "ligar" no loop
boff = digitalRead(b0); // Verifica o botão "desligar" no loop
}
else
{
if (boff == true) {
ligar == false;
digitalWrite(q5, LOW);
digitalWrite(k1, LOW);
digitalWrite(k2, LOW);
digitalWrite(k3, LOW);
Serial.println("k1 off");
Serial.println("k2 off");
Serial.println("k3 off");
bon = digitalRead(b1); // Verifica o botão "ligar" no loop
boff = digitalRead(b0); // Verifica o botão "desligar" no loop
if (boff == true)
{
ligar == false;
}
}
}
}
}