Laporan Akhir 1 Modul 2

 



Laporan Akhir 1 Modul 2
LED, Buzzer, dan LDR

1. Prosedur 
[Kembali]

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Buat program untuk mikrokontroler Raspbherry Pi Pico di Thonny IDE
3. Running Program di Raspbherry Pi Pico
5. Selesai.

2. Hardware dan Diagram Blok [Kembali]

Hardware :

Hardware :

a) Mikrokontroler Raspbherry Pi Pico








2. LDR




3. LED



4. Power Supply

 
5. Buzzer


6. Resistor


Diagram Blok  :



3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]





Raspberry Pi Pico berfungsi sebagai pengendali utama dalam sistem ini. Rangkaian dimulai dengan inisialisasi pin ADC untuk LDR, pin digital untuk LED, dan channel PWM untuk buzzer. Saat sistem aktif, mikrokontroler membaca nilai ADC dari LDR untuk menentukan nilai lux awal sebagai acuan normal. Setiap siklus, Pico membaca ulang nilai lux. Jika terdeteksi kenaikan lebih dari 50 lux dari nilai normal, LED berkedip tiap satu detik sebagai penanda visual, dan buzzer berbunyi dengan frekuensi berubah dari 500 Hz hingga 900 Hz. Jika nilai lux tidak melebihi ambang, LED dan buzzer dimatikan untuk menghemat daya. Interval kedip LED dikendalikan oleh utime.ticks_ms(), sedangkan buzzer diatur melalui PWM.freq() dan PWM.duty_u16(). Seluruh proses berlangsung otomatis.


4. Flowchart dan Listing Program [Kembali]

Flowchart :





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. Video Demo  [Kembali]





6. Analisa  [Kembali]













7. Download File [Kembali]

Download HTML [Download]
Download File Rangkaian [Download]
Download Video Simulasi [Download]
Download Raspberry pipico[Download]

Komentar

Postingan populer dari blog ini

PERANGKAT LUNAK

Modul 2

Laporan Akhir 1 Modul 1