from machine import Pin
from time import sleep

#Statusanzeige für Betrieb
Pin(28, Pin.OUT).value(1)

# Pins für LEDs (RGB)
ledPins = [
    [Pin(2, Pin.OUT), Pin(3, Pin.OUT), Pin(4, Pin.OUT)],  # LED 1 (R, G, B)
    [Pin(5, Pin.OUT), Pin(6, Pin.OUT), Pin(7, Pin.OUT)],  # LED 2 (R, G, B)
    [Pin(8, Pin.OUT), Pin(9, Pin.OUT), Pin(10, Pin.OUT)], # LED 3 (R, G, B)
    [Pin(11, Pin.OUT), Pin(12, Pin.OUT), Pin(13, Pin.OUT)], # LED 4 (R, G, B)
    [Pin(14, Pin.OUT), Pin(15, Pin.OUT), Pin(16, Pin.OUT)], # LED 5 (R, G, B)
    [Pin(17, Pin.OUT), Pin(18, Pin.OUT), Pin(19, Pin.OUT)], # LED 6 (R, G, B)
    [Pin(20, Pin.OUT), Pin(21, Pin.OUT), Pin(22, Pin.OUT)]  # LED 7 (R, G, B)
]

# Pins für Taster
buttonZu = Pin(0, Pin.IN, Pin.PULL_UP)  # Taster "GP0"
buttonAuf = Pin(1, Pin.IN, Pin.PULL_UP)  # Taster "GP1"

# Farben
RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW, WHITE = range(7)

# LED Status initialisieren (alle LEDs aus)
ledStates = [-1] * 7  # Alle LEDs beginnen im "aus"-Zustand (-1)

# Setzt die Farbe einer LED
def setLEDColor(led, color):
    # Definiert die Farben, die die LEDs annehmen können
    colors = [
        (1, 0, 0),  # Rot
        (0, 1, 0),  # Grün
        (0, 0, 1),  # Blau
        (0, 1, 1),  # Cyan
        (1, 0, 1),  # Magenta
        (1, 1, 0),  # Gelb
        (1, 1, 1)   # Weiß
    ]
    
    if color == -1:  # LED ausschalten
        for pin in ledPins[led]:
            pin.value(0)  # Alle Pins der LED auf LOW setzen
    else:
        for pin, value in zip(ledPins[led], colors[color]):
            pin.value(value)  # Die RGB-Pins der LED setzen

# Sleep Check Funktion Auf
def sleep_check(duration):
    '''Pause für 'duration' Sekunden. Abbrechen, wenn ein Taster gedrückt wird.'''
    steps = int(duration * 1000 / 100)  # Unterteile in 100-ms-Intervalle
    for _ in range(steps):
        if buttonAuf.value():  # Taster gedrückt
            return
        sleep_ms(100)

# Sleep Check Funktion Zu
def sleep_check.Zu(duration):
    '''Pause für 'duration' Sekunden. Abbrechen, wenn ein Taster gedrückt wird.'''
    steps = int(duration * 1000 / 100)  # Unterteile in 100-ms-Intervalle
    for _ in range(steps):
        if buttonZu.value():  # Taster gedrückt
            return
        sleep_ms(100)

# Hauptprogramm

while True:



# -------------------------Anfang--------------------- #



# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Blau + GP0 Kontakt mit GND -> nichts passiert
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and 
            ledStates[4] == BLUE and ledStates[5] == BLUE and 
            ledStates[6] == BLUE):  # Prüfen, ob LED 1-7 den Zustand Blau haben.
        # Nichts passiert.
            pass

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Weiß + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and 
            ledStates[4] == WHITE and ledStates[5] == WHITE and 
            ledStates[6] == WHITE):  # Prüfen, ob LED 1-7 den Zustand Weiß haben.
        # Schritt 1: Die erste bis siebte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
            setLEDColor(4, YELLOW)  # LED 5 auf Gelb setzen.
            setLEDColor(5, YELLOW)  # LED 6 auf Gelb setzen.
            setLEDColor(6, YELLOW)  # LED 7 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.
            ledStates[4] = YELLOW  # Zustand von LED 5 auf Gelb aktualisieren.
            ledStates[5] = YELLOW  # Zustand von LED 6 auf Gelb aktualisieren.
            ledStates[6] = YELLOW  # Zustand von LED 7 auf Gelb aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Gelb + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and 
            ledStates[4] == YELLOW and ledStates[5] == YELLOW and 
            ledStates[6] == YELLOW):  # Prüfen, ob LED 1-7 den Zustand Gelb haben.
        # Schritt 1: Die erste bis siebte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
            setLEDColor(4, CYAN)  # LED 5 auf Cyan setzen.
            setLEDColor(5, CYAN)  # LED 6 auf Cyan setzen.
            setLEDColor(6, CYAN)  # LED 7 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.
            ledStates[4] = CYAN  # Zustand von LED 5 auf Cyan aktualisieren.
            ledStates[5] = CYAN  # Zustand von LED 6 auf Cyan aktualisieren.
            ledStates[6] = CYAN  # Zustand von LED 7 auf Cyan aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Cyan + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and 
            ledStates[4] == CYAN and ledStates[5] == CYAN and 
            ledStates[6] == CYAN):  # Prüfen, ob LED 1-7 den Zustand Cyan haben.
        # Schritt 1: Die erste bis siebte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
            setLEDColor(4, MAGENTA)  # LED 5 auf Magenta setzen.
            setLEDColor(5, MAGENTA)  # LED 6 auf Magenta setzen.
            setLEDColor(6, MAGENTA)  # LED 7 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.
            ledStates[4] = MAGENTA  # Zustand von LED 5 auf Magenta aktualisieren.
            ledStates[5] = MAGENTA  # Zustand von LED 6 auf Magenta aktualisieren.
            ledStates[6] = MAGENTA  # Zustand von LED 7 auf Magenta aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Magenta + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Blau um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and 
            ledStates[4] == MAGENTA and ledStates[5] == MAGENTA and 
            ledStates[6] == MAGENTA):  # Prüfen, ob LED 1-7 den Zustand Magenta haben.
        # Schritt 1: Die erste bis siebte LED auf Blau umschalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
            setLEDColor(1, BLUE)  # LED 2 auf Blau setzen.
            setLEDColor(2, BLUE)  # LED 3 auf Blau setzen.
            setLEDColor(3, BLUE)  # LED 4 auf Blau setzen.
            setLEDColor(4, BLUE)  # LED 5 auf Blau setzen.
            setLEDColor(5, BLUE)  # LED 6 auf Blau setzen.
            setLEDColor(6, BLUE)  # LED 7 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.
            ledStates[1] = BLUE  # Zustand von LED 2 auf Blau aktualisieren.
            ledStates[2] = BLUE  # Zustand von LED 3 auf Blau aktualisieren.
            ledStates[3] = BLUE  # Zustand von LED 4 auf Blau aktualisieren.
            ledStates[4] = BLUE  # Zustand von LED 5 auf Blau aktualisieren.
            ledStates[5] = BLUE  # Zustand von LED 6 auf Blau aktualisieren.
            ledStates[6] = BLUE  # Zustand von LED 7 auf Blau aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Blau + GP0 Kontakt mit GND -> siebte LED wird in Blau an geschalten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and 
            ledStates[4] == BLUE and ledStates[5] == BLUE and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4, 5 und 6 den Zustand Blau haben.
        # Schritt 1: Die siebte LED auf Blau schalten.
            setLEDColor(6, BLUE)  # LED 7 auf Blau setzen.
            ledStates[6] = BLUE  # Zustand von LED 7 auf Blau aktualisieren.

        # Kein Warten erforderlich, da explizit nur der Zustand geändert wird.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Weiß + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and 
            ledStates[4] == WHITE and ledStates[5] == WHITE and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4, 5 und 6 den Zustand Weiß haben.
        # Schritt 1: Die erste, zweite, dritte, vierte, fünfte und sechste LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
            setLEDColor(4, YELLOW)  # LED 5 auf Gelb setzen.
            setLEDColor(5, YELLOW)  # LED 6 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.
            ledStates[4] = YELLOW  # Zustand von LED 5 auf Gelb aktualisieren.
            ledStates[5] = YELLOW  # Zustand von LED 6 auf Gelb aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Gelb + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and 
            ledStates[4] == YELLOW and ledStates[5] == YELLOW and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4, 5 und 6 den Zustand Gelb haben.
        # Schritt 1: Die erste, zweite, dritte, vierte, fünfte und sechste LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
            setLEDColor(4, CYAN)  # LED 5 auf Cyan setzen.
            setLEDColor(5, CYAN)  # LED 6 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.
            ledStates[4] = CYAN  # Zustand von LED 5 auf Cyan aktualisieren.
            ledStates[5] = CYAN  # Zustand von LED 6 auf Cyan aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Cyan + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and 
            ledStates[4] == CYAN and ledStates[5] == CYAN and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4, 5 und 6 den Zustand Cyan haben.
        # Schritt 1: Die erste, zweite, dritte, vierte, fünfte und sechste LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
            setLEDColor(4, MAGENTA)  # LED 5 auf Magenta setzen.
            setLEDColor(5, MAGENTA)  # LED 6 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.
            ledStates[4] = MAGENTA  # Zustand von LED 5 auf Magenta aktualisieren.
            ledStates[5] = MAGENTA  # Zustand von LED 6 auf Magenta aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Magenta + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werden in Blau um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and 
            ledStates[4] == MAGENTA and ledStates[5] == MAGENTA and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4, 5 und 6 den Zustand Magenta haben.
        # Schritt 1: Die erste, zweite, dritte, vierte, fünfte und sechste LED auf Blau umschalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
            setLEDColor(1, BLUE)  # LED 2 auf Blau setzen.
            setLEDColor(2, BLUE)  # LED 3 auf Blau setzen.
            setLEDColor(3, BLUE)  # LED 4 auf Blau setzen.
            setLEDColor(4, BLUE)  # LED 5 auf Blau setzen.
            setLEDColor(5, BLUE)  # LED 6 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.
            ledStates[1] = BLUE  # Zustand von LED 2 auf Blau aktualisieren.
            ledStates[2] = BLUE  # Zustand von LED 3 auf Blau aktualisieren.
            ledStates[3] = BLUE  # Zustand von LED 4 auf Blau aktualisieren.
            ledStates[4] = BLUE  # Zustand von LED 5 auf Blau aktualisieren.
            ledStates[5] = BLUE  # Zustand von LED 6 auf Blau aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Blau + GP0 Kontakt mit GND -> sechste LED wird in Blau an geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and 
            ledStates[4] == BLUE and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4 und 5 den Zustand Blau haben.
        # Schritt 1: Die sechste LED auf Blau schalten.
            setLEDColor(5, BLUE)  # LED 6 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[5] = BLUE  # Zustand von LED 6 auf Blau aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Weiß + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werde in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and 
            ledStates[4] == WHITE and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4 und 5 den Zustand Weiß haben.
        # Schritt 1: Die erste, zweite, dritte, vierte und fünfte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
            setLEDColor(4, YELLOW)  # LED 5 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.
            ledStates[4] = YELLOW  # Zustand von LED 5 auf Gelb aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Gelb + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werde in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and 
            ledStates[4] == YELLOW and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4 und 5 den Zustand Gelb haben.
        # Schritt 1: Die erste, zweite, dritte, vierte und fünfte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
            setLEDColor(4, CYAN)  # LED 5 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.
            ledStates[4] = CYAN  # Zustand von LED 5 auf Cyan aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Cyan + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werde in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and 
            ledStates[4] == CYAN and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4 und 5 den Zustand Cyan haben.
        # Schritt 1: Die erste, zweite, dritte, vierte und fünfte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
            setLEDColor(4, MAGENTA)  # LED 5 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.
            ledStates[4] = MAGENTA  # Zustand von LED 5 auf Magenta aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Magenta + GP0 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werde in Blau um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and 
            ledStates[4] == MAGENTA and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3, 4 und 5 den Zustand Magenta haben.
        # Schritt 1: Die erste, zweite, dritte, vierte und fünfte LED auf Blau umschalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
            setLEDColor(1, BLUE)  # LED 2 auf Blau setzen.
            setLEDColor(2, BLUE)  # LED 3 auf Blau setzen.
            setLEDColor(3, BLUE)  # LED 4 auf Blau setzen.
            setLEDColor(4, BLUE)  # LED 5 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.
            ledStates[1] = BLUE  # Zustand von LED 2 auf Blau aktualisieren.
            ledStates[2] = BLUE  # Zustand von LED 3 auf Blau aktualisieren.
            ledStates[3] = BLUE  # Zustand von LED 4 auf Blau aktualisieren.
            ledStates[4] = BLUE  # Zustand von LED 5 auf Blau aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Blau + GP0 Kontakt mit GND -> fünfte LED wird in Blau an geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and 
            ledStates[4] == -1 and ledStates[5] == -1 and 
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3 und 4 den Zustand Blau haben.
        # Schritt 1: Die fünfte LED auf Blau schalten.
            setLEDColor(4, BLUE)  # LED 5 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[4] = BLUE  # Zustand von LED 5 auf Blau aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Weiß + GP0 Kontakt mit GND -> erste, zweite, dritte und vierte LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and 
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3 und 4 den Zustand Weiß haben.
        # Schritt 1: Die erste, zweite, dritte und vierte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Gelb + GP0 Kontakt mit GND -> erste, zweite, dritte und vierte LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3 und 4 den Zustand Gelb haben.
        # Schritt 1: Die erste, zweite, dritte und vierte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Cyan + GP0 Kontakt mit GND -> erste, zweite, dritte und vierte LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3 und 4 den Zustand Cyan haben.
        # Schritt 1: Die erste, zweite, dritte und vierte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Magenta + GP0 Kontakt mit GND -> erste, zweite, dritte und vierte LED werden in Blau um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2, 3 und 4 den Zustand Magenta haben.
        # Schritt 1: Die erste, zweite, dritte und vierte LED auf Blau umschalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
            setLEDColor(1, BLUE)  # LED 2 auf Blau setzen.
            setLEDColor(2, BLUE)  # LED 3 auf Blau setzen.
            setLEDColor(3, BLUE)  # LED 4 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.
            ledStates[1] = BLUE  # Zustand von LED 2 auf Blau aktualisieren.
            ledStates[2] = BLUE  # Zustand von LED 3 auf Blau aktualisieren.
            ledStates[3] = BLUE  # Zustand von LED 4 auf Blau aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Blau + GP0 Kontakt mit GND -> vierte LED wird in Blau an geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2 und 3 den Zustand Blau haben.
        # Schritt 1: Die vierte LED auf Blau schalten.
            setLEDColor(3, BLUE)  # LED 4 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[3] = BLUE  # Zustand von LED 4 auf Blau aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Weiß + GP0 Kontakt mit GND -> erste, zweite und dritte LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2 und 3 den Zustand Weiß haben.
        # Schritt 1: Die erste, zweite und dritte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Gelb + GP0 Kontakt mit GND -> erste, zweite und dritte LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2 und 3 den Zustand Gelb haben.
        # Schritt 1: Die erste, zweite und dritte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Cyan + GP0 Kontakt mit GND -> erste, zweite und dritte LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2 und 3 den Zustand Cyan haben.
        # Schritt 1: Die erste, zweite und dritte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Magenta + GP0 Kontakt mit GND -> erste, zweite und dritte LED werden in Blau um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1, 2 und 3 den Zustand Magenta haben.
        # Schritt 1: Die erste, zweite und dritte LED auf Blau umschalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
            setLEDColor(1, BLUE)  # LED 2 auf Blau setzen.
            setLEDColor(2, BLUE)  # LED 3 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.
            ledStates[1] = BLUE  # Zustand von LED 2 auf Blau aktualisieren.
            ledStates[2] = BLUE  # Zustand von LED 3 auf Blau aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Blau + GP0 Kontakt mit GND -> dritte LED wird in Blau an geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste und zweite LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und LED 2 den Zustand Blau haben.
        # Schritt 1: Die dritte LED auf Blau schalten.
            setLEDColor(2, BLUE)  # LED 3 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[2] = BLUE  # Zustand von LED 3 auf Blau aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Weiß + GP0 Kontakt mit GND -> erste und zweite LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste und zweite LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und LED 2 den Zustand Weiß haben.
        # Schritt 1: Die erste und zweite LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Gelb + GP0 Kontakt mit GND -> erste und zweite LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste und zweite LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und LED 2 den Zustand Gelb haben.
        # Schritt 1: Die erste und zweite LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Cyan + GP0 Kontakt mit GND -> erste und zweite LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste und zweite LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und LED 2 den Zustand Cyan haben.
        # Schritt 1: Die erste und zweite LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Magenta + GP0 Kontakt mit GND -> erste und zweite LED werden in Blau um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste und zweite LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und LED 2 den Zustand Magenta haben.
        # Schritt 1: Die erste und zweite LED auf Blau umschalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
            setLEDColor(1, BLUE)  # LED 2 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.
            ledStates[1] = BLUE  # Zustand von LED 2 auf Blau aktualisieren.

