#include <Servo.h>
Servo myServo; // Membuat objek servo
const int buttonPin1 = 12; // Pin untuk tombol 1 (putar ke 90 derajat)
const int buttonPin2 = 11; // Pin untuk tombol 2 (kembali ke 0 derajat)
const int servoPin = 5; // Pin untuk servo
int buttonState1 = 0; // Variabel untuk menyimpan status tombol 1
int buttonState2 = 0; // Variabel untuk menyimpan status tombol 2
int lastButtonState1 = LOW; // Menyimpan status terakhir tombol 1
int lastButtonState2 = LOW; // Menyimpan status terakhir tombol 2
bool servoMoved = false; // Menyimpan status apakah servo telah bergerak
void setup() {
myServo.attach(servoPin); // Menghubungkan servo ke pin
pinMode(buttonPin1, INPUT); // Mengatur tombol 1 sebagai input
pinMode(buttonPin2, INPUT); // Mengatur tombol 2 sebagai input
myServo.write(0); // Mengatur posisi awal servo ke 45 derajat
}
void loop() {
// Membaca status kedua tombol
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
// Jika tombol 1 ditekan dan status berubah dari LOW ke HIGH
if (buttonState1 == HIGH && lastButtonState1 == LOW) {
myServo.write(90); // Putar servo ke 90 derajat
servoMoved = true; // Tandai bahwa servo telah bergerak
delay(500); // Debouncing sederhana
}
// Jika tombol 2 ditekan dan status berubah dari LOW ke HIGH
else if (buttonState2 == HIGH && lastButtonState2 == LOW) {
myServo.write(0); // Kembalikan servo ke posisi 0 derajat
servoMoved = true; // Tandai bahwa servo telah bergerak
delay(500); // Debouncing sederhana
}
// Menyimpan status tombol sebelumnya untuk digunakan di iterasi berikutnya
lastButtonState1 = buttonState1;
lastButtonState2 = buttonState2;
}