import time
from machine import I2C,SoftI2C,Pin, ADC, PWM
from pico_i2c_lcd import I2cLcd
# freq 4000-5000 for banner type behaviour
i2c=SoftI2C(sda=Pin(1),scl=Pin(2),freq=500000)
lcd_address=i2c.scan()[0]
lcd=I2cLcd(i2c,lcd_address,2,16)
lcd.putstr("Amitesh")
led = PWM(Pin(3))
led.freq(10000)
pot = ADC(Pin(27))
while True:
val = pot.read_u16()
volt = round((3.3 / 65535) * val, 2)
percent = int(val / 65535 * 100)
brt = int(65535 * (volt / 3.3)) # Mapping voltage to PWM range
# Setting a fixed frequency for LED PWM
led.duty_u16(brt) # Setting LED brightness based on voltage
lcd.move_to(0, 0)
lcd.putstr("Voltage: " + str(volt) + "V\n")
lcd.putstr("Percent: " + str(percent) + "%")
time.sleep(1)
lcd.clear()