# >>> erste LED ist an und leuchtet in Blau + GP0 Kontakt mit GND -> zweite LED wird in Blau an geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste LED an ist und Blau leuchtet.
        if (ledStates[0] == BLUE and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Blau hat.
        # Schritt 1: Die zweite LED auf Blau schalten.
            setLEDColor(1, BLUE)  # LED 2 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[1] = BLUE  # Zustand von LED 2 auf Blau aktualisieren.

# >>> erste LED ist an und leuchtet in Weiß + GP0 Kontakt mit GND -> erste LED wird in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste LED an ist und Weiß leuchtet.
        if (ledStates[0] == WHITE and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Weiß hat.
        # Schritt 1: Die erste LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.

# >>> erste LED ist an und leuchtet in Gelb + GP0 Kontakt mit GND -> erste LED wird in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste LED an ist und Gelb leuchtet.
        if (ledStates[0] == YELLOW and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Gelb hat.
        # Schritt 1: Die erste LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.

# >>> erste LED ist an und leuchtet in Cyan + GP0 Kontakt mit GND -> erste LED wird in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste LED an ist und Cyan leuchtet.
        if (ledStates[0] == CYAN and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Cyan hat.
        # Schritt 1: Die erste LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.

# >>> erste LED ist an und leuchtet in Magenta + GP0 Kontakt mit GND -> erste LED wird in Blau um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob die erste LED an ist und Magenta leuchtet.
        if (ledStates[0] == MAGENTA and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Magenta hat.
        # Schritt 1: Die erste LED auf Blau umschalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.

# >>> alle LEDs aus + GP0 Kontakt mit GND -> erste LED wird in Blau an geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP0" gedrückt wurde (LOW = gedrückt).
    if not buttonZu.value():
    # Überprüfen, ob alle LEDs aus sind.
        if all(state == -1 for state in ledStates):  # Prüft, ob alle LEDs den Zustand "aus" (-1) haben.
        # Schritt 1: Die erste LED auf Blau schalten.
            setLEDColor(0, BLUE)  # LED 1 auf Blau setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check.Zu(2)

            ledStates[0] = BLUE  # Zustand von LED 1 auf Blau aktualisieren.








# --------------------Zu/Auf------------------------- #






# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Blau + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and 
            ledStates[4] == BLUE and ledStates[5] == BLUE and 
            ledStates[6] == BLUE):  # Prüfen, ob LED 1-7 den Zustand Blau haben.
        # Schritt 1: Die erste bis siebte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
            setLEDColor(4, MAGENTA)  # LED 5 auf Magenta setzen.
            setLEDColor(5, MAGENTA)  # LED 6 auf Magenta setzen.
            setLEDColor(6, MAGENTA)  # LED 7 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.
            ledStates[4] = MAGENTA  # Zustand von LED 5 auf Magenta aktualisieren.
            ledStates[5] = MAGENTA  # Zustand von LED 6 auf Magenta aktualisieren.
            ledStates[6] = MAGENTA  # Zustand von LED 7 auf Magenta aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Magenta + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and 
            ledStates[4] == MAGENTA and ledStates[5] == MAGENTA and 
            ledStates[6] == MAGENTA):  # Prüfen, ob LED 1-7 den Zustand Magenta haben.
        # Schritt 1: Die erste bis siebte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
            setLEDColor(4, CYAN)  # LED 5 auf Cyan setzen.
            setLEDColor(5, CYAN)  # LED 6 auf Cyan setzen.
            setLEDColor(6, CYAN)  # LED 7 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.
            ledStates[4] = CYAN  # Zustand von LED 5 auf Cyan aktualisieren.
            ledStates[5] = CYAN  # Zustand von LED 6 auf Cyan aktualisieren.
            ledStates[6] = CYAN  # Zustand von LED 7 auf Cyan aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Cyan + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and 
            ledStates[4] == CYAN and ledStates[5] == CYAN and 
            ledStates[6] == CYAN):  # Prüfen, ob LED 1-7 den Zustand Cyan haben.
        # Schritt 1: Die erste bis siebte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
            setLEDColor(4, YELLOW)  # LED 5 auf Gelb setzen.
            setLEDColor(5, YELLOW)  # LED 6 auf Gelb setzen.
            setLEDColor(6, YELLOW)  # LED 7 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.
            ledStates[4] = YELLOW  # Zustand von LED 5 auf Gelb aktualisieren.
            ledStates[5] = YELLOW  # Zustand von LED 6 auf Gelb aktualisieren.
            ledStates[6] = YELLOW  # Zustand von LED 7 auf Gelb aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Gelb + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED werden in Weiß um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and 
            ledStates[4] == YELLOW and ledStates[5] == YELLOW and 
            ledStates[6] == YELLOW):  # Prüfen, ob LED 1-7 den Zustand Gelb haben.
        # Schritt 1: Die erste bis siebte LED auf Weiß umschalten.
            setLEDColor(0, WHITE)  # LED 1 auf Weiß setzen.
            setLEDColor(1, WHITE)  # LED 2 auf Weiß setzen.
            setLEDColor(2, WHITE)  # LED 3 auf Weiß setzen.
            setLEDColor(3, WHITE)  # LED 4 auf Weiß setzen.
            setLEDColor(4, WHITE)  # LED 5 auf Weiß setzen.
            setLEDColor(5, WHITE)  # LED 6 auf Weiß setzen.
            setLEDColor(6, WHITE)  # LED 7 auf Weiß setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = WHITE  # Zustand von LED 1 auf Weiß aktualisieren.
            ledStates[1] = WHITE  # Zustand von LED 2 auf Weiß aktualisieren.
            ledStates[2] = WHITE  # Zustand von LED 3 auf Weiß aktualisieren.
            ledStates[3] = WHITE  # Zustand von LED 4 auf Weiß aktualisieren.
            ledStates[4] = WHITE  # Zustand von LED 5 auf Weiß aktualisieren.
            ledStates[5] = WHITE  # Zustand von LED 6 auf Weiß aktualisieren.
            ledStates[6] = WHITE  # Zustand von LED 7 auf Weiß aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte, sechste und siebte LED sind an und leuchten in Weiß + GP1 Kontakt mit GND -> siebte LED wird aus geschalten; erste, zweite, dritte, vierte, fünfte und sechste LED sind weiterhin an und leuchten Weiß + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte, sechste und siebte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and 
            ledStates[4] == WHITE and ledStates[5] == WHITE and 
            ledStates[6] == WHITE):  # Prüfen, ob LED 1-7 den Zustand Weiß haben.
        # Schritt 1: Die siebte LED ausschalten.
            setLEDColor(6, -1)  # LED 7 ausschalten (keine Farbe).
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[6] = -1  # Zustand von LED 7 auf aus setzen.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Blau + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werde in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and 
            ledStates[4] == BLUE and ledStates[5] == BLUE and
            ledStates[6] == -1):  # Prüfen, ob LED 1-6 den Zustand Blau haben.
        # Schritt 1: Die erste bis sechste LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
            setLEDColor(4, MAGENTA)  # LED 5 auf Magenta setzen.
            setLEDColor(5, MAGENTA)  # LED 6 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.
            ledStates[4] = MAGENTA  # Zustand von LED 5 auf Magenta aktualisieren.
            ledStates[5] = MAGENTA  # Zustand von LED 6 auf Magenta aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Magenta + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werde in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and 
            ledStates[4] == MAGENTA and ledStates[5] == MAGENTA and
            ledStates[6] == -1):  # Prüfen, ob LED 1-6 den Zustand Magenta haben.
        # Schritt 1: Die erste bis sechste LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
            setLEDColor(4, CYAN)  # LED 5 auf Cyan setzen.
            setLEDColor(5, CYAN)  # LED 6 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.
            ledStates[4] = CYAN  # Zustand von LED 5 auf Cyan aktualisieren.
            ledStates[5] = CYAN  # Zustand von LED 6 auf Cyan aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Cyan + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werde in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and 
            ledStates[4] == CYAN and ledStates[5] == CYAN and
            ledStates[6] == -1):  # Prüfen, ob LED 1-6 den Zustand Cyan haben.
        # Schritt 1: Die erste bis sechste LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
            setLEDColor(4, YELLOW)  # LED 5 auf Gelb setzen.
            setLEDColor(5, YELLOW)  # LED 6 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.
            ledStates[4] = YELLOW  # Zustand von LED 5 auf Gelb aktualisieren.
            ledStates[5] = YELLOW  # Zustand von LED 6 auf Gelb aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Gelb + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte, fünfte und sechste LED werde in Weiß um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and 
            ledStates[4] == YELLOW and ledStates[5] == YELLOW and
            ledStates[6] == -1):  # Prüfen, ob LED 1-6 den Zustand Gelb haben.
        # Schritt 1: Die erste bis sechste LED auf Weiß umschalten.
            setLEDColor(0, WHITE)  # LED 1 auf Weiß setzen.
            setLEDColor(1, WHITE)  # LED 2 auf Weiß setzen.
            setLEDColor(2, WHITE)  # LED 3 auf Weiß setzen.
            setLEDColor(3, WHITE)  # LED 4 auf Weiß setzen.
            setLEDColor(4, WHITE)  # LED 5 auf Weiß setzen.
            setLEDColor(5, WHITE)  # LED 6 auf Weiß setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = WHITE  # Zustand von LED 1 auf Weiß aktualisieren.
            ledStates[1] = WHITE  # Zustand von LED 2 auf Weiß aktualisieren.
            ledStates[2] = WHITE  # Zustand von LED 3 auf Weiß aktualisieren.
            ledStates[3] = WHITE  # Zustand von LED 4 auf Weiß aktualisieren.
            ledStates[4] = WHITE  # Zustand von LED 5 auf Weiß aktualisieren.
            ledStates[5] = WHITE  # Zustand von LED 6 auf Weiß aktualisieren.

