#include <Servo.h>
Servo myservo;
int buttonPin = 4;
int buttonState;
int lastButtonState = HIGH;
int currentAngle = 90;
int step = 30;
bool direction = true;
void setup() {
myservo.attach(9);
pinMode(buttonPin, INPUT_PULLUP);
myservo.write(currentAngle);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == LOW && lastButtonState == HIGH) {
if (direction) {
currentAngle += step;
if (currentAngle >= 180) {
currentAngle = 180;
direction = false;
}
} else {
currentAngle -= step;
if (currentAngle <= 0) {
currentAngle = 0;
direction = true;
}
}
myservo.write(currentAngle);
delay(200);
}
lastButtonState = buttonState;
}