#include <Servo.h>
#include <LiquidCrystal.h>
const int trigPin = 9;
const int echoPin = 10;
const int ledMovement = 11;
const int ledSemMovement = 12;
Servo meuServo;
LiquidCrystal lcd(7, 8, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7
long duration;
int distance;
int distanceMax = 100;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledMovement, OUTPUT);
pinMode(ledSemMovement, OUTPUT);
meuServo.attach(6);
meuServo.write(90);
digitalWrite(ledSemMovement, HIGH);
Serial.begin(9600);
lcd.begin(12, 2); // Initialize the 12x2 LCD
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(20);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
if (distance <= distanceMax && distance > 0) {
meuServo.write(180);
digitalWrite(ledMovement, HIGH);
digitalWrite(ledSemMovement, LOW);
lcd.clear();
lcd.print(" GO ");
} else {
meuServo.write(90);
digitalWrite(ledMovement, LOW);
digitalWrite(ledSemMovement, HIGH);
lcd.clear();
lcd.print(" STOP ");
}
delay(500);
delay(2000);
}