Laporan Akhir 1 Modul 2

 

[KEMBALI KE MENU SEBELUMNYA]



Laporan Akhir 1
 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 :

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]
Rangkaian Simulasi



Prinsip Kerja : 

Dalam sistem ini, Raspbherry Pi Pico sebagai pengatur dan pengelola data serta pemberi perintah. Prinsip kerja rangkaian ini diawali dengan inisialisasi semua pin—ADC untuk LDR, output digital untuk LED, dan channel PWM untuk buzzer—pada Raspberry Pi Pico. Setelah sistem dinyalakan, mikrokontroler melakukan pembacaan nilai ADC dari LDR untuk mendapatkan nilai lux awal sebagai “lux normal.” Selanjutnya, setiap siklus loop utama Pico membaca kembali nilai LDR dan mengonversinya menjadi lux; jika nilai lux aktu al melebihi ambang lux_normal + 50, maka dianggap terjadi peningkatan cahaya signifikan. Dalam kondisi itu LED akan berfungsi sebagai penanda visual berkedip setiap satu detik, sedangkan buzzer diaktifkan dengan duty cycle tetap dan frekuensi diubah-ubah secara berurutan (500 Hz, 600 Hz, …, hingga 900 Hz) untuk menghasilkan nada peringatan. Jika nilai lux tidak melewati ambang, LED dan buzzer dimatikan agar konsumsi daya minimal. Setiap perubahan LED dikendalikan oleh pengecekan waktu menggunakan fungsi utime.ticks_ms() untuk memastikan interval kedip tetap satu detik, sedangkan PWM buzzer secara langsung diatur lewat PWM.freq() dan PWM.duty_u16()—sehingga seluruh proses berjalan 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 File Rangkaian [Download]
Download Video Simulasi [Download]
Download Listing Program [Download]

Tidak ada komentar:

Posting Komentar

Popular Posts