from machine import Pin
import time
# Regular LEDs
red_led = Pin(1, Pin.OUT)
blue_led = Pin(2, Pin.OUT)
green_led = Pin(3, Pin.OUT)
# RGB LED (Common Cathode)
rgb_red = Pin(6, Pin.OUT)
rgb_green = Pin(7, Pin.OUT)
rgb_blue = Pin(8, Pin.OUT)
# Button
button = Pin(15, Pin.IN, Pin.PULL_UP)
# State counter
count = 0
prev_state = 1 # Button is pulled-up, so idle is HIGH
# Helper to set LED states
def set_leds(red=False, blue=False, green=False):
red_led.value(red)
blue_led.value(blue)
green_led.value(green)
rgb_red.value(red)
rgb_blue.value(blue)
rgb_green.value(green)
while True:
current_state = button.value()
if prev_state == 1 and current_state == 0:
count = (count % 8) + 1
print("Button press #", count)
# Turn off all LEDs before changing
set_leds(False, False, False)
if count == 1:
set_leds(red=True)
elif count == 2:
set_leds(blue=True)
elif count == 3:
set_leds(green=True)
elif count == 4:
set_leds(red=True, green=True) # Yellow
elif count == 5:
set_leds(red=True, blue=True) # Magenta
elif count == 6:
set_leds(green=True, blue=True) # Cyan
elif count == 7:
set_leds(True, True, True) # White
elif count == 8:
set_leds(False, False, False) # All off
time.sleep(0.2)
prev_state = current_state