LA 2




a. Prosedur[Kembali]

  • Pertama, siapkan terlebih dahulu semua alat dan bahan yang dibutuhkan seperti board STM32, flame sensor, float sensor, relay, buzzer, LED, resistor, serta kabel penghubung. Pastikan semua komponen dalam kondisi baik agar tidak terjadi kendala saat perakitan.
  • Selanjutnya, tentukan terlebih dahulu bagian input dan output pada rangkaian. Flame sensor dan float sensor digunakan sebagai input, sedangkan LED, buzzer, dan relay sebagai output yang akan dikendalikan oleh mikrokontroler.
  • Hubungkan flame sensor ke board STM32 dengan menyambungkan pin VCC ke sumber tegangan, GND ke ground, dan pin output ke salah satu pin input pada STM32.
  • Kemudian, pasang float sensor dengan menghubungkan salah satu kakinya ke tegangan dan kaki lainnya ke pin input STM32. Tambahkan resistor sebagai penstabil agar pembacaan sensor lebih baik.
  • Setelah itu, lakukan pemasangan komponen output. LED dihubungkan ke pin output STM32 melalui resistor, buzzer dihubungkan langsung ke pin output dan ground, serta relay dihubungkan ke pin output untuk mengontrol pompa atau beban lainnya.
  • Setelah semua komponen terpasang, periksa kembali setiap sambungan kabel untuk memastikan tidak ada kesalahan pemasangan atau hubungan yang terbalik.
  • Berikutnya, buat program pada STM32 sesuai dengan logika kerja yang diinginkan, yaitu mendeteksi api terlebih dahulu, kemudian mengontrol pompa berdasarkan kondisi tangki.
  • Upload program ke board STM32 menggunakan software yang sesuai, lalu jalankan sistem.
  • Terakhir, lakukan pengujian dengan mencoba menyalakan api di dekat flame sensor dan mengatur kondisi float sensor untuk memastikan semua bagian sistem bekerja sesuai dengan yang diharapkan.
  • b. Hardware dan Diagram Blok[Kembali]

    HARDWARE

     1. STM32G474RE

    Microcontroller

    STM32G474RE (ARM Cortex-M4F)

    Operating Voltage

    3.3 V

    Input Voltage (recommended)

    5 V via USB (ST-LINK) atau 7–12 V via VIN

    Input Voltage (limit)

    4.5  15 V (VIN board Nucleo)

    Digital I/O Pins

    ±51 GPIO pins (tergantung konfigurasi fungsi)

    PWM Digital I/O Pins

    Hingga 24 channel PWM (advanced, general-purpose, dan high-resolution timers)

    Analog Input Pins

    Hingga 24 channel ADC (12-bit / 16-bit dengan oversampling)

    DC Current per I/O Pin

    Maks. 20 mA per pin (disarankan  8 mA)

    DC Current for 3.3V Pin

    Hingga ±500 mA (tergantung regulator & sumber daya)

    Flash Memory

    512 KB internal Flash

    SRAM

    128 KB SRAM (termasuk CCM RAM)

    Clock Speed

    Hingga 170 MHz

        

        2. FLOAT Sensor



        SPESIFIKASI :

    • Material: Umumnya Stainless Steel SUS304 (anti karat) atau PP Plastic.
    • Maksimum Beban Kontak: 50W / 10W (tergantung model).
    • Tegangan Maksimum: 220V DC/AC (perlu relay untuk beban AC tinggi).
    • Arus Maksimum: 0.5A - 1.5A.
    • Panjang Sensor: Tersedia dalam berbagai ukuran, seperti 45mm, 100mm, 150mm, 300mm, hingga 500mm.
    • Pemasangan: Umumnya dipasang secara vertikal (atas atau dasar tangki).
    • Prinsip Kerja: Menggunakan saklar magnetik (reed switch) yang aktif saat pelampung naik/turun.

        3. Flame Sensor


        4. LED



        5. Buzzer

        6. Resistor



             DIAGRAM BLOK  




        
                                                                                                                                                               

    c. Rangkaian Simulasi dan Prinsip Kerja[Kembali]







    Prinsip Kerja

    Prinsip kerja sistem berdasarkan flowchart tersebut dimulai dari proses inisialisasi, di mana mikrokontroler (STM32) mengatur semua pin yang digunakan sebagai input dan output, seperti pin untuk flame sensor, float sensor, LED, buzzer, dan relay (pompa). Setelah inisialisasi selesai, sistem masuk ke tahap pemantauan kondisi secara terus-menerus.

    Langkah pertama dalam proses pengambilan keputusan adalah membaca kondisi dari flame sensor. Jika flame sensor mendeteksi adanya api, maka sistem langsung masuk ke kondisi darurat. Pada kondisi ini, mikrokontroler akan mematikan pompa (Pompa OFF) untuk mencegah risiko yang lebih besar, serta mengaktifkan buzzer dan LED sebagai indikator bahaya agar pengguna segera mengetahui adanya kebakaran.

    Namun, jika flame sensor tidak mendeteksi api, maka sistem akan melanjutkan ke pemeriksaan kondisi berikutnya, yaitu status tangki air melalui float sensor. Jika float sensor mendeteksi bahwa tangki sudah penuh, maka pompa akan dimatikan (Pompa OFF) untuk mencegah air meluap. Sebaliknya, jika tangki belum penuh, maka mikrokontroler akan mengaktifkan pompa (Pompa ON) untuk mengisi tangki hingga mencapai batas yang ditentukan.


    d. Flowchart dan Listing Program[Kembali]

    FLOWCHART




    LISTING PROGRAM 

    #include "main.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); while (1) { GPIO_PinState flame_state; GPIO_PinState float_state; flame_state = HAL_GPIO_ReadPin(FLAME_PORT, FLAME_PIN); float_state = HAL_GPIO_ReadPin(FLOAT_PORT, FLOAT_PIN); /* ===== FLAME SENSOR ===== */ if (flame_state == GPIO_PIN_RE `1 SET) { /* Api terdeteksi */ HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET); } else { HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET); } /* ===== RELAY / POMPA ===== */ if (float_state == GPIO_PIN_SET) { /* Api ATAU tangki penuh → pompa MATI */ HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET); } else { /* Aman & tangki belum penuh → pompa HIDUP */ HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET); } HAL_Delay(100); } } static void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; __HAL_RCC_GPIOA_CLK_ENABLE(); /* INPUT */ GPIO_InitStruct.Pin = FLAME_PIN | FLOAT_PIN; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* OUTPUT */ GPIO_InitStruct.Pin = LED_PIN | BUZZER_PIN | RELAY_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /* Relay default ON */ HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET); } void SystemClock_Config(void) { /* Clock default CubeIDE */ } void Error_Handler(void) { while (1) {} }

    e. Video Demo[Kembali]




     

    f. Analisa  [Kembali]












      



    h. Download File[Kembali]

    FIle Zip  [klik disini]

    LAPORAN AKHIR [Klik Disini]

    Datasheet Sensor: 

    Datasheet Led  [klik disini]









     

    Komentar

    Postingan populer dari blog ini

    Tugas Besar