# >>> erste, zweite, dritte, vierte, fünfte und sechste LED sind an und leuchten in Weiß + GP1 Kontakt mit GND -> sechste LED wird aus geschalten; erste, zweite, dritte, vierte und fünfte LED sind weiterhin an und leuchten Weiß + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte, fünfte und sechste LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and 
            ledStates[4] == WHITE and ledStates[5] == WHITE and
            ledStates[6] == -1):  # Prüfen, ob LED 1-6 den Zustand Weiß haben.
        # Schritt 1: Die sechste LED ausschalten.
            setLEDColor(5, -1)  # LED 6 ausschalten (keine Farbe).
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[5] = -1  # Zustand von LED 6 auf aus setzen.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Blau + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and 
            ledStates[4] == BLUE and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-5 den Zustand Blau haben.
        # Schritt 1: Die erste bis fünfte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
            setLEDColor(4, MAGENTA)  # LED 5 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.
            ledStates[4] = MAGENTA  # Zustand von LED 5 auf Magenta aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Magenta + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and 
            ledStates[4] == MAGENTA and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-5 den Zustand Magenta haben.
        # Schritt 1: Die erste bis fünfte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
            setLEDColor(4, CYAN)  # LED 5 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.
            ledStates[4] = CYAN  # Zustand von LED 5 auf Cyan aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Cyan + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and 
            ledStates[4] == CYAN and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-5 den Zustand Cyan haben.
        # Schritt 1: Die erste bis fünfte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
            setLEDColor(4, YELLOW)  # LED 5 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.
            ledStates[4] = YELLOW  # Zustand von LED 5 auf Gelb aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Gelb + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Weiß um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and 
            ledStates[4] == YELLOW and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-5 den Zustand Gelb haben.
        # Schritt 1: Die erste bis fünfte LED auf Weiß umschalten.
            setLEDColor(0, WHITE)  # LED 1 auf Weiß setzen.
            setLEDColor(1, WHITE)  # LED 2 auf Weiß setzen.
            setLEDColor(2, WHITE)  # LED 3 auf Weiß setzen.
            setLEDColor(3, WHITE)  # LED 4 auf Weiß setzen.
            setLEDColor(4, WHITE)  # LED 5 auf Weiß setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = WHITE  # Zustand von LED 1 auf Weiß aktualisieren.
            ledStates[1] = WHITE  # Zustand von LED 2 auf Weiß aktualisieren.
            ledStates[2] = WHITE  # Zustand von LED 3 auf Weiß aktualisieren.
            ledStates[3] = WHITE  # Zustand von LED 4 auf Weiß aktualisieren.
            ledStates[4] = WHITE  # Zustand von LED 5 auf Weiß aktualisieren.

