from machine import Pin, ADC
import utime
# Pin setup
ldr = ADC(28)
led = Pin(6, Pin.OUT)
buzzer = Pin(15, Pin.OUT) # Ganti dari PWM ke digital pin
# Fungsi konversi
def adc_to_lux(adc_value):
return (adc_value / 65535) * 900 + 10
# Kalibrasi awal
print("Kalibrasi pencahayaan...")
start_time = utime.ticks_ms()
lux_sum = 0
count = 0
while utime.ticks_diff(utime.ticks_ms(), start_time) < 5000:
lux = adc_to_lux(ldr.read_u16())
lux_sum += lux
count += 1
utime.sleep(0.1)
lux_normal = lux_sum / count
print(f"Kalibrasi selesai. Lux Normal: {lux_normal:.2f} lux")
# Loop utama
while True:
lux = adc_to_lux(ldr.read_u16())
print(f"Lux Sekarang: {lux:.2f} lux")
if lux < (lux_normal - 50):
print("❗ Gelap! LED dan Buzzer aktif selama 3 detik.")
buzzer.on() # Aktifkan buzzer digital
start_blink = utime.ticks_ms()
while utime.ticks_diff(utime.ticks_ms(), start_blink) < 3000:
led.toggle()
utime.sleep(0.5)
led.off()
buzzer.off()
else:
led.off()
buzzer.off()
utime.sleep(0.2)