from machine import Pin, PWM, ADC
from time import sleep
# RGB LED #1
red1 = PWM(Pin(2))
green1 = PWM(Pin(1))
blue1 = PWM(Pin(0))
# RGB LED #2
red2 = PWM(Pin(5))
green2 = PWM(Pin(4))
blue2 = PWM(Pin(3))
# RGB LED #3
red3 = PWM(Pin(8))
green3 = PWM(Pin(7))
blue3 = PWM(Pin(6))
# PWM frequency
red1.freq(1000)
green1.freq(1000)
blue1.freq(1000)
red2.freq(1000)
green2.freq(1000)
blue2.freq(1000)
red3.freq(1000)
green3.freq(1000)
blue3.freq(1000)
# Inputs
button = Pin(15, Pin.IN)
pot = ADC(Pin(26))
while True:
led_choice = input("Choose LED (1, 2, 3) or 0 to turn OFF all: ")
# OFF Button
if led_choice == "0":
red1.duty_u16(0)
green1.duty_u16(0)
blue1.duty_u16(0)
red2.duty_u16(0)
green2.duty_u16(0)
blue2.duty_u16(0)
red3.duty_u16(0)
green3.duty_u16(0)
blue3.duty_u16(0)
print("All LEDs turned OFF\n")
# LED #1
elif led_choice == "1":
print("Setting LED 1")
print("Slide pot to set RED, press button")
while button.value() == 0:
red_value = int(pot.read_u16() * 255 / 65535)
print("Red:", red_value)
sleep(0.1)
sleep(0.3)
print("Slide pot to set GREEN, press button")
while button.value() == 0:
green_value = int(pot.read_u16() * 255 / 65535)
print("Green:", green_value)
sleep(0.1)
sleep(0.3)
print("Slide pot to set BLUE, press button")
while button.value() == 0:
blue_value = int(pot.read_u16() * 255 / 65535)
print("Blue:", blue_value)
sleep(0.1)
sleep(0.3)
red1.duty_u16(red_value * 257)
green1.duty_u16(green_value * 257)
blue1.duty_u16(blue_value * 257)
print("LED 1 color set")
print("R:", red_value, "G:", green_value, "B:", blue_value, "\n")
# LED #2
elif led_choice == "2":
print("Setting LED 2")
print("Slide pot to set RED, press button")
while button.value() == 0:
red_value = int(pot.read_u16() * 255 / 65535)
print("Red:", red_value)
sleep(0.1)
sleep(0.3)
print("Slide pot to set GREEN, press button")
while button.value() == 0:
green_value = int(pot.read_u16() * 255 / 65535)
print("Green:", green_value)
sleep(0.1)
sleep(0.3)
print("Slide pot to set BLUE, press button")
while button.value() == 0:
blue_value = int(pot.read_u16() * 255 / 65535)
print("Blue:", blue_value)
sleep(0.1)
sleep(0.3)
red2.duty_u16(red_value * 257)
green2.duty_u16(green_value * 257)
blue2.duty_u16(blue_value * 257)
print("LED 2 color set")
print("R:", red_value, "G:", green_value, "B:", blue_value, "\n")
# LED #3
elif led_choice == "3":
print("Setting LED 3")
print("Slide pot to set RED, press button")
while button.value() == 0:
red_value = int(pot.read_u16() * 255 / 65535)
print("Red:", red_value)
sleep(0.1)
sleep(0.3)
print("Slide pot to set GREEN, press button")
while button.value() == 0:
green_value = int(pot.read_u16() * 255 / 65535)
print("Green:", green_value)
sleep(0.1)
sleep(0.3)
print("Slide pot to set BLUE, press button")
while button.value() == 0:
blue_value = int(pot.read_u16() * 255 / 65535)
print("Blue:", blue_value)
sleep(0.1)
sleep(0.3)
red3.duty_u16(red_value * 257)
green3.duty_u16(green_value * 257)
blue3.duty_u16(blue_value * 257)
print("LED 3 color set")
print("R:", red_value, "G:", green_value, "B:", blue_value, "\n")
# Other
else:
print("Invalid choice\n")