#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
}