#include <LiquidCrystal_I2C.h>
#include <Servo.h>
Servo servo1;
#define PIN_TRIG 5
#define PIN_ECHO 7
#define PIN_TRIG2 3
#define PIN_ECHO2 4
const int lcdAddress = 0x27;
const int lcdAddress2 = 0x28;
LiquidCrystal_I2C lcd(lcdAddress,16,2);
LiquidCrystal_I2C lcd2(lcdAddress2,16,2);
void setup(){
Serial.begin(115200);
lcd.init();
lcd.setBacklight(HIGH);
// serial begin, lcds ligando e pino do servo
lcd2.init();
lcd2.setBacklight(HIGH);
servo1.attach(10);
}
void loop(){
// Medição da distância
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10); //estado dos pinos do sensor ultra 1
digitalWrite(PIN_TRIG, LOW);
digitalWrite(PIN_TRIG2, HIGH);
delayMicroseconds(10); //estado dos pinos do sensor ultra 2
digitalWrite(PIN_TRIG2, LOW);
int duration = pulseIn(PIN_ECHO, HIGH);
int distancia = duration / 58; //calculo da distancia do sensor ultra 1
int duration2 = pulseIn(PIN_ECHO2, HIGH);
int distancia2 = duration2 / 58; //calculo da distancia do sensor ultra 2
Serial.print("Distância em CM do carro S1: ");
delay(200); //resultado da distancia no monitor serial
Serial.println(distancia);
Serial.print("Distancia em CM do carro S2: ");
delay(200);
Serial.println(distancia2);
if (distancia <= 30) distancia = 30;
if (distancia >= 100) distancia = 100;
int val = map(distancia, 100, 30, 0, 180); //mapeamento do servo motor
servo1.write(val);
}