#include <Servo.h>
Servo myServo; // Membuat objek servo
const int buttonPin = 12; // Pin untuk tombol
const int servoPin = 5; // Pin untuk servo
int buttonState = 0; // Variabel untuk menyimpan status tombol
int lastButtonState = 0; // Variabel untuk menyimpan status tombol sebelumnya
bool servoPosition = false; // Menyimpan status posisi servo (false = 0 derajat, true = 180 derajat)
void setup() {
myServo.attach(servoPin); // Menghubungkan servo ke pin
pinMode(buttonPin, INPUT); // Mengatur tombol sebagai input
myServo.write(0); // Mengatur posisi awal servo ke 0 derajat
}
void loop() {
// Membaca status tombol
buttonState = digitalRead(buttonPin);
// Memeriksa jika tombol ditekan (logika naik: dari LOW ke HIGH)
if (buttonState == HIGH && lastButtonState == LOW) {
servoPosition = !servoPosition; // Toggle posisi servo
if (servoPosition) {
myServo.write(180); // Jika toggle true, pindah ke 180 derajat
} else {
myServo.write(0); // Jika toggle false, pindah ke 0 derajat
}
delay(500); // Debouncing sederhana agar tidak membaca beberapa kali pada satu tekanan tombol
}
// Menyimpan status tombol sebelumnya
lastButtonState = buttonState;
}