from machine import Pin, PWM, ADC
from time import sleep
#setup PWM for RGB pins
red = PWM(Pin(2))
green = PWM(Pin(1))
blue = PWM(Pin(0))
red.freq(1000)
green.freq(1000)
blue.freq(1000)
#Setup potentiometer and button
button = Pin(15, Pin.IN)
pot = ADC(Pin(26))
#repeat full process until user says so
keep_going = True
while keep_going:
#Set RED
print ('Slide the pot to set RED value (0-255), press button to confirm')
sleep(1)
button_pressed = 0
while button_pressed == 0:
red_value = int(pot.read_u16()/ 65535 * 255)
print("Red: ", red_value)
sleep(0.1)
if button.value()==1:
sleep(0.3)
while button.value() == 1:
pass
button_pressed =1
print("\nRed set to:", red_value)
print ('Slide the pot to set GREEN value (0-255), press button to confirm')
sleep(1)
button_pressed = 0
while button_pressed == 0:
green_value = int(pot.read_u16()/ 65535 * 255)
print("Green: ", green_value)
sleep(0.1)
if button.value()==1:
sleep(0.3)
while button.value() == 1:
pass
button_pressed =1
print("\nGreen set to:", green_value)
print ('Slide the pot to set BLUE value (0-255), press button to confirm')
sleep(1)
button_pressed = 0
while button_pressed == 0:
blue_value = int(pot.read_u16()/ 65535 * 255)
print("Blue: ", blue_value)
sleep(0.1)
if button.value()==1:
sleep(0.3)
while button.value() == 1:
pass
button_pressed =1
print("\nBlue set to:", blue_value)
#show selected coloron RGB led
red.duty_u16(int(red_value / 255 * 65535))
green.duty_u16(int(green_value / 255 * 65535))
blue.duty_u16(int(blue_value / 255 * 65535))
print("\nRGB Color set!")
print("Red: ", red_value)
print("Green: ", green_value)
print("Blue: ", blue_value)
answer = input("Do you want to make another color (yes/no:) ")
if answer == "no":
print("Program ended")
break
elif answer != "yes":
print("Invalid Input, Exiting")
break