from machine import Pin, I2C, ADC, PWM
import ssd1306
import time
# OLED
i2c = I2C(0, scl=Pin(1), sda=Pin(0), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c)
# Potensiometer (ADC)
pot = ADC(Pin(26))
# LED PWM
led = PWM(Pin(16))
led.freq(1000)
while True:
raw = pot.read_u16() # 0 - 65535
voltage = raw * 3.3 / 65535 # Konversi ke voltase
duty = raw # PWM duty cycle = nilai ADC
led.duty_u16(duty) # Set kecerahan LED
brightness_pct = int(raw / 65535 * 100)
oled.fill(0)
oled.text("LED Controller", 0, 0)
oled.text("-" * 16, 0, 10)
oled.text("Voltase:", 0, 22)
oled.text(f"{voltage:.2f} V", 20, 34)
oled.text("Brightness:", 0, 46)
oled.text(f"{brightness_pct} %", 20, 56)
oled.show()
time.sleep(0.1)