#include <Arduino.h>
#include <Servo.h>
// Deklarasi objek servo
Servo myServo;
// Variabel posisi servo
int pos = 0;
// Pin tombol
int button1Pin = 2;
int button2Pin = 3;
// Variabel untuk membaca status tombol
int button1State = 0;
int button2State = 0;
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
// Menghubungkan servo ke pin 9
myServo.attach(9);
// Posisi awal servo di 0 derajat
myServo.write(0);
// Mengatur pin tombol sebagai input pull-up
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
}
void loop() {
// Membaca status tombol (menggunakan logika LOW untuk tombol ditekan)
button1State = digitalRead(button1Pin);
button2State = digitalRead(button2Pin);
// Jika tombol 1 ditekan
if (button1State == LOW) {
Serial.print("Posisi awal (Tombol 1): ");
Serial.println(pos);
if (pos == 91) {
Serial.println("Tidak perlu putar ke 90 lagi!");
} else {
Serial.println("Servo bergerak ke 90 derajat.");
for (pos = 0; pos <= 90; pos++) {
myServo.write(pos); // Memutar servo secara bertahap
delay(15); // Menunda pergerakan untuk kelancaran
}
}
Serial.print("Posisi akhir (Tombol 1): ");
Serial.println(pos);
delay(1000); // Menunggu sebelum membaca input lagi
}
// Jika tombol 2 ditekan
if (button2State == LOW) {
Serial.print("Posisi awal (Tombol 2): ");
Serial.println(pos);
if (pos == -1) {
Serial.println("Tidak perlu putar ke 0 lagi!");
} else {
Serial.println("Servo bergerak ke 0 derajat.");
for (pos = 90; pos >= 0; pos--) {
myServo.write(pos); // Memutar servo kembali ke posisi awal
delay(15); // Menunda pergerakan untuk kelancaran
}
}
Serial.print("Posisi akhir (Tombol 2): ");
Serial.println(pos);
delay(1000); // Menunggu sebelum membaca input lagi
}
}