//exercicio 7
//Gabriel Lisboa Leite de Melo
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
Servo servo;
int servopos;
#define PIN_TRIG1 3
#define PIN_ECHO1 2
#define PIN_TRIG2 5
#define PIN_ECHO2 4
LiquidCrystal_I2C lcd1(0x27, 16, 2);
LiquidCrystal_I2C lcd2(0x26, 16, 2);
bool sensorAnt1 = false;
bool sensorAnt2 = false;
void setup() {
lcd1.init();
lcd2.init();
servo.attach(11);
servo.write(0);
Serial.begin(115200);
pinMode(PIN_TRIG1, OUTPUT);
pinMode(PIN_ECHO1, INPUT);
pinMode(PIN_TRIG2, OUTPUT);
pinMode(PIN_ECHO2, INPUT);
}
void loop() {
lcd1.setBacklight(1);
lcd2.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);
int distanciaCM1 = (duration1/58);
int distanciaCM2 = (duration2/58);
delay(100);
bool sensorAtu1 = (distanciaCM1 <= 10);
bool sensorAtu2 = (distanciaCM2 <= 10);
if (sensorAnt1 == true && sensorAtu1 == false) {
servo.write(90); // Gira o servo até 90°
delay(500);
}
if (sensorAnt2 == true && sensorAtu2 == false) {
servo.write(0); // Gira o servo até 0°
delay(500);
}
sensorAnt1 = sensorAtu1;
sensorAnt2 = sensorAtu2;
delay(100);
if((sensorAtu1 == false && sensorAtu2 == false)&&(sensorAtu1 == false && sensorAtu2 == false)){
lcd1.clear();
lcd1.setCursor(4,0);
lcd1.print("PERCURSO");
lcd1.setCursor(5,1);
lcd1.print("LIVRE");
lcd2.clear();
lcd2.setCursor(4,0);
lcd2.print("PERCURSO");
lcd2.setCursor(5,1);
lcd2.print("LIVRE");
}
if(sensorAtu1 == true || sensorAtu2 == true){
lcd1.clear();
lcd1.setCursor(3,0);
lcd1.print("DIMINUA A");
lcd1.setCursor(3,1);
lcd1.print("VELOCIDADE");
}
if(sensorAtu1 == true){
lcd2.clear();
lcd2.setCursor(4,0);
lcd2.print("CANCELA");
lcd2.setCursor(3,1);
lcd2.print("SERA ABERTA");
}
if (sensorAnt1 == true && sensorAtu1 == false){
lcd2.clear();
lcd2.setCursor(4,0);
lcd2.print("CANCELA");
lcd2.setCursor(5,1);
lcd2.print("ABERTA");
}
}