#include <Servo.h>
Servo myServo;
int buttonPin = 2;
int servoPin = 9;
int redLedPin = 3;
int greenLedPin = 5;
int yellowLedPin = 4;
int pos = 0;
int increment = 10;
bool buttonState = 0;
bool lastButtonState = 0;
void setup() {
myServo.attach(servoPin);
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(yellowLedPin, OUTPUT);
pinMode(buttonPin, INPUT);
myServo.write(pos);
digitalWrite(redLedPin, HIGH);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
if (buttonState == HIGH) {
pos += increment;
if (pos > 180) {
pos = 0;
}
myServo.write(pos);
delay(200);
}
}
if (pos == 0 || pos > 180) {
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
digitalWrite(yellowLedPin, LOW);
} else if (pos > 0 && pos <= 90) {
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
digitalWrite(yellowLedPin, LOW);
} else if (pos > 90 && pos <= 180) {
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, LOW);
digitalWrite(yellowLedPin, HIGH);
}
lastButtonState = buttonState;
}
// Buatlah simulasi menggunakan Arduino IDE dan perangkat keras berupa 1 buah servo motor, 1 tombol push button, 3 LED (merah, hijau, kuning) beserta resistor, dan 1 Arduino Uno.
// lalu buatlah simulasi agar ketika tombol ditekan, servo bergerak bertahap sebesar 10 derajat, dan LED menyala berdasarkan posisi servo: LED merah menyala jika servo berada di posisi 0° atau lebih dari 180°, LED hijau menyala jika servo berada di antara 0° hingga 90°, dan LED kuning menyala jika servo berada di antara 91° hingga 180°.