LAPORAN AKHIR MODUL 1 PERCOBAAN 4

 

A. Persiapan Alat dan Bahan
  1. Siapkan STM32 NUCLEO-G474RE, float switch, flame sensor, relay, buzzer, LED, breadboard, adaptor, dan kabel jumper.
  2. Pastikan laptop telah terinstal STM32CubeIDE dan driver ST-LINK.
  3. Pastikan semua komponen dalam kondisi baik. 

 B. Perakitan Rangkaian

  1. Hubungkan pin 5V/3.3V dari board ke jalur VCC breadboard.
  2. Hubungkan pin GND ke jalur ground breadboard.
  3. Rangkai flame sensor:
    • VCC → 3.3V/5V
    • GND → GND
    • OUT → PA0
  4. Rangkai float switch:
    • Salah satu kaki → 3.3V
    • Kaki lain → PA1
    • Gunakan konfigurasi pull-down
  5. Rangkai LED:
    • Anoda → PA5
    • Katoda → resistor → GND
  6. Rangkai buzzer:
    • Positif → PA6
    • Negatif → GND
  7. Rangkai relay:
    • IN → PA7
    • VCC → 5V
    • GND → GND
  8. Periksa kembali semua koneksi agar tidak terjadi kesalahan wiring.

 C. Konfigurasi dan Upload Program

  1. Hubungkan board NUCLEO ke laptop menggunakan kabel USB (ST-LINK sudah onboard).
  2. Buka STM32CubeIDE dan buat/buka project sesuai tipe board.
  3. Konfigurasikan pin:
    • PA0 → input (flame sensor)
    • PA1 → input (float switch)
    • PA5 → output (LED)
    • PA6 → output (buzzer)
    • PA7 → output (relay)
  4. Build project hingga tidak ada error.
  5. Klik Run/Download untuk meng-upload program ke board.
  6. Pastikan proses flashing berhasil.

 D. Pengujian Sistem

  1. Nyalakan sistem dan pastikan board aktif.
  2. Uji flame sensor:
    • Dekatkan api/simulasi api
    • Amati LED dan buzzer menyala
  3. Uji float switch:
    • Ubah posisi (seolah tangki penuh/kosong)
    • Amati respon relay
  4. Uji kombinasi kondisi:
    • Api terdeteksi → relay mati
    • Tangki penuh → relay mati
    • Aman & belum penuh → relay hidup
  5. Lakukan pengujian berulang untuk memastikan sistem bekerja stabil.

2. Hardware (kembali)

Alat

  • STM32 NUCLEO-G474RE 
 NUCLEO-G474RE | Product - STMicroelectronics
  • Laptop / PC dengan STM32CubeIDE 
 STM32CubeIDE | Software - STMicroelectronics
  • Breadboard 
 Menghubungkan Komponen Pertama Anda dengan Breadboard
  • Kabel jumper 
 Jual Kabel Dupont / Kabel Jumper / Pelangi Jumper 10 Cm Arduino Isi 10 Pcs  Di Seller Klinik Rasyid - Pangulah Utara, Kab. Karawang | Blibli
  • Adaptor / sumber tegangan 
 Gambar Power Supply Adaptor Universal AC to DC 3V-24V 3A / ajust adaptor 3v sampai 24v
Bahan
  • Float Switch 
Plastic Float Switch Sensor 52mm Anti Korosi Acid Alkali Resistance -  Ichibot Store 
  • Flame Sensor 
 Flame Sensor - Digiware Store
  • Relay 
 Relay Module 1 Channel 12V with LED Indicator - Digiware Store
  • Buzzer 
 Fungsi dan Cara Kerja Buzzer dalam Proyek Elektronika
  • LED 
 Penjelasan Polaritas LED – Cara Mengidentifikasi dan Menghubungkan LED  dengan Benar
  • Resistor (±220 Ω untuk LED)
 RS PRO 1kΩ Carbon Film Resistor 1W ±5% - RS Components Indonesia

3. Rangkaian Simulasi dan Prinsip Kerja (kembali)

 

Sistem kontrol otomatis tangki minyak ini bekerja dengan memanfaatkan dua sensor sebagai input, yaitu flame sensor untuk mendeteksi adanya api dan float switch untuk mendeteksi level tangki. Mikrokontroler akan membaca kedua sensor tersebut secara terus-menerus. Jika flame sensor mendeteksi api, maka LED dan buzzer akan langsung aktif sebagai indikator bahaya. Selain itu, relay yang berfungsi sebagai pengendali pompa akan dimatikan untuk mencegah risiko yang lebih besar. Begitu juga ketika float switch mendeteksi bahwa tangki sudah penuh, relay akan dimatikan sehingga pompa berhenti bekerja. Sebaliknya, jika tidak ada api dan tangki belum penuh, relay akan aktif sehingga pompa dapat mengisi tangki. Dengan demikian, sistem ini bekerja secara otomatis berdasarkan kondisi keamanan dan level tangki.

4. Flowchart dan Listing Program (kembali)

 

 #include "main.h"

/* Function prototypes */
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);
  }
}

/* GPIO Initialization */
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);
}

/* Clock Configuration */
void SystemClock_Config(void)
{
  // Menggunakan konfigurasi default dari STM32CubeIDE
}

/* Error Handler */
void Error_Handler(void)
{
  while (1)
  {
  }
}
main.h
#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 */

5. Video Demo (kembali)


6. Kondisi (kembali)

Sistem ini bekerja dengan membaca dua kondisi utama, yaitu keberadaan api dari flame sensor dan level tangki dari float switch. Jika terdeteksi api, maka LED dan buzzer akan menyala sebagai peringatan, serta relay akan mematikan pompa demi keamanan. Selain itu, jika tangki sudah penuh (float switch aktif), pompa juga akan dimatikan melalui relay. Sebaliknya, jika tidak ada api dan tangki belum penuh, relay akan tetap aktif sehingga pompa dapat bekerja mengisi tangki. Dengan demikian, sistem secara otomatis mengutamakan keselamatan dan pengisian tangki sesuai kondisi.

7. Video Simulasi (kembali)


8. Download File (kembali)

Datsheet ST-LINK [Download]
Datsheet STM32F103C8 (Bluepill) [Download]
Datsheet STM32 NUCLEO-G474RE [Download]
Datsheet IR Sensor [Download]
Datsheet Touch Sensor [Download]
Datsheet Float Switch [Download]
Datsheet Flame Sensor [Download]
Datsheet Relay [Download]
Datsheet Buzzer [Download]
Datsheet LED [Download]
Datsheet Resistor 220 Ω [Download]
Datsheet Breadboard [Download]
Datsheet Adaptor [Download]

Komentar

Postingan populer dari blog ini

Modul 1 : Gerbang Logika

Tugas Besar : Metal detector (alat pendeteksi benda jenis logam)

Modul 3 : Counter dan Shift Register