Laporan Akhir Percobaan 1
2. Buat program untuk mikrokontroler Raspberry Pi Pico di software Thonny.
3. Inputkan program ke dalam mikrokontroler melalui USB.
4. Setelah program diinputkan, uji rangkaian yang telah dirangkai sesuai dengan output yang ditentukan.
Rangkaian ini terdiri dari beberapa komponen utama yaitu modul sensor cahaya LDR (Light Dependent Resistor), LED merah, buzzer, dan mikrokontroler Raspberry Pi Pico. Modul LDR berfungsi untuk mendeteksi intensitas cahaya lingkungan dan menghasilkan tegangan analog yang kemudian dikonversi ke digital oleh mikrokontroler. LED merah digunakan sebagai indikator visual, sementara buzzer berfungsi sebagai output suara dengan pengaturan PWM (Pulse Width Modulation). Dalam rangkaian ini, VCC sensor LDR terhubung ke pin ADC (analog-to-digital converter) pada Raspberry Pi Pico yaitu pin 3V3, groundnya dihubungkan ke ground 4, dan kaki A0 dihubungkan ke pin GP28. Sedangkan LED merah terhubung ke salah satu pin digital output yaitu GP6 melalui resistor sebagai pembatas arus dan juga terhubung ke ground 5. Terakhir buzzer terhubung ke pin PWM output GP15 dan terhubung ke ground 6.
Prinsip kerja dari Sistem ini dirancang untuk mendeteksi perubahan tingkat cahaya di lingkungan sekitar. Ketika pertama kali dinyalakan, alat akan mengukur cahaya ruangan dan menyimpannya sebagai nilai patokan normal. Jika kondisi cahaya tiba-tiba menjadi jauh lebih terang—sekitar 50 lux lebih rendah dari normal—maka sistem akan memberikan peringatan. Peringatan ini muncul dalam bentuk lampu LED merah yang berkedip selama 1 detik dan suara dari buzzer. Setelah 1 detik, lampu dan suara akan berhenti, dan alat kembali memantau cahaya seperti semula. Sistem seperti ini berguna untuk memberi tahu jika tiba-tiba ruangan menjadi terang.
Dengan pengaturan ini, sistem mampu memberikan peringatan visual dan audio ketika lingkungan menjadi lebih terang dari normal, dan dapat digunakan dalam berbagai aplikasi seperti alarm pencahayaan berlebih atau sistem notifikasi otomatis.
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(14)) # 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
Komentar
Posting Komentar