LA M2 P1




PERCOBAAN 1

1. Prosedur[Kembali]

  • Rangkai semua komponen sesuai dengan percobaan 1 pada modul 
  • Buat program untuk Rspberry pi pico, sesuaikan konfigurasinya dengan rangkaian dan kondisi yang dipakai
  • Masukkan Program ke Thony (micropython)
  • Upload program ke Raspberry Pi Pico

1. Raspberry PI PICO



2. LED




3. LDR

4. Buzzer 










3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Rangkaian: 






Prinsip Kerja:

Rangkaian ini menggunakan Raspberry Pi Pico sebagai mikrokontroler utama yang mengontrol dengan sensor LDR sebagai objek input yang dimana apabila kondisi terang atau ada cahaya masuk makan sensor akan aktif dan mentrigger dari LED dan Buzzer sebagai output dari Sensor LDR


4. Flowchart dan Listing Program[Kembali] 







Listing Program:

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  # hanya True saat kondisi 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  # nyalakan 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)  # sedikit delay supaya tidak terlalu cepat baca LDR



5. Analisa[Kembali]






6. Video Demo[Kembali]




7. Download File[Kembali]

Video simulasi [download]
Datasheet Raspberry Pi Pico [Download]

Comments

Popular posts from this blog