from machine import Pin, ADC
import time
print("Hello, ESP32!")
print("Ahmad Zuhairi Bin Wahidudin")
# Define LED pins
led_pins = [33, 32, 25, 12, 13]
# Create LED objects
leds = [Pin(pin, Pin.OUT) for pin in led_pins]
# Define potentiometer pin
pot_pin = 34
adc = ADC(Pin(pot_pin))
adc.atten(ADC.ATTN_11DB) # Set attenuation to 11 dB for 3.3V range
# Function to light up LEDs based on potentiometer value
def update_leds(value):
for i in range(len(leds)):
leds[i].off() # Turn off all LEDs
if value < 20:
pass # All LEDs off
elif 20 <= value < 30:
leds[0].on()
elif 30 <= value < 50:
leds[0].on()
leds[1].on()
elif 50 <= value < 80:
leds[0].on()
leds[1].on()
leds[2].on()
else:
for led in leds:
led.on() # All LEDs on
# Main loop
while True:
pot_value = adc.read() # Read potentiometer value
percentage = (pot_value / 4095) * 100 # Convert to percentage (assuming 12-bit ADC)
update_leds(percentage) # Update LEDs based on percentage
time.sleep(0.5) # Adjust delay as needed