#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int freio = 12;
const int baixo = 13;
const int cima = 11;
const int porta = 5;
const int andar1 = 1;
const int andar2 = 2;
const int andar3 = 3;
const int andar4 = 4;
const int chamar1 = 50;
const int chamar2 = 51;
const int chamar3 = 52;
const int chamar4 = 53;
bool estadofreio;
bool portaaberta;
int andaratual ;
int chamado = 1;
void setup() {
pinMode(freio, OUTPUT);
pinMode(baixo, OUTPUT);
pinMode(cima, OUTPUT);
pinMode(porta, INPUT);
pinMode(andar1, INPUT_PULLUP);
pinMode(andar2, INPUT_PULLUP);
pinMode(andar3, INPUT_PULLUP);
pinMode(andar4, INPUT_PULLUP);
pinMode(chamar1, INPUT_PULLUP);
pinMode(chamar2, INPUT_PULLUP);
pinMode(chamar3, INPUT_PULLUP);
pinMode(chamar4, INPUT_PULLUP);
lcd.init();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
if (digitalRead(andar1) == LOW) {
andaratual = 1;
} else if (digitalRead(andar2) == LOW) {
andaratual = 2;
} else if (digitalRead(andar3) == LOW) {
andaratual = 3;
} else if (digitalRead(andar4) == LOW) {
andaratual = 4;
}
{
lcd.setCursor(0, 0);
lcd.print(" Andar Atual: " );
lcd.print( andaratual);
}
Serial.print("Andar Atual: ");
Serial.println(andaratual);
if (digitalRead(chamar1) == LOW) {
chamado = 1;
} else if (digitalRead(chamar2) == LOW) {
chamado = 2;
} else if (digitalRead(chamar3) == LOW) {
chamado = 3;
} else if (digitalRead(chamar4) == LOW) {
chamado = 4;
}
{
lcd.setCursor(0, 1);
lcd.print("Andar Chamado:" );
lcd.print(chamado);
}
Serial.print("Andar Chamado: ");
Serial.println(chamado);
if (chamado = andaratual && porta) {
delay(1000);
digitalWrite(cima, LOW);
digitalWrite(baixo, LOW);
digitalWrite(freio, HIGH);
}
else if (chamado > andaratual && porta != LOW) {
delay(5000);
digitalWrite(cima, HIGH);
digitalWrite(baixo, LOW);
digitalWrite(freio, LOW);
} else if ((chamado < andaratual && porta != LOW)) {
delay(5000);
digitalWrite(cima, LOW);
digitalWrite(baixo, HIGH);
digitalWrite(freio, LOW);
}
Serial.print("Porta; ");
Serial.println( digitalRead(porta));
Serial.print("Porta aberta; ");
Serial.println(portaaberta);
Serial.print("Cima; ");
Serial.println( digitalRead(cima));
Serial.print("Baixo; ");
Serial.println( digitalRead(baixo));
Serial.print("Freio; ");
Serial.println( digitalRead(freio));
delay(1000);
}