/*
 */

//***** Portpins für Ein-/Ausgänge ****************************************
const int Enc_A = 34, Enc_B = 35, Enc_Taster = 0, NEO_Pin=26;
const int LED_rot = 32, LED_gruen = 33, Taster2 = 2, Taster4 = 4;

// ***** Datentyp für Zustände ********************************************
enum Zustaende_t { Anz_Info, Einst_Stunden, Einst_Minuten, Einst_Temp};
Zustaende_t Menu;    // Variable vom Typ Zustaende_t

// ***** Globale Variablen ************************************************
bool T2_neu, T2_alt, T4_neu, T4_alt;  // für Flankenerkennung
unsigned long nextMillis;
bool T_druck;

// ***** Initialisierung **************************************************
void setup() {
  Serial.begin(115200);            // Serielle Schnittstelle mit 115200Bit/s
  pinMode(LED_rot, OUTPUT);        // die LEDs beginnen danach
  pinMode(LED_gruen, OUTPUT);      // zu leuchten!
  digitalWrite(LED_rot, HIGH);     // also beide ausschalten
  digitalWrite(LED_gruen, HIGH);
  pinMode(Taster2, INPUT_PULLUP); // Taster brauchen hier den
  pinMode(Taster4, INPUT_PULLUP); // Pullup-Widerstand
  
  Menu = Anz_Info;
  Serial.printf("Zustand %d\n", Zustand);   
}

// ***** Endlosschleife ***************************************************
void loop() {
  unsigned long currentMillis = millis( );
  if ( currentMillis >= nextMillis ) {
    nextMillis = currentMillis + 50;    // 20x pro Sekunde
    Einlesen( );
    SteuerungDisplay( );
    Ausgeben( );
  }
}
  

// ***** Eigene Funktionen ************************************************
// ***** Einlesenfunktion: liest alle Eingänge und speichert in globalen Variablen
void Einlesen ( ) {
  // Flankenerkennung
  T2_neu = digitalRead(Taster2);
  if ( T2_neu == 0 && T2_alt == 1) {  // fallende Flanke = Tastendruck
    T_druck = true;
  }
  else {
    T_druck = false;
  }
  T2_alt = T2_neu;  // für Flankenerkennung
}

// ***** Automaten-Funktion ***********************************************
void SteuerungDisplay ( ) {
 switch(Menu) {
  case Anz_Info:  digitalWrite(LED_rot, HIGH);  // Ausschalten
            if (T_druck == true) {
              Zustand = Z1;
              Serial.println("Gehe in Zustand Z1");
            }
            break;
  case Z1:  digitalWrite(LED_rot, LOW);   // Einschalten
            if (T_druck == true) {
              Zustand = Z0;
              Serial.println("Gehe in Zustand Z0");
            }
            break;
  default:  break;
 }
}
// ***** Ausgabe-Funktion *************************************************
// ***** Schreibe den Wert der globalen Variablen an die Ausgänge *********
void Ausgeben( ) {
  
}

Taster2
Taster4
LED32
LED33
ESP32 Schulboard mit LEDs und Tastern, I2C-Bus mit Standard-Belegung
SSD1306 Display
WS2812 an Pin26