//elevador
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0X27, 16, 2);
#define motorSobe 16
#define motorDesce 17
//Destino
#define button0 19
#define button1 18
#define button2 5
#define button3 23
int buttonState0 = 0;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
//Andar
#define sensor0 35
#define sensor1 34
#define sensor2 39
#define sensor3 36
int sensorState0 = 0;
int sensorState1 = 0;
int sensorState2 = 0;
int sensorState3 = 0;
int Andar;
int Destino;
void setup()
{
lcd.init();
lcd.backlight();
pinMode (motorSobe, OUTPUT);
pinMode (motorDesce, OUTPUT);
//Destino
pinMode (button0, INPUT);
pinMode (button1, INPUT);
pinMode (button2, INPUT);
pinMode (button3, INPUT);
//Andar
pinMode (sensor0, INPUT);
pinMode (sensor1, INPUT);
pinMode (sensor2, INPUT);
pinMode (sensor3, INPUT);
}
void loop()
{
//Andar
sensorState0 = digitalRead (sensor0);
sensorState1 = digitalRead (sensor1);
sensorState2 = digitalRead (sensor2);
sensorState3 = digitalRead (sensor3);
if (sensorState0 == 1)
{
Andar = 0;
lcd.setCursor (0,1);
lcd.print ("Andar 0");
}
if (sensorState1 == 1)
{
Andar = 1;
lcd.setCursor (0,1);
lcd.print ("Andar 1");
}
if (sensorState2 == 1)
{
Andar = 2;
lcd.setCursor (0,1);
lcd.print ("Andar 2");
}
if (sensorState3 == 1)
{
Andar = 3;
lcd.setCursor (0,1);
lcd.print ("Andar 3");
}
//Destino
buttonState0 = digitalRead(button0);
buttonState1 = digitalRead(button1);
buttonState2 = digitalRead(button2);
buttonState3 = digitalRead(button3);
if (buttonState0 == 1) Destino = 0;
if (buttonState1 == 1) Destino = 1;
if (buttonState2 == 1) Destino = 2;
if (buttonState3 == 1) Destino = 3;
//Subir ou Descer
if (Andar > Destino)
{
digitalWrite (motorSobe, 0);
digitalWrite (motorDesce, 1);
lcd.print (" ");
lcd.setCursor (0,0);
lcd.print ("Descendo...");
}
if (Andar < Destino)
{
digitalWrite (motorSobe, 1);
digitalWrite (motorDesce, 0);
lcd.print (" ");
lcd.setCursor (0,0);
lcd.print ("Subindo...");
}
if (Andar == Destino)
{
digitalWrite (motorSobe, 0);
digitalWrite (motorDesce, 0);
lcd.print (" ");
lcd.setCursor (0,0);
lcd.print ("Parado no destino");
}
}