#include <Servo.h>
Servo servo;
int state = 0;
void setup() {
for(int i = 3; i <= 5; i++){
pinMode(i, OUTPUT);
}
pinMode(6, INPUT_PULLUP);
servo.attach(9);
servo.write(0);
}
void off(){
for(int i = 3; i <= 5; i++){
digitalWrite(i, 0);
}
}
void loop() {
if(digitalRead(6) == HIGH){
state++;
while(digitalRead(6) == HIGH){
delay(50);
}
}
if(state == 1){
off();
digitalWrite(3, 1);
digitalWrite(5, 1);
servo.write(180);
delay(500);
servo.write(0);
} else if(state == 2){
off();
digitalWrite(4, 1);
servo.write(90);
delay(500);
servo.write(180);
delay(500);
servo.write(0);
} else if(state == 3){
for(int i = 0; i < 3; i++){
digitalWrite(3, 1);
digitalWrite(5, 1);
digitalWrite(4, 0);
servo.write(90);
delay(500);
servo.write(0);
delay(500);
servo.write(90);
delay(500);
digitalWrite(3, 0);
digitalWrite(5, 0);
digitalWrite(4, 1);
servo.write(180);
delay(500);
servo.write(90);
delay(500);
servo.write(0);
delay(500);
}
} else{
for(int i = 0; i < 3; i++){
digitalWrite(3, 1);
digitalWrite(3, 0);
delay(200);
digitalWrite(4, 1);
digitalWrite(4, 0);
delay(200);
digitalWrite(5, 1);
digitalWrite(5, 0);
delay(200);
}
off();
state = 0;
}
}
/*
Soal Simulasi
State 1: LED pada pin 3 dan 5 menyala, servo bergerak dari 0° ke 180°
lalu kembali ke 0°.
State 2: LED pada pin 4 menyala, servo bergerak dari 0° ke 90°, lalu ke 180°,
dan kembali ke 0°.
State 3: Ikutin aja polanya
State 4: state kembali ke 0, dan led menyala lalu mati kembali secara berurutan
sebanyak 3x
*/