MODUL 1 PERCOBAAN 4 KONDISI 1


1. Prosedur[Kembali]

  1. Menyiapkan alat dan bahan.
  2. Merangkai komponen pada breadboard sesuai dengan gambar rangkaian percobaan.
  3. Menghubungkan masing masing pin input output.
  4. Mengunggah program menggunakan ST-LINK ke mikrokontroler.
  5. Jalankan Rangkaian

2. Hardware dan Diagram Blok[Kembali]

  • ST-LINK 
  • STM32F103C8 (BLUEPILL)  
  • IR Transmitter  
  • IR Receiver  
  • Touch sensor  
  • Buzzer  
  • LED 
  • Resistor 220 OHM 

3. Rangkaian Simulasi dan Prinsip Kerja[Kembali]

Wokwi

Prinsip Kerja:

Rangkaian pada simulasi Wokwi tersebut bekerja sebagai sistem kontrol otomatis berbasis mikrokontroler STM32 yang memanfaatkan dua buah sensor, yaitu flame sensor sebagai pendeteksi api dan float sensor sebagai pendeteksi ketinggian air. Kedua sensor ini memberikan sinyal input ke mikrokontroler, yang kemudian diproses menggunakan logika prioritas. Prinsip utama sistem adalah menjadikan kondisi kebakaran sebagai prioritas tertinggi. Ketika flame sensor mendeteksi adanya api (logika HIGH), mikrokontroler akan segera mengaktifkan LED sebagai indikator visual dan buzzer sebagai alarm suara, serta secara bersamaan mematikan pompa air melalui relay untuk menghindari pengoperasian yang tidak diperlukan saat kondisi darurat. Sebaliknya, ketika tidak terdeteksi api, sistem akan beralih ke fungsi pengendalian level air, di mana float sensor digunakan untuk menentukan kondisi tangki. Jika tangki dalam keadaan penuh, pompa akan dimatikan, sedangkan jika tangki belum penuh, pompa akan diaktifkan untuk mengisi air. Proses ini berlangsung secara terus-menerus dalam loop dengan jeda waktu yang singkat sehingga sistem mampu merespons perubahan kondisi secara real-time. Dengan demikian, rangkaian ini merupakan kombinasi sistem proteksi kebakaran dan sistem kontrol level air otomatis yang sederhana namun efektif.

4. Flowchart dan Listing Program[Kembali]



Flowchart

Listing Program:

 #ifndef __MAIN_H #define __MAIN_H #ifdef __cplusplus extern "C" { #endif #include "stm32c0xx_hal.h" /* ====== INPUT ====== */ #define FLAME_PIN GPIO_PIN_0 #define FLAME_PORT GPIOA #define FLOAT_PIN GPIO_PIN_1 #define FLOAT_PORT GPIOA /* ====== OUTPUT ====== */ #define LED_PIN GPIO_PIN_5 #define LED_PORT GPIOA #define BUZZER_PIN GPIO_PIN_6 #define BUZZER_PORT GPIOA #define RELAY_PIN GPIO_PIN_7 #define RELAY_PORT GPIOA void Error_Handler(void); #ifdef __cplusplus } #endif #endif /* __MAIN_H */

#include "main.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); int main(void) { HAL_Init(); // SystemClock_Config(); // Bisa dikomentari jika error di Wokwi 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); /* ===== LOGIKA FLAME SENSOR ===== */ if (flame_state == GPIO_PIN_SET) { /* Api terdeteksi */ HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET); HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET); } else { /* Tidak ada api (Kondisi Tugasmu) */ HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET); } /* ===== LOGIKA RELAY / POMPA ===== */ if ((flame_state == GPIO_PIN_SET) || (float_state == GPIO_PIN_SET)) { /* Api ATAU tangki penuh → pompa MATI */ HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET); } else { /* Aman & tangki kosong → pompa HIDUP (Kondisi Tugasmu) */ 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: PA0 & PA1 */ 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: PA5, PA6, PA7 */ 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); } void SystemClock_Config(void) {} // Kosongkan saja untuk Wokwi void Error_Handler(void) { while (1) {} }

5. Video Demo[Kembali]

6. Kondisi[Kembali]

Buatlah rangkaian seperti pada gambar percobaan 2 dengan kondisi ketika Infrared sensor mendeteksi benda dan switch on, maka LED menyala hijau

8. Download File[Kembali]


Tidak ada komentar:

Posting Komentar

   BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2024 Oleh  : MUHAMMAD RHAKA AULIA (2310953009) Dosen Pengampu  : Dr. Darwison, MT Referens...