#include <Servo.h>
Servo servo;
const int buttonUpPin = 11;
const int buttonPreviousPin = 12;
int lastButtonUpState = LOW;
int lastButtonPreviousState = LOW;
int angle = 0;
int previousAngle = 0;
void setup() {
Serial.begin(9600);
pinMode(buttonUpPin, INPUT);
pinMode(buttonPreviousPin, INPUT);
servo.attach(9);
servo.write(angle);
}
void loop() {
int buttonUpState = digitalRead(buttonUpPin);
int buttonPreviousState = digitalRead(buttonPreviousPin);
if (buttonUpState != lastButtonUpState) {
if (buttonUpState == HIGH) {
previousAngle = angle;
angle += 20;
if( angle > 180)
angle = 180;
servo.write(angle);
}
lastButtonUpState = buttonUpState;
}
if (buttonPreviousState != lastButtonPreviousState) {
if (buttonPreviousState == HIGH) {
servo.write(previousAngle);
}
lastButtonPreviousState = buttonPreviousState;
}
delay( 20); // slow down the sketch, and also a debounce
}