LA 1 MODUL 2 PRAKTIKUM UP UC
- Rangkai semua komponen pada breadboard yang terhubung ke Raspberry Pi Pico.
- Hubungkan Raspberry Pi Pico dengan aplikasi Thony IDE menggunakan kabel USB
- Build program yang telah dibuat, lalu inputkan program ke dalam mikrokontroler melalui stlink.
- Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
- Selesai.
from machine import Pin, PWM, ADC import utime # Pin Setup ldr = ADC(28) # Pin AO dari LDR ke GP28 ldr_digital = Pin(0, Pin.IN) # Pin DO dari LDR ke GP0 led = Pin(6, Pin.OUT) # LED di GP6 buzzer = PWM(Pin(15)) # Buzzer di GP15 dengan PWM # Konfigurasi PWM Buzzer buzzer.freq(1000) # Frekuensi awal buzzer (1kHz) buzzer.duty_u16(0) # Mulai dengan buzzer mati # Fungsi untuk mengonversi nilai ADC ke lux def adc_to_lux(adc_value): return (adc_value / 65535) * 900 + 10 # Rentang 10 - 1000 lux # Variabel untuk menyimpan kondisi normal awal lux_normal = 0 # Variabel untuk kedip LED last_blink_time = utime.ticks_ms() led_state = False led_should_blink = False # True saat mendeteksi perubahan cahaya signifikan # Loop utama while True: analog_value = ldr.read_u16() lux = adc_to_lux(analog_value) if lux_normal == 0: lux_normal = lux print(f"Lux Normal: {lux_normal}") print(f"LDR Value: {analog_value} | Lux: {lux}") if lux > lux_normal + 50: led_should_blink = True # Aktifkan mode kedip buzzer.duty_u16(30000) # Nyalakan buzzer for i in range(500, 1000, 100): # Variasi frekuensi buzzer buzzer.freq(i) utime.sleep(0.1) else: led_should_blink = False led.off() buzzer.duty_u16(0) # Kedip LED jika perlu if led_should_blink: current_time = utime.ticks_ms() if utime.ticks_diff(current_time, last_blink_time) >= 1000: led_state = not led_state led.value(led_state) last_blink_time = current_time utime.sleep(0.1) # Delay agar pembacaan LDR tidak terlalu cepat
Komentar
Posting Komentar