from machine import ADC, Pin, I2C,time_pulse_us
from time import sleep, sleep_us
from pico_i2c_lcd import I2cLcd
import math
i2c=I2C(0,sda=Pin(20), scl=Pin(21), freq=400000)
LCD_I2C_ADDRESS = 0x27
LCD_ROWS = 2
LCD_COLS = 16
I2C_ADDR=i2c.scan()[0]
lcd = I2cLcd(i2c, LCD_I2C_ADDRESS, LCD_ROWS, LCD_COLS)
GAMMA = 0.7
RL10 = 50
ldr_pin = ADC(28)
while True:
# ldr_value = ldr_pin.read_u16()
# lux = 500 * ((65535 - ldr_value) / ldr_value)
analogValue = ldr_pin.read_u16() + 1
voltage = analogValue / 65536 * 5
resistance = 2000 * voltage / (1 - voltage / 5)
lux = math.pow((RL10 * 1000 * math.pow(10, GAMMA) / resistance), (1 / GAMMA))
lcd.clear()
lcd.putstr(str(int(lux)))
sleep(1)