#include <LiquidCrystal.h>
#include <Servo.h>
// Definisikan pin untuk Sensor Ultrasonik
const int trigPin = 9;
const int echoPin = 8;
// Definisikan pin untuk LCD
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Objek servo
Servo myServo;
void setup() {
// Inisialisasi monitor serial
Serial.begin(9600);
// Inisialisasi pin sensor ultrasonik
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Inisialisasi LCD
lcd.begin(20, 4);
lcd.print("Jarak: ");
// Sambungkan motor servo
myServo.attach(10); // Servo dihubungkan ke pin 10
myServo.write(0); // Inisialisasi servo pada posisi 0 derajat
}
void loop() {
// Mengambil jarak dari Sensor Ultrasonik
long duration;
int distance;
// Memicu pulsa ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menghitung jarak
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Konversi ke sentimeter
// Menampilkan jarak pada LCD
lcd.setCursor(0, 1);
lcd.print("Jarak: ");
lcd.print(distance);
lcd.print(" cm ");
// Mengontrol motor servo berdasarkan jarak
if (distance <= 2) {
myServo.write(90); // Memutar servo ke 90 derajat
} else {
myServo.write(0); // Mengembalikan servo ke 0 derajat
}
// Penundaan kecil
delay(500);
}