#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Servo.h>
const int pinTrig = 3;
const int pinTrig2 = 10;
const int pinEcho = 5;
const int pinEcho2 = 9;
const int servo1Pin = 4;
LiquidCrystal_I2C lcd1(0x27,16,2);
LiquidCrystal_I2C lcd2(0x26,16,2);
Servo servo1;
bool veiculonoCaminho = false;
void setup() {
lcd1.init();
lcd2.init();
lcd1.backlight();
lcd2.backlight();
Serial.begin(115200);
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
pinMode(pinTrig2, OUTPUT);
pinMode(pinEcho2, INPUT);
servo1.attach(servo1Pin);
lcd1.clear();
lcd2.clear();
}
void loop() {
lcd1.clear();
lcd2.clear();
long duration, distance;
long duration2, distance2;
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
duration = pulseIn(pinEcho, HIGH);
digitalWrite(pinTrig2, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig2, LOW);
duration2 = pulseIn(pinEcho2, HIGH);
distance = duration * 0.034 / 2;
distance2 = duration2 * 0.034 / 2;
Serial.print("distancia1: ");
Serial.print(distance);
Serial.println(" ");
Serial.print("distancia2: ");
Serial.print(distance2);
Serial.println(" ");
if (distance > 150) {
lcd2.setCursor(4, 0);
lcd2.print("PERCURSO");
lcd2.setCursor(5, 1);
lcd2.print("LIVRE");
servo1.write(90);
lcd1.setCursor(4, 0);
lcd1.print("PERCURSO");
lcd1.setCursor(5, 1);
lcd1.print("LIVRE");
servo1.write(90);
} else if (distance2 > 150) {
lcd2.setCursor(3, 0);
lcd2.print("DIMINUA A");
lcd2.setCursor(2, 1);
lcd2.print("VELOCIDADE");
lcd1.setCursor(4, 0);
lcd1.print("CANCELA");
lcd1.setCursor(2, 1);
lcd1.print("SERA ABERTA");
servo1.write(0);
}
if (veiculonoCaminho == true) {
lcd1.setCursor(4, 0);
lcd1.print("CANCELA");
lcd1.setCursor(5, 1);
lcd1.print("ABERTA");
}
delay(500);
}
// ATRAS DA PARADA DE ONIBIUS ACELERALCD1
LCD2