//exercicio 5
//Gabriel Lisboa Leite de Melo
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte quadrado[8] = {
0b11111,
0b10001,
0b10001,
0b10001,
0b10001,
0b10001,
0b11111,
0b00000,
};
byte quadradox[8] = {
0b11111,
0b10001,
0b11011,
0b10101,
0b11011,
0b10001,
0b11111,
0b00000,
};
#define PIN_TRIG1 3
#define PIN_ECHO1 2
#define PIN_TRIG2 5
#define PIN_ECHO2 4
#define PIN_TRIG3 7
#define PIN_ECHO3 6
#define PIN_TRIG4 9
#define PIN_ECHO4 8
void setup() {
lcd.init();
lcd.createChar(0, quadrado);
lcd.createChar(1, quadradox);
lcd.setCursor(11,1);
lcd.write(byte(0));
lcd.setCursor(12,1);
lcd.write(byte(0));
lcd.setCursor(13,1);
lcd.write(byte(0));
lcd.setCursor(14,1);
lcd.write(byte(0));
Serial.begin(115200);
pinMode(PIN_TRIG1, OUTPUT);
pinMode(PIN_ECHO1, INPUT);
pinMode(PIN_TRIG2, OUTPUT);
pinMode(PIN_ECHO2, INPUT);
pinMode(PIN_TRIG3, OUTPUT);
pinMode(PIN_ECHO3, INPUT);
pinMode(PIN_TRIG4, OUTPUT);
pinMode(PIN_ECHO4, INPUT);
}
void loop(){
int soma = 0;
lcd.setBacklight(1);
digitalWrite(PIN_TRIG1, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG1, LOW);
int duration1 = pulseIn(PIN_ECHO1, HIGH);
digitalWrite(PIN_TRIG2, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG2, LOW);
int duration2 = pulseIn(PIN_ECHO2, HIGH);
digitalWrite(PIN_TRIG3, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG3, LOW);
int duration3 = pulseIn(PIN_ECHO3, HIGH);
digitalWrite(PIN_TRIG4, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG4, LOW);
int duration4 = pulseIn(PIN_ECHO4, HIGH);
int distanciaCM1 = (duration1/58);
int distanciaCM2 = (duration2/58);
int distanciaCM3 = (duration3/58);
int distanciaCM4 = (duration4/58);
lcd.setCursor(0,0);
lcd.print("LIVRES");
lcd.setCursor(0,1);
lcd.print("OCUPADAS");
lcd.setCursor(11,0);
lcd.print("1234");
if(distanciaCM1 < 180){
int valor1 = 1;
soma += valor1;
delay(1000);
lcd.setCursor(11,1);
lcd.write(byte(1));
}
else if(distanciaCM1 > 180){
int valor12 = 0;
soma += valor12;
lcd.setCursor(11,1);
lcd.write(byte(0));
}
if(distanciaCM2 < 180){
int valor2 = 1;
soma += valor2;
lcd.setCursor(12,1);
lcd.write(byte(1));
}
else if(distanciaCM2 > 180){
int valor22 = 0;
soma += valor22;
lcd.setCursor(12,1);
lcd.write(byte(0));
}
if(distanciaCM3 < 180){
int valor3 = 1;
soma += valor3;
lcd.setCursor(13,1);
lcd.write(byte(1));
}
else if(distanciaCM3 > 180){
int valor32 = 0;
soma += valor32;
lcd.setCursor(13,1);
lcd.write(byte(0));
}
if(distanciaCM4 < 180){
int valor4 = 1;
soma += valor4;
lcd.setCursor(14,1);
lcd.write(byte(1));
}
else if(distanciaCM4 > 180){
int valor42 = 0;
soma += valor42;
lcd.setCursor(14,1);
lcd.write(byte(0));
}
lcd.setCursor(9,1);
lcd.print(soma);
int soma2 = 4 - soma;
lcd.setCursor(7,0);
lcd.print(soma2);
}