#include <LiquidCrystal_I2C.h>
#include <Servo.h>
const int trigPin = 13;
const int echoPin = 12;
const int BuzzerPin = 8;
const int servoPin = 9;
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myservo;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(BuzzerPin, OUTPUT);
myservo.attach(servoPin);
lcd.begin(16, 2);
lcd.init();
lcd.setBacklight(HIGH);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration / 58.2;
lcd.setCursor(0, 0);
lcd.print("Jarak = ");
lcd.print(distance);
lcd.print("cm");
delay(50);
if (distance > 150) {
tone(BuzzerPin, HIGH); // Turn on the LED
myservo.write(0); // Rotate servo to 0 degrees
delay(1000);
} else {
noTone(BuzzerPin); // Turn off the LED
myservo.write(180); // Rotate servo to 180 degrees
delay(1000);
}
}