from machine import ADC, Pin
import math, time
# Configuração do pino do LDR e do ADC
ldr_pin = Pin(13)
adc = ADC(ldr_pin)
# Configurar o atenuador para faixa de voltagem de 0V a 5V
adc.atten(ADC.ATTN_11DB)
# Configurar a resolução do ADC para 12 bits
adc.width(ADC.WIDTH_12BIT)
# Constantes correspondentes aos atributos do fotoresistor
gamma = 0.7
rl10 = 50
def map_value(x, in_min, in_max, out_min, out_max):
return (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min
while True:
time.sleep(1)
ldr_value = adc.read()
mapped_value = int(map_value(ldr_value, 4095, 0, 1024, 0))
voltage = mapped_value / 1024.0 * 5.0
resistance = 2000 * voltage / (1 - voltage / 5.0)
lux = math.pow(rl10 * 1e3 * math.pow(10, gamma) / resistance, (1 / gamma))
print(f"Lux = {lux}, Resistance = {resistance}")