from machine import Pin, PWM, ADC
import utime
# Inisialisasi pin
ldr_sensor = ADC(28) # Sensor LDR di pin GP28
lampu_led = Pin(6, Pin.OUT) # LED merah di pin GP6
suara_buzzer = PWM(Pin(15)) # Buzzer dengan PWM di pin GP15
# Konfigurasi awal buzzer
suara_buzzer.freq(1000)
suara_buzzer.duty_u16(0)
# Fungsi konversi nilai ADC menjadi satuan lux
def konversi_adc_ke_lux(nilai_adc):
return (65535 - nilai_adc) / 65535 * 1000
# Ambang batas lux normal
batas_lux = 200
# Program utama
while True:
nilai_adc = ldr_sensor.read_u16()
nilai_lux = konversi_adc_ke_lux(nilai_adc)
print(f"Nilai ADC: {nilai_adc} | Estimasi Lux: {nilai_lux:.2f}")
if nilai_lux > batas_lux:
print(f"Lux di atas 200 dengan nilai {nilai_lux:.2f}, LED merah berkedip dan buzzer aktif.")
# Buzzer duty cycle 45%
suara_buzzer.duty_u16(int(0.45 * 65535))
# LED berkedip selama 4 detik
waktu_awal = utime.ticks_ms()
while utime.ticks_diff(utime.ticks_ms(), waktu_awal) < 4000:
lampu_led.toggle()
utime.sleep(0.5)
# Matikan buzzer dan LED setelah 4 detik
suara_buzzer.duty_u16(0)
lampu_led.off()
else:
suara_buzzer.duty_u16(0)
lampu_led.off()
utime.sleep(0.2)