#include <Servo.h>
const int BUTTON_PIN = 13;
const int FIRST_SERVO_PIN = 11;
Servo firstServo;
const float positionZero = 0.0;
const float positionRotated = 180.0;
const float step = 30.0;
float currentPosition;
boolean state = false;
boolean lastButtonState = HIGH;
boolean currentButtonState = HIGH;
void setup()
{
pinMode(BUTTON_PIN, INPUT_PULLUP);
firstServo.attach(FIRST_SERVO_PIN);
firstServo.write(positionZero);
currentPosition = positionZero;
}
void loop()
{
boolean currentButtonState = digitalRead(BUTTON_PIN);
if (currentButtonState != lastButtonState &&
currentButtonState == LOW) {
if (state) {
currentPosition -= step;
} else {
currentPosition += step;
}
firstServo.write(currentPosition);
if (currentPosition == positionZero) {
state = false;
}
if (currentPosition == positionRotated) {
state = true;
}
}
lastButtonState = currentButtonState;
delay(50);
}