# >>> erste, zweite, dritte, vierte und fünfte LED sind an und leuchten in Weiß + GP1 Kontakt mit GND -> fünfte LED wird aus geschalten; erste, zweite, dritte und vierte LED sind weiterhin an und leuchten Weiß + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte, vierte und fünfte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and 
            ledStates[4] == WHITE and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-5 den Zustand Weiß haben.
        # Schritt 1: Die fünfte LED ausschalten.
            setLEDColor(4, -1)  # LED 5 ausschalten (keine Farbe).
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[4] = -1  # Zustand von LED 5 auf aus setzen.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Blau + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == BLUE and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-4 den Zustand Blau haben.
        # Schritt 1: Die erste bis fünfte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
            setLEDColor(3, MAGENTA)  # LED 4 auf Magenta setzen.
            setLEDColor(4, MAGENTA)  # LED 5 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.
            ledStates[3] = MAGENTA  # Zustand von LED 4 auf Magenta aktualisieren.
            ledStates[4] = MAGENTA  # Zustand von LED 5 auf Magenta aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Magenta + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == MAGENTA and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-4 den Zustand Magenta haben.
        # Schritt 1: Die erste bis fünfte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
            setLEDColor(3, CYAN)  # LED 4 auf Cyan setzen.
            setLEDColor(4, CYAN)  # LED 5 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.
            ledStates[3] = CYAN  # Zustand von LED 4 auf Cyan aktualisieren.
            ledStates[4] = CYAN  # Zustand von LED 5 auf Cyan aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Cyan + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == CYAN and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-4 den Zustand Cyan haben.
        # Schritt 1: Die erste bis fünfte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
            setLEDColor(3, YELLOW)  # LED 4 auf Gelb setzen.
            setLEDColor(4, YELLOW)  # LED 5 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.
            ledStates[3] = YELLOW  # Zustand von LED 4 auf Gelb aktualisieren.
            ledStates[4] = YELLOW  # Zustand von LED 5 auf Gelb aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Gelb + GP1 Kontakt mit GND -> erste, zweite, dritte, vierte und fünfte LED werden in Weiß um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == YELLOW and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-4 den Zustand Gelb haben.
        # Schritt 1: Die erste bis fünfte LED auf Weiß umschalten.
            setLEDColor(0, WHITE)  # LED 1 auf Weiß setzen.
            setLEDColor(1, WHITE)  # LED 2 auf Weiß setzen.
            setLEDColor(2, WHITE)  # LED 3 auf Weiß setzen.
            setLEDColor(3, WHITE)  # LED 4 auf Weiß setzen.
            setLEDColor(4, WHITE)  # LED 5 auf Weiß setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = WHITE  # Zustand von LED 1 auf Weiß aktualisieren.
            ledStates[1] = WHITE  # Zustand von LED 2 auf Weiß aktualisieren.
            ledStates[2] = WHITE  # Zustand von LED 3 auf Weiß aktualisieren.
            ledStates[3] = WHITE  # Zustand von LED 4 auf Weiß aktualisieren.
            ledStates[4] = WHITE  # Zustand von LED 5 auf Weiß aktualisieren.

