from machine import Pin, I2C, ADC
from lcd_api import LcdApi
from i2c_lcd import I2cLcd
from time import sleep
# I2C setup
i2c = I2C(0, sda=Pin(21), scl=Pin(22), freq=100000)
lcd = I2cLcd(i2c, 0x27, 2, 16)
# Potentiometer setup
pot = ADC(Pin(33))
pot.width(ADC.WIDTH_9BIT) # 0–511
pot.atten(ADC.ATTN_11DB) # 0–3.3V
while True:
a = pot.read()
voltage = (a / 511) * 3.3 # convert ADC value to voltage
# Show voltage on LCD
lcd.clear()
lcd.move_to(0, 0)
lcd.putstr("Voltage:")
lcd.move_to(0, 1)
lcd.putstr("{:.2f} V".format(voltage))
# Backlight control (ON/OFF)
if voltage > 1.5: # threshold value
lcd.backlight_on()
else:
lcd.backlight_off()
sleep(0.3)