#include <Ultrasonic.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define red1 24
#define green1 22
#define red2 26
#define green2 28
#define red3 30
#define green3 32
#define red4 34
#define green4 36
#define red11 38
#define blue11 40
#define red12 42
#define blue12 44
//#define blue1 51
Ultrasonic us1(23, 25);
Ultrasonic us2(27, 29);
Ultrasonic us3(31, 33);
Ultrasonic us4(35, 37);
Ultrasonic us11(39, 41);
Ultrasonic us12(43, 45);
int dist1, dist2, dist3, dist4, dist11, dist12;
int vaga1, vaga2, vaga3, vaga4, vaga11, vaga12;
int total_vagas = 4;
int vagas_disp = 0;
int vagas_ocup = 0;
int total_vagas_PCD = 2;
int vagas_disp_PCD = 0;
int vagas_ocup_PCD = 0;
void setup() {
Serial.begin(9600);
pinMode(red1, OUTPUT);
pinMode(green1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(red3, OUTPUT);
pinMode(green3, OUTPUT);
pinMode(red4, OUTPUT);
pinMode(green4, OUTPUT);
pinMode(red11, OUTPUT);
pinMode(blue11, OUTPUT);
pinMode(red12, OUTPUT);
pinMode(blue12, OUTPUT);
// pinMode(blue1, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.setCursor(0, 2);
lcd.print("Teste");
}
void loop() {
dist1 = us1.read();
dist2 = us2.read();
dist3 = us3.read();
dist4 = us4.read();
dist11 = us11.read();
dist12 = us12.read();
if(dist1 < 10)
{
vaga1 = 1;
digitalWrite(red1, HIGH);
digitalWrite(green1, LOW);
//digitalWrite(blue1, LOW);
}
else
{
vaga1 = 0;
digitalWrite(red1, LOW);
digitalWrite(green1, HIGH);
//digitalWrite(blue1, LOW);
}
if(dist2 < 20)
{
vaga2 = 1;
digitalWrite(red2, HIGH);
digitalWrite(green2, LOW);
}
else
{
vaga2 = 0;
digitalWrite(red2, LOW);
digitalWrite(green2, HIGH);
}
if(dist3 < 20)
{
vaga3 = 1;
digitalWrite(red3, HIGH);
digitalWrite(green3, LOW);
}
else
{
vaga3 = 0;
digitalWrite(red3, LOW);
digitalWrite(green3, HIGH);
}
if(dist4 < 20)
{
vaga4 = 1;
digitalWrite(red4, HIGH);
digitalWrite(green4, LOW);
}
else
{
vaga4 = 0;
digitalWrite(red4, LOW);
digitalWrite(green4, HIGH);
}
if(dist11 < 20)
{
vaga11 = 1;
digitalWrite(red11, HIGH);
digitalWrite(blue11, LOW);
}
else
{
vaga11 = 0;
digitalWrite(red11, LOW);
digitalWrite(blue11, HIGH);
}
if(dist12 < 20)
{
vaga12 = 1;
digitalWrite(red12, HIGH);
digitalWrite(blue12, LOW);
}
else
{
vaga12 = 0;
digitalWrite(red12, LOW);
digitalWrite(blue12, HIGH);
}
vagas_ocup = vaga1 + vaga2 + vaga3 + vaga4;
vagas_disp = total_vagas - vagas_ocup;
vagas_ocup_PCD = vaga11 + vaga12;
vagas_disp_PCD = total_vagas_PCD - vagas_ocup_PCD;
lcd.setCursor(0, 1);
lcd.print("Vagas ocupadas: ");
lcd.print(vagas_ocup);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("Vagas livres: ");
lcd.print(vagas_disp);
lcd.print(" ");
delay(100);
lcd.setCursor(0, 3);
lcd.print("Vaga PCD ocupada: ");
lcd.print(vagas_ocup_PCD);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print("Vaga PCD livre: ");
lcd.print(vagas_disp_PCD);
lcd.print(" ");
delay(100);
}