# >>> erste, zweite, dritte und vierte LED sind an und leuchten in Weiß + GP1 Kontakt mit GND -> vierte LED wird aus geschalten; erste, zweite und dritte LED sind weiterhin an und leuchten Weiß + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite, dritte und vierte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == WHITE and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-4 den Zustand Weiß haben.
        # Schritt 1: Die vierte LED ausschalten.
            setLEDColor(3, -1)  # LED 4 ausschalten (keine Farbe).
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[3] = -1  # Zustand von LED 4 auf aus setzen.

# >>> erste, zweite und dritte LED sind an und leuchten in Blau + GP1 Kontakt mit GND -> erste, zweite und dritte LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and 
            ledStates[2] == BLUE and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-3 den Zustand Blau haben.
        # Schritt 1: Die erste bis dritte LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
            setLEDColor(2, MAGENTA)  # LED 3 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.
            ledStates[2] = MAGENTA  # Zustand von LED 3 auf Magenta aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Magenta + GP1 Kontakt mit GND -> erste, zweite und dritte LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and 
            ledStates[2] == MAGENTA and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-3 den Zustand Magenta haben.
        # Schritt 1: Die erste bis dritte LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
            setLEDColor(2, CYAN)  # LED 3 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.
            ledStates[2] = CYAN  # Zustand von LED 3 auf Cyan aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Cyan + GP1 Kontakt mit GND -> erste, zweite und dritte LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and 
            ledStates[2] == CYAN and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-3 den Zustand Cyan haben.
        # Schritt 1: Die erste bis dritte LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
            setLEDColor(2, YELLOW)  # LED 3 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.
            ledStates[2] = YELLOW  # Zustand von LED 3 auf Gelb aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Gelb + GP1 Kontakt mit GND -> erste, zweite und dritte LED werden in Weiß um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and 
            ledStates[2] == YELLOW and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-3 den Zustand Gelb haben.
        # Schritt 1: Die erste bis dritte LED auf Weiß umschalten.
            setLEDColor(0, WHITE)  # LED 1 auf Weiß setzen.
            setLEDColor(1, WHITE)  # LED 2 auf Weiß setzen.
            setLEDColor(2, WHITE)  # LED 3 auf Weiß setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = WHITE  # Zustand von LED 1 auf Weiß aktualisieren.
            ledStates[1] = WHITE  # Zustand von LED 2 auf Weiß aktualisieren.
            ledStates[2] = WHITE  # Zustand von LED 3 auf Weiß aktualisieren.

