#include <Servo.h>
Servo myservo;
#define tombol1 4
#define tombol2 3
int state, countPb;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(tombol1, INPUT);
pinMode(tombol2, INPUT);
myservo.attach(10);
}
void loop() {
// put your main code here, to run repeatedly:
int valPb1 = digitalRead(tombol1);
int valPb2 = digitalRead(tombol2);
while (true) {
if (state == 0) {
myservo.write(0);
if (valPb1 == 1) {
state = 1;
break;
}
}
if (state == 1) {
for (int i = 0; i < 180; i++) {
delay(20);
myservo.write(i);
if (valPb1 == 1) {
i = 180;
}
}
myservo.write(0);
if (valPb1 == 0) countPb = 1;
if (countPb == 1 && valPb1 == 1) {
countPb = 0;
state = 2;
break;
}
}
if (state == 2) {
for (int i = 180; i > 0; i--) {
delay(20);
myservo.write(i);
if (valPb1 == 1) {
i = 0;
}
}
myservo.write(180);
if (valPb1 == 0) countPb = 1;
if (countPb == 1 && valPb1 == 1) {
countPb = 0;
state = 3;
break;
}
}
if (state == 3) {
myservo.write(0);
delay(500);
myservo.write(180);
delay(500);
if (valPb1 == 0) countPb = 1;
if (countPb == 1 && valPb1 == 1) {
countPb = 0;
state = 1;
break;
}
}
}
if (valPb2 == 1) {
countPb = 0;
state = 0;
}
Serial.println(state);
}