import time
import machine # type: ignore
buzzer = machine.Pin(19, machine.Pin.OUT)
ldr = machine.ADC(27)
buzzerpwm= machine.PWM(buzzer)
def map(valor, valor_min_entrada, valor_max_entrada, valor_min_salida, valor_max_salida):
return (int)((valor - valor_min_entrada) * (valor_max_salida - valor_min_salida) / (valor_max_entrada - valor_min_entrada) + valor_min_salida)
while True:
valorldr= ldr.read_u16()
print("ldr",valorldr,)
valormapeado= map(valorldr, 18000, 65000, 400, 912) if map(valorldr, 18000, 65000, 400, 912) >450 else 15
print(valormapeado)
mapanterior = valormapeado
while (valormapeado == 20 or (mapanterior+15>valormapeado and mapanterior-20<valormapeado)):
buzzerpwm.duty_u16(0)
valorldr= ldr.read_u16()
valormapeado= map(valorldr, 18000, 65000, 400, 912) if map(valorldr, 18000, 65000, 400, 912) >450 else 15
print(valormapeado)
buzzerpwm.duty_u16(4000)
buzzerpwm.freq(valormapeado)
time.sleep(.1)