Laporan 1 M1 Percobaan 4

Percobaan 4 Modul 1

a. Prosedur

1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Buat program untuk mikrokontroler STM32 NUCLEO-G474RE di software STM32 CubeIDE.
3. Compile program dalam format hex, lalu upload ke dalam mikrokontroler.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
5. Selesai.

b. Hardware dan Diagram Blok

  • Hardware :


a) Mikrokontroler STM32 NUCLEO-G474RE








2. Flame Sensor



3. Buzzer


4. Power Supply

 
5. RGB LED
Jual LED RGB 4 PIN WARNA MERAH HIJAU BIRU 5mm ( ARDUINO ) - Common Cathode  - Jakarta Barat - Ardushop-id | Tokopedia

6. Resistor 1k Ohm



7. Floating Switch

8. Adaptor



9. Breadboard

c. Rangkaian Simulasi dan Prinsip Kerja

  • Rangkaian Simulasi


  • Prinsip Kerja

1. Tahap Persiapan

  • Inisialisasi Pin: Saat sistem pertama kali dijalankan (Mulai), mikrokontroler akan melakukan inisialisasi. Tahap ini mendaftarkan pin mana yang berfungsi sebagai Input (Flame Sensor dan Sensor Level Air/Tangki) dan pin mana yang berfungsi sebagai Output (Relay Pompa, Buzzer, dan LED).

2. Pengecekan Keamanan (Prioritas Utama)

Setelah inisialisasi, sistem tidak langsung mengecek air, melainkan mengecek kondisi keamanan sekitar terlebih dahulu.

  • Kondisi (Flame Sensor mendeteksi): Mikrokontroler membaca status sensor api.

    • Jika YA (Ada Api): Sistem masuk ke mode darurat darurat. Pompa dimatikan (Off) agar tidak terjadi korsleting atau masalah lain, sementara Buzzer dinyalakan (On) sebagai alarm suara, dan LED dinyalakan (On) sebagai indikator bahaya visual. Setelah itu, alur eksekusi selesai.

    • Jika TIDAK (Aman dari Api): Sistem menganggap lingkungan aman dan melanjutkan ke tahap fungsional utama, yaitu mengontrol air.

3. Pengecekan Level Air (Operasional Normal)

Jika lingkungan dipastikan aman dari api, sistem mengecek kondisi air di dalam tangki.

  • Kondisi (Tangki Penuh): Mikrokontroler membaca status sensor level air di tangki.

    • Jika YA (Tangki sudah Penuh): Sistem akan mematikan Pompa (Off). Hal ini dilakukan untuk mencegah air luber atau tumpah berlebihan (overflow).

    • Jika TIDAK (Tangki belum Penuh): Sistem akan menyalakan Pompa (On) untuk mulai/tetap mengisi tangki hingga penuh.

d. Flowchart dan Listing Program

  • 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_SET) 
  { 
    /* Api terdeteksi */ 
    HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET); 
    HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET); 
  } 
  else 
  { 
    HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET); 
    HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET); 
  } 
 
  /* ===== 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 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) {} 
}

g. Download File

File Analisa [Klik disini]

Video Demo [Klik disini]

Download Datasheet Touch Sensor (klik disini)

Download Datasheet Pir Sensor (klik disini)

Download Datasheet Resistor (klik disini)

Download Datasheet LED (klik disini)

Download Datasheet Buzzer (klik disini)

Komentar

Postingan populer dari blog ini