#include <Servo.h> // Library untuk motor servo
Servo myservo; // Membuat objek servo
int potPin = A0; // Pin analog untuk potensiometer
int val; // Variabel untuk menyimpan nilai dari potensiometer
int ledPin1 = 12; // Pin untuk LED 1 (posisi kurang dari 90 derajat)
int ledPin2 = 11; // Pin untuk LED 2 (posisi lebih dari 90 derajat)
void setup() {
myservo.attach(13); // Menghubungkan servo ke pin digital 13
pinMode(ledPin1, OUTPUT); // Mengatur pin LED 1 sebagai OUTPUT
pinMode(ledPin2, OUTPUT); // Mengatur pin LED 2 sebagai OUTPUT
}
void loop() {
val = analogRead(potPin); // Membaca nilai dari potensiometer (0 hingga 1023)
// Jika potensiometer pada posisi resistansi mendekati 0 (misalnya di bawah 5)
if (val < 5) {
digitalWrite(ledPin1, LOW); // Matikan LED 1
digitalWrite(ledPin2, LOW); // Matikan LED 2
myservo.write(0); // Servo pada posisi 0 derajat (optional)
} else {
val = map(val, 0, 1023, 0, 180); // Memetakan nilai potensiometer ke sudut servo (0 hingga 180 derajat)
myservo.write(val); // Menggerakkan servo sesuai dengan sudut yang ditentukan
// Kontrol LED berdasarkan posisi servo
if (val < 90) {
digitalWrite(ledPin1, HIGH); // LED 1 menyala jika posisi servo kurang dari 90 derajat
digitalWrite(ledPin2, LOW); // LED 2 mati
} else {
digitalWrite(ledPin1, LOW); // LED 1 mati
digitalWrite(ledPin2, HIGH); // LED 2 menyala jika posisi servo lebih dari atau sama dengan 90 derajat
}
}
delay(15); // Jeda untuk memberikan waktu servo bergerak
}