# >>> erste, zweite und dritte LED sind an und leuchten in Weiß + GP1 Kontakt mit GND -> dritte LED wird aus geschalten; erste und zweite LED sind weiterhin an und leuchten Weiß + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste, zweite und dritte LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and 
            ledStates[2] == WHITE and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1-3 den Zustand Weiß haben.
        # Schritt 1: Die dritte LED ausschalten.
            setLEDColor(2, -1)  # LED 3 ausschalten (keine Farbe).
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[2] = -1  # Zustand von LED 3 auf aus setzen.

# >>> erste und zweite LED sind an und leuchten in Blau + GP1 Kontakt mit GND -> erste und zweite LED werden in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste und zweite LED an sind und Blau leuchten.
        if (ledStates[0] == BLUE and ledStates[1] == BLUE and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und 2 den Zustand Blau haben.
        # Schritt 1: Die erste und zweite LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
            setLEDColor(1, MAGENTA)  # LED 2 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.
            ledStates[1] = MAGENTA  # Zustand von LED 2 auf Magenta aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Magenta + GP1 Kontakt mit GND -> erste und zweite LED werden in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste und zweite LED an sind und Magenta leuchten.
        if (ledStates[0] == MAGENTA and ledStates[1] == MAGENTA and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und 2 den Zustand Magenta haben.
        # Schritt 1: Die erste und zweite LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
            setLEDColor(1, CYAN)  # LED 2 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.
            ledStates[1] = CYAN  # Zustand von LED 2 auf Cyan aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Cyan + GP1 Kontakt mit GND -> erste und zweite LED werden in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste und zweite LED an sind und Cyan leuchten.
        if (ledStates[0] == CYAN and ledStates[1] == CYAN and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und 2 den Zustand Cyan haben.
        # Schritt 1: Die erste und zweite LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
            setLEDColor(1, YELLOW)  # LED 2 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.
            ledStates[1] = YELLOW  # Zustand von LED 2 auf Gelb aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Gelb + GP1 Kontakt mit GND -> erste und zweite LED werden in Weiß um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste und zweite LED an sind und Gelb leuchten.
        if (ledStates[0] == YELLOW and ledStates[1] == YELLOW and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und 2 den Zustand Gelb haben.
        # Schritt 1: Die erste und zweite LED auf Weiß umschalten.
            setLEDColor(0, WHITE)  # LED 1 auf Weiß setzen.
            setLEDColor(1, WHITE)  # LED 2 auf Weiß setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = WHITE  # Zustand von LED 1 auf Weiß aktualisieren.
            ledStates[1] = WHITE  # Zustand von LED 2 auf Weiß aktualisieren.

# >>> erste und zweite LED sind an und leuchten in Weiß + GP1 Kontakt mit GND -> zweite LED wird aus geschalten; erste LED ist weiterhin an und leuchten in Weiß + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste und zweite LED an sind und Weiß leuchten.
        if (ledStates[0] == WHITE and ledStates[1] == WHITE and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 und 2 den Zustand Weiß haben.
        # Schritt 1: Die zweite LED ausschalten.
            setLEDColor(1, -1)  # LED 2 ausschalten (keine Farbe).
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[1] = -1  # Zustand von LED 2 auf aus setzen.

# >>> erste LED ist an und leuchten in Blau + GP1 Kontakt mit GND -> erste LED wird in Magenta um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste LED an ist und Blau leuchtet.
        if (ledStates[0] == BLUE and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Blau hat.
        # Schritt 1: Die erste LED auf Magenta umschalten.
            setLEDColor(0, MAGENTA)  # LED 1 auf Magenta setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = MAGENTA  # Zustand von LED 1 auf Magenta aktualisieren.

# >>> erste LED ist an und leuchten in Magenta + GP1 Kontakt mit GND -> erste LED wird in Cyan um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste LED an ist und Magenta leuchtet.
        if (ledStates[0] == MAGENTA and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Magenta hat.
        # Schritt 1: Die erste LED auf Cyan umschalten.
            setLEDColor(0, CYAN)  # LED 1 auf Cyan setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = CYAN  # Zustand von LED 1 auf Cyan aktualisieren.

# >>> erste LED ist an und leuchten in Cyan + GP1 Kontakt mit GND -> erste LED wird in Gelb um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste LED an ist und Cyan leuchtet.
        if (ledStates[0] == CYAN and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Cyan hat.
        # Schritt 1: Die erste LED auf Gelb umschalten.
            setLEDColor(0, YELLOW)  # LED 1 auf Gelb setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = YELLOW  # Zustand von LED 1 auf Gelb aktualisieren.

# >>> erste LED ist an und leuchten in Gelb + GP1 Kontakt mit GND -> erste LED wird in Weiß um geschalten + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste LED an ist und Gelb leuchtet.
        if (ledStates[0] == YELLOW and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Gelb hat.
        # Schritt 1: Die erste LED auf Weiß umschalten.
            setLEDColor(0, WHITE)  # LED 1 auf Weiß setzen.
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = WHITE  # Zustand von LED 1 auf Weiß aktualisieren.

# >>> erste LED ist an und leuchten in Weiß + GP1 Kontakt mit GND -> erste LED wird aus geschalten; keine LED leuchtet mehr + 2sek warten
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob die erste LED an ist und Weiß leuchtet.
        if (ledStates[0] == WHITE and ledStates[1] == -1 and
            ledStates[2] == -1 and ledStates[3] == -1 and
            ledStates[4] == -1 and ledStates[5] == -1 and
            ledStates[6] == -1):  # Prüfen, ob LED 1 den Zustand Weiß hat.
        # Schritt 1: Die erste LED ausschalten.
            setLEDColor(0, -1)  # LED 1 ausschalten (keine Farbe).
        # Schritt 2: 2 Sekunden warten.
            sleep_check(2)

            ledStates[0] = -1  # Zustand von LED 1 auf aus setzen.

# >>> keine LED ist an + GP1 Kontakt mit GND -> nichts passiert
    # Überprüfen, ob der Taster "GP1" gedrückt wurde (LOW = gedrückt).
    if not buttonAuf.value():  # GP1 ist gedrückt
    # Überprüfen, ob keine LED an ist.
        if all(state == -1 for state in ledStates):  # Prüfen, ob alle LEDs ausgeschaltet sind.
        # Schritt 1: Nichts tun, wenn keine LED an ist.
            pass  # Es passiert nichts

    # Keine weitere Aktion nötig, da keine LED an ist.
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT