#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigPin = 12;
const int echoPin = 14;
const int motorPin = 22;
const int alertaPin = 13;
const int buzzerPin = 2;
long duracao;
int distancia;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motorPin, OUTPUT);
pinMode(alertaPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
lcd.init();
lcd.backlight();
digitalWrite(motorPin, HIGH);
}
void loop() {
// Medir distância
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duracao = pulseIn(echoPin, HIGH);
distancia = duracao * 0.034 / 2;
lcd.setCursor(0, 0);
lcd.print("Distancia:");
lcd.print(distancia);
lcd.print("cm ");
if (distancia > 0 && distancia < 5) {
digitalWrite(motorPin, LOW);
digitalWrite(alertaPin, HIGH);
tone(buzzerPin, 1500);
lcd.setCursor(0, 1);
lcd.print("MOTOR TRAVADO ");
} else {
digitalWrite(motorPin, HIGH);
digitalWrite(alertaPin, LOW);
noTone(buzzerPin);
lcd.setCursor(0, 1);
lcd.print("SISTEMA NORMAL");
}
delay(100);
}