eine LED nach der anderen über tastendruck

Dein Problem ist nicht die Erkennung des Signals, dein problem ist, dass du zu langsam für den uC bist. In meinem Code wird der Taster schon softwaremäßig entprellt (5ms). Eine weitere Verzögerung ist im Code noch nicht enthalten. D.h. der Code braucht wahrscheinlich weniger als 10ms zum durchlaufen. Wenn du den Taster 0,5s drückst läuft die Schleife mindestens 50 mal durch -> LEDs werden durchgejagt. Wenn es langsamer gehen soll, füg ein delay am Ende des if-Blocks ein. Wenn bei jeder steigenden Flanke eine LED geschaltet werden soll musst du halt den Flankenwechsel und nicht den Schalterzustand abfragen

// This code turns a led on/off through a debounced switch

#include <Bounce.h>

// This code turns a led on/off through a debounced button
// Build the circuit indicated here: http://arduino.cc/en/Tutorial/Button

#define BUTTON 8 //schalterPin
int ledPin[] = {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45};
int i;
int schalterStatus;
int oldschalterStatus = LOW;
int counter=0;

// Instantiate a Bounce object with a 5 millisecond debounce time
Bounce bouncer = Bounce( BUTTON,5 ); 

void setup() {
  pinMode(BUTTON,INPUT);
  for (i=0; i<16;i++)
  {
  pinMode(ledPin[i],OUTPUT);
  }
  //erste LED soll leuchten beim einschalten
  digitalWrite(30,HIGH);
}

void loop() {

// Update the debouncer
bouncer.update ( );
// Get the update value
schalterStatus = bouncer.read();
 
// Abfragen des Flankenwechsels
if ( schalterStatus == HIGH && oldschalterStatus == LOW)
   {
   counter = counter + 1;
      // Rücksetzen beim erreichen der letzten led
      if(counter>15)
      {
      counter=0;
      }
   //Pins Ausschalten
   for (i=0; i<counter; i++)
      {
      digitalWrite(ledPin[i],LOW);
      }
   // Pin einschalten
   digitalWrite(ledPin[counter],HIGH);
   //Pins ausschalten
   for (i=counter+1; i<16; i++)
      {
     digitalWrite(ledPin[i],LOW);
     }
   } 
oldschalterStatus=schalterStatus;
}

Wenn beim Drücken mehrere LEDs durchlaufen musst du die Entprellzeit hochsetzen [Bounce bouncer = Bounce( BUTTON,5); <-Die 5 größer machen]. Das ist vom Taster abhängig.