Passt!
Beliebig viele Tasten/Kontakte verwendbar, nacheiender oder ~gleichzeitig~.
Pro Taste/Kontakt wird ledigtlich der "Zwischenspeicher" TasteMi, TasteLi kopiert und umbennat.
Entpreller() setzt die Entprellzeit (Bsp.5ms) aus Sicherheitsgründen hinter die letzte Zustandsänderung.

HTML-Code:
void loop() {
  switch(TasteLi(TasteLiPin)) {
    case 0: Ausgang(LEDrtPin, 0); TZ("T/LINKS auf -0- entprellt!"); break;
    case 1: Ausgang(LEDrtPin, 1); TZ("T/LINKS auf -1- entprellt!"); break;
    case 2: TZ("Meldung: T/LINKS IN Entprellung"); break;   
  }

  switch (TasteMi(TasteMiPin))  {
    case 0: Ausgang(LEDgePin, 0); TZ("T/MITTE auf -0- entprellt!"); break; 
    case 1: Ausgang(LEDgePin, 1); TZ("T/MITTE auf -1- entprellt!"); break;
    case 2: TZ("Meldung: T/MITTE IN Entprellung"); break;
  }
}

//Kontakt Zustandsänderung, nur FunktionsName ändern, Rest ist Universell
int TasteLi(int KontPin) {  //Prüfung; gibt 4 Zustand zurück; 0...Entprellt+LOW, 1...Entprellt+HIGH, 2...IN Entprellung, 3...keine Zustandsänderung
  static unsigned long StartZeit = 0; 
  static int KontZustAlt = digitalRead(KontPin);
  static int EntprellStatus = digitalRead(KontPin); 
 return Entpreller(KontPin, StartZeit, KontZustAlt, EntprellStatus); 
}

//Kontakt Zustandsänderung, nur FunktionsName ändern, Rest ist Universell
int TasteMi(int KontPin) {  //Prüfung; gibt 4 Zustand zurück; 0...Entprellt+LOW, 1...Entprellt+HIGH, 2...IN Entprellung, 3...keine Zustandsänderung
  static unsigned long StartZeit = 0;   
  static int KontZustAlt = digitalRead(KontPin);  
  static int EntprellStatus = digitalRead(KontPin); 
  return Entpreller(KontPin, StartZeit, KontZustAlt, EntprellStatus); 
}

//Kontakt-Entprellung; gibt 4 Zustände zurück; 0...Entprellt+LOW, 1...Entprellt+HIGH, 2...derzeit in Entprellung, 3...keine Zustandsänderung
int Entpreller(int KontPin, unsigned long &StartZeit, int &KontZustAlt, int &EntprellStatus) {
  int KontZustNeu = 0;
  if((KontZustNeu = digitalRead(KontPin)) == EntprellStatus) {
    return 3; 
  }
  if(KontZustNeu != KontZustAlt) { 
    StartZeit = millis(); 
    KontZustAlt = KontZustNeu;
  }
  if(KontZustAlt == 0 && (millis() >= StartZeit + EntprellZeit)) 
    EntprellStatus = 0; 
  else if(KontZustAlt == 1 && (millis() >= StartZeit + EntprellZeit)) 
    EntprellStatus = 1; 
  else
    EntprellStatus = 2; 
  
  return EntprellStatus;
}
PS:
Was haltet ihr von dem code?
Wie kann ich das ganze jetzt in eine Bib. packen?
Vermutlich kann nur Entpreller() ausgelagert werden - oder?