// Library untuk kontrol servo
#include <Servo.h>
// Pin untuk sensor ultrasonik
const int trigPin = 2;
const int echoPin = 3;
// Pin untuk LED
const int hijau = 13;
const int kuning = 12;
const int merah = 11;
// Pin untuk servo
const int servoPin = 6;
Servo myservo;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(hijau, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(merah, OUTPUT);
myservo.attach(servoPin);
}
void loop() {
// Mengirimkan pulsa ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menerima waktu pantulan pulsa ultrasonik
long duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu
float distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Mengatur LED dan servo berdasarkan jarak
if (distance <= 10) {
digitalWrite(merah, HIGH);
myservo.write(0);
digitalWrite(merah, LOW);
} else if (distance > 11 && distance <= 20) {
digitalWrite(kuning, HIGH);
myservo.write(180);
digitalWrite(kuning, LOW);
} else {
digitalWrite(hijau, HIGH);
myservo.write(90);
digitalWrite(hijau, LOW);
}
}