#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define sensorVaga1 12
#define sensorVaga2 13
#define sensorVaga3 9
#define sensorVaga4 10
#define vm1vd1 32
#define vm2vd2 33
#define vm3vd3 25
#define vm4vd4 26
void setup() {
pinMode(sensorVaga1, INPUT);
pinMode(sensorVaga2, INPUT);
pinMode(sensorVaga3, INPUT);
pinMode(sensorVaga4, INPUT);
pinMode(vm1vd1, OUTPUT);
pinMode(vm2vd2, OUTPUT);
pinMode(vm3vd3, OUTPUT);
pinMode(vm4vd4, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("VAGA 1: ");
lcd.setCursor(0, 1);
lcd.print("VAGA 2: ");
lcd.setCursor(0, 2);
lcd.print("VAGA 3: ");
lcd.setCursor(0, 3);
lcd.print("VAGA 4: ");
}
void loop() {
verificarVagas();
delay(1000);
}
void verificarVagas() {
int vagasLivres = 0;
int vagasOcupadas = 0;
lcd.clear();
if (digitalRead(sensorVaga1) == HIGH) {
lcd.setCursor(0, 0);
lcd.print("VAGA 1: OCUPADA");
digitalWrite(vm1vd1, HIGH);
vagasOcupadas++;
} else {
lcd.setCursor(0, 0);
lcd.print("VAGA 1: LIVRE ");
digitalWrite(vm1vd1, LOW);
vagasLivres++;
}
if (digitalRead(sensorVaga2) == HIGH) {
lcd.setCursor(0, 1);
lcd.print("VAGA 2: OCUPADA");
digitalWrite(vm2vd2, HIGH);
vagasOcupadas++;
} else {
lcd.setCursor(0, 1);
lcd.print("VAGA 2: LIVRE ");
digitalWrite(vm2vd2, LOW);
vagasLivres++;
}
if (digitalRead(sensorVaga3) == HIGH) {
lcd.setCursor(0, 2);
lcd.print("VAGA 3: OCUPADA");
digitalWrite(vm3vd3, HIGH);
vagasOcupadas++;
} else {
lcd.setCursor(0, 2);
lcd.print("VAGA 3: LIVRE ");
digitalWrite(vm3vd3, LOW);
vagasLivres++;
}
if (digitalRead(sensorVaga4) == HIGH) {
lcd.setCursor(0, 3);
lcd.print("VAGA 4: OCUPADA");
digitalWrite(vm4vd4, HIGH);
vagasOcupadas++;
} else {
lcd.setCursor(0, 3);
lcd.print("VAGA 4: LIVRE ");
digitalWrite(vm4vd4, LOW);
vagasLivres++;
}
}