Prosedur

Langkah - Langkah Percobaan :

Langkah 1: Persiapan File Hex/Elf di STM32CubeIDE

  1. Buka project kamu di STM32CubeIDE.

  2. Pastikan kodingan main.c terbaru (dengan konstanta pembagi 5.5 untuk FS300A) sudah terpasang.

  3. Klik kanan pada folder project  pilih Clean Project.

  4. Lakukan kompilasi dengan menekan tombol Palu (Build) atau Ctrl + B.

  5. Pastikan proses selesai tanpa error (0 errors). Hasil kompilasi ini akan menghasilkan file berformati .elf atau .hex di dalam folder Debug atau Release proyekmu.

Langkah 2: Konfigurasi Komponen di Proteus

  1. Buka file skematik simulasi proyekmu di software Proteus.

  2. Pastikan semua komponen utama sudah terhubung ke pin STM32F103C8 sesuai desain:

    • Logic State / Toggle Switch (Simulasi Sensor Hujan) terhubung ke pin PA0.

    • Sensor Ultrasonic (HC-SR04/SRF04) terhubung ke pin PA1 (Trig) dan PA2 (Echo).

    • Clock Generator (Simulasi Sensor Water Flow) terhubung ke pin PB0.

    • Modul I2C PCF8574 + LCD 16x2 terhubung ke pin PB6 (SCL) dan PB7 (SDA).

    • LED Hijau, Kuning, Merah, dan Buzzer masing-masing terhubung ke pin PB12, PB13, PB14, dan PB15.

  3. Klik dua kali pada komponen STM32F103C8 di Proteus. Pada bagian Program File, klik ikon folder lalu arahkan ke file .elf atau .hex yang sudah kamu build di Langkah 1 tadi.

  4. Pastikan pengaturan Crystal Frequency pada STM32 di Proteus diisi 72MHz agar penentuan waktu/delay di simulasi berjalan sinkron.

Langkah 3: Pengujian Kondisi 1 – Status AMAN

  1. Klik tombol Play/Run di pojok kiri bawah Proteus untuk memulai simulasi.

  2. Atur Logic State (Sensor Hujan) pada posisi 1 (Logika HIGH = Kondisi Kering).

  3. Atur jarak pada model Sensor Ultrasonic di atas 25 cm (misal 30 cm) untuk mensimulasikan permukaan air sungai yang sangat jauh/aman.

  4. Atur Clock Generator (Water Flow) pada frekuensi 0 Hz atau di bawah 25 Hz (Debit air < 5 L/min).

  5. Amati Output: * Layar LCD 16x2 harus menampilkan tulisan "STATUS: AMAN" pada baris pertama.

    • Baris kedua LCD menampilkan nilai data sensor aktual.

    • LED Hijau menyala, sedangkan LED Kuning, LED Merah, dan Buzzer dalam kondisi mati (OFF).

Langkah 4: Pengujian Kondisi 2 – Status SIAGA

  1. Ubah Logic State (Sensor Hujan) menjadi 0 (Logika LOW = Terdeteksi Hujan)  Skor Risiko Hujan = 1.

  2. Turunkan nilai jarak pada Sensor Ultrasonic ke angka antara 12 cm sampai 25 cm (misal 15 cm)Skor Risiko Jarak = 1.

  3. Atur Clock Generator (Water Flow) ke frekuensi 11 Hz hingga 110 Hz (Simulasi debit air sedang, berkisar 5 L/min sampai 30 L/min)y Skor Risiko Aliran = 1.

  4. Amati Output:

    • Karena akumulasi total skor risiko berada di angka 2 atau 3, LCD akan otomatis berganti menampilkan teks "STATUS: SIAGA".

    • LED Hijau mati dan LED Kuning menyala.

    • Buzzer berbunyi secara intermiten (putus-putus/berkedip) mengikuti ritme pembacaan program.

Langkah 5: Pengujian Kondisi 3 – Status BAHAYA (Flash Flood)

  1. Biarkan Logic State (Sensor Hujan) tetap pada posisi 0 (Kondisi Hujan Lebat)  Skor Risiko Hujan = 1.

  2. Turunkan drastis jarak pada Sensor Ultrasonic hingga di bawah 12 cm (misal 8 cm) untuk mensimulasikan air sungai kritis meluap  Skor Risiko Jarak = 2.

  3. Naikkan Clock Generator (Water Flow) ke frekuensi di atas 165 Hz (Debit air sangat deras, di atas 30 L/min) Skor Risiko Aliran = 2.

  4. Amati Output:

    • Total skor risiko kini berharga 4. Layar LCD akan langsung berkedip sekali untuk membersihkan layar dan menampilkan pesan darurat "FLASH FLOOD!!".

    • LED Kuning mati dan LED Merah menyala tajam.

    • Buzzer berbunyi konstan (nyaring tanpa putus) sebagai alarm evakuasi warga.

Langkah 6: Pengujian Fitur Anti-Flicker LCD

  1. Saat simulasi masih berjalan di kondisi Bahaya, ubah kembali parameter sensor secara mendadak ke kondisi AMAN.

  2. Perhatikan pergerakan karakter di layar LCD. Layar hanya boleh melakukan clearscreen (LCD_Cmd(0x01)) tepat satu kali saat transisi status risiko berubah.

  3. Pastikan tulisan data sensor di baris kedua tidak berkedip-kedip (flicker) yang menandakan logika pencegah flicker (last_total_risk) berhasil mengunci layar dengan baik.

  4. Jika semua parameter output sudah merespons dengan presisi, klik tombol Stop pada Proteus. Percobaan simulasi proyek dinyatakan sukses dan selesai.

Komentar

Postingan populer dari blog ini

Tugas Besar