MODUL 2 - TUGAS PENDAHULUAN 1




TUGAS PENDAHULUAN

1. Kondisi[Kembali]

Percobaan 1 Kondisi 7

Buatlah rangkaian seperti gambar pada percobaan 1, buatlah ketika LDR membaca Lebih terang dari normal sebesar 300 LUX  Led merah hidup berkedip selama 2 detik dan Duty Cycle Buzzer 25%

2. Gambar Rangkaian Simulasi[Kembali]

3. Video Simulasi[Kembali]

4. Prinsip Kerja[Kembali]

Rangkaian dan program ini dirancang untuk mendeteksi perubahan intensitas cahaya menggunakan sensor LDR (Light Dependent Resistor) dan memberikan respons visual melalui LED serta respons audio melalui buzzer ketika intensitas cahaya melebihi batas tertentu. 

Program dimulai dengan mengimpor library yang diperlukan, yaitu Pin untuk mengontrol GPIO, PWM untuk mengatur buzzer, ADC untuk membaca nilai analog dari LDR, dan utime untuk fungsi waktu. LDR dihubungkan ke pin GP28 yang berfungsi sebagai input analog, LED merah ke pin GP6 sebagai output digital, dan buzzer ke pin GP15 sebagai output PWM dengan frekuensi dasar 1000Hz.

Fungsi adc_to_lux() bertugas mengkonversi nilai ADC dari LDR (0-65535) menjadi perkiraan nilai intensitas cahaya dalam satuan Lux. Konversi ini dilakukan dengan rumus linear sederhana yang mengubah rentang ADC menjadi rentang 10-910 Lux. Nilai Lux normal ditetapkan secara manual sebesar 300 Lux sebagai batas referensi.

Dalam loop utama, program terus-menerus membaca nilai LDR, mengkonversinya ke satuan Lux, dan menampilkan hasil pembacaan tersebut. Ketika intensitas cahaya terdeteksi lebih terang 300 Lux dari nilai normal (yakni ≥600 Lux), program akan mengaktifkan buzzer. Buzzer ini terdiri dari dua komponen: buzzer yang dihidupkan dengan duty cycle 25% dan LED yang mulai berkedip setiap 300ms.

Buzzer akan tetap aktif selama 2 detik sebelum dimatikan secara otomatis. Selama periode ini, LED terus berkedip dengan interval tetap, sementara buzzer tetap berbunyi. Setelah 2 detik, baik buzzer maupun LED dimatikan, dan sistem kembali ke mode monitoring normal. Program menggunakan pendekatan non-blocking delay dengan memanfaatkan fungsi utime.ticks_ms() untuk menghitung selisih waktu, sehingga tidak mengganggu proses pembacaan sensor yang berlangsung kontinu.

Untuk memastikan buzzer hanya trigger sekali saat kondisi terpenuhi, program menggunakan variabel alert_triggered sebagai flag. Variabel-variabel seperti led_blink_active, led_state, led_start_time, dan last_blink_time digunakan untuk mengontrol pola kedip LED dan durasi buzzerh secara presisi. Loop utama berjalan dengan delay 0.1 detik pada setiap iterasi untuk memberikan waktu proses yang cukup tanpa membebani microcontroller.

6. Download [Kembali]

Download HTML [Download]

Video Simulasi [Download]





Komentar

Postingan populer dari blog ini

Tugas Besar Elektronika

Aplikasi Adder Amplifier

Sub Bab 3.4