1. Prosedur [kembali]
1. Rangkai rangkaian di website wokwi sesuai dengan kondisi percobaan.
2. Buat program di website wokwi.
4. Setelah program selesai, jalankan simulasi rangkaian pada website wokwi sesuai kondisi.5. Selesai.
2. Hardware dan Diagram Blok [kembali]
Hardware
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
- Rangkaian sebelum di running
- Prinsip Kerja
Rangkaian ini menggunakan Raspberry Pi Pico sebagai pusat kendali yang memantau intensitas cahaya lingkungan melalui sensor LDR (Light Dependent Resistor). Sensor LDR terhubung ke pin ADC (GP28) pada Raspberry Pi Pico dan akan mengirimkan nilai analog yang mewakili tingkat kecerahan cahaya. Pada awal program dijalankan, sistem menyimpan nilai lux awal sebagai nilai cahaya normal (lux_normal). Setiap saat, Raspberry Pi Pico membaca nilai lux terbaru dari LDR dan membandingkannya dengan nilai normal tersebut.
LDR dipasangkan dengan resistor tetap dalam konfigurasi pembagi tegangan, sehingga nilai tegangan yang terbaca oleh pin ADC akan berubah sesuai dengan intensitas cahaya yang diterima. Ketika Raspberry Pi Pico mendeteksi bahwa nilai intensitas cahaya yang diterima lebih besar dari 250 Lux, maka sistem akan merespons dengan mengaktifkan LED merah dan buzzer. LED merah akan berkedip (menyala dan mati secara bergantian) selama 4 detik, sedangkan buzzer akan menyala dengan duty cycle sebesar 45% dalam waktu yang sama. Duty cycle ini berarti buzzer akan aktif selama 45% dari setiap siklus waktu (misalnya menyala 45 ms dan mati 55 ms dalam setiap 100 ms). Setelah waktu 4 detik berakhir, LED dan buzzer akan dimatikan, dan sistem akan kembali ke kondisi pemantauan cahaya hingga terjadi perubahan kondisi berikutnya. Rangkaian ini dapat digunakan sebagai indikator peringatan terhadap cahaya berlebih, misalnya untuk sistem monitoring pencahayaan di suatu ruangan.
4. Flowchart dan Listing Program [kembali]
- Flowchart
- Listing Programfrom machine import Pin, PWM, ADCimport utime# Pin Setupldr = ADC(28) # Pin AO dari LDR ke GP28led = Pin(6, Pin.OUT) # LED merah ke GP6buzzer = PWM(Pin(15)) # Buzzer ke GP15 (PWM)# Konfigurasi buzzerbuzzer.freq(1000)buzzer.duty_u16(0) # Mulai dalam keadaan mati# Fungsi konversi ADC ke luxdef adc_to_lux(adc_value):return (adc_value / 65535) * 900 + 10 # Estimasi 10-1000 lux# Baca nilai normal awal sebagai baseline pencahayaanprint("Mengukur pencahayaan normal...")utime.sleep(2) # Waktu stabilisasilux_normal = adc_to_lux(ldr.read_u16())print("Nilai lux normal:", lux_normal)while True:analog_value = ldr.read_u16()lux = adc_to_lux(analog_value)print("Lux sekarang:", lux)if lux > lux_normal + 250:print("Terdeteksi cahaya terang! Menyalakan LED & buzzer.")start_time = utime.ticks_ms()buzzer.duty_u16(int(65535 * 0.45)) # Duty cycle 45%while utime.ticks_diff(utime.ticks_ms(), start_time) < 4000:led.toggle()utime.sleep(0.5) # LED berkedip tiap 0.5 detik# Matikan LED dan buzzer setelah 4 detikled.value(0)buzzer.duty_u16(0)utime.sleep(0.2)
6. Video Simulasi [kembali]
7. Download file [kembali]
Tidak ada komentar:
Posting Komentar