# https://randomnerdtutorials.com/micropython-gpios-esp32-esp8266/
# add 4 more leds to this project;
# instead of dimming one single led
# to indicate value from potentiometer,
# light off all leds when
# analog value < 20%
# led1 on when value 20% to 30%
# led1 and led2 on when value 30%---50%
# led1,2,3 on when value 50% to 80%
# all leds on when more than 80%
# from machine import Pin, ADC, PWM
# from time import sleep
from machine import Pin, ADC
from time import sleep
# Initialize LEDs
led1 = Pin(0, Pin.OUT) # Change pin numbers as needed
led2 = Pin(4, Pin.OUT)
led3 = Pin(16, Pin.OUT)
led4 = Pin(17, Pin.OUT)
# Initialize button and potentiometer
# button = Pin(2, Pin.IN)
pot = ADC(Pin(15))
pot.width(ADC.WIDTH_10BIT)
pot.atten(ADC.ATTN_11DB)
def update_leds(pot_value_percentage):
if pot_value_percentage < 20:
led1.value(0), led2.value(0), led3.value(0), led4.value(0)
elif 20 <= pot_value_percentage < 30:
led1.value(1), led2.value(0), led3.value(0), led4.value(0)
elif 30 <= pot_value_percentage < 50:
led1.value(1), led2.value(1), led3.value(0), led4.value(0)
elif 50 <= pot_value_percentage < 80:
led1.value(1), led2.value(1), led3.value(1), led4.value(0)
else:
led1.value(1), led2.value(1), led3.value(1), led4.value(1)
while True:
# button_state = button.value()
# led1.value(button_state) # Assuming you want to keep using led1 for the button
pot_value = pot.read()
pot_value_percentage = (pot_value / 1023) * 100 # Convert to percentage
update_leds(pot_value_percentage)
sleep(0.1)