Der folgende Code erfüllt die oben genannten Anforderungen in der einfachsten Variante:
Code:
#define button1Pin  2
#define button2Pin  3
#define ledPin     13
#define PRESSED  HIGH

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(button1Pin, INPUT);
  pinMode(button2Pin, INPUT);
}

void loop() {
  static unsigned long pressed_ms = 500;
  if( digitalRead(button1Pin) == PRESSED) {
    pressed_ms = 0;
    do {
      delay(20);
      pressed_ms += 20;
    } while(digitalRead(button1Pin) == PRESSED);
  }
  if( digitalRead(button2Pin) == PRESSED ) {
    digitalWrite(ledPin, HIGH);
    delay(pressed_ms);
    digitalWrite(ledPin, LOW);
  }
}