Tugas Pendahuluan 2

  

 Tugas Pendahuluan 2



 Percobaan 4 Sistem Kontrol Otomatis Tangki Minyak


a. Prosedur [Kembali]

  • Buka web WOKWI.COM dan cari STM 32 NUCLEO C031C6
  • Rangkai komponen sesuai dengan gambar rangkaian di modul
  • Klik pada Library Manager untuk membuat file baru yang bernama main.h dan main.c
  • Masukan program yang telah di buat sesuai kondisi pada kedua file tersebut
  • Jalankan rangkaian
  • b. Hardware dan Diagram Blok [Kembali]

    • Hardwere

    1. STM32 NUCLEO-G474RE



    2. Float Switch



    3. Flame Sensor



    4. Relay



    5. Buzzer



    6. LED 

    7. Push Button


    • Diagram Blog



    c. Rangkaian Simulasi dan Prinsip Kerja [Kembali]

    • Rangkaian Simulasi



    • Prinsip Kerja

    Sistem bekerja dengan membaca dua input utama, yaitu flame sensor dan float sensor. Flame sensor digunakan untuk mendeteksi adanya api, sedangkan float sensor digunakan untuk mengetahui apakah tangki sudah penuh atau belum. Output yang dikendalikan adalah LED, buzzer, dan relay sebagai pengendali pompa.

    Pada program, flame sensor menjadi prioritas utama. Jika flame sensor mendeteksi api, maka mikrokontroler langsung menyalakan LED dan buzzer sebagai alarm, kemudian mematikan relay sehingga pompa berhenti. Kondisi ini tetap dijalankan meskipun tangki belum penuh, karena sistem masuk ke mode pengaman.

    Jika tidak ada api, barulah sistem membaca kondisi float sensor. Apabila float sensor mendeteksi tangki penuh, maka LED dan buzzer menyala sebagai indikator, sedangkan relay dimatikan sehingga pompa berhenti. Namun, jika tidak ada api dan tangki belum penuh, LED serta buzzer dimatikan, kemudian relay diaktifkan sehingga pompa menyala untuk mengisi tangki.

    Dengan demikian, program memiliki tiga kondisi utama: api terdeteksi → alarm ON dan pompa OFF, tangki penuh → alarm ON dan pompa OFF, serta kondisi normal → alarm OFF dan pompa ON.



    d. Flowchart dan Listing Program [Kembali]

    • Flowchart


    • Listing Program

    #include "main.h"

    /* Deklarasi fungsi */
    void SystemClock_Config(void);
    static void MX_GPIO_Init(void);
    void Error_Handler(void);

    /* Variabel sensor */
    GPIO_PinState flame_state;
    GPIO_PinState float_state;

    int main(void)
    {
      HAL_Init();
      SystemClock_Config();
      MX_GPIO_Init();

      while (1)
      {
        flame_state = HAL_GPIO_ReadPin(FLAME_PORT, FLAME_PIN);
        float_state = HAL_GPIO_ReadPin(FLOAT_PORT, FLOAT_PIN);

        /*
          LOGIKA:
          - Jika ada api:
            LED indikator ON, buzzer ON, pompa OFF
          - Jika tidak ada api dan tangki penuh:
            LED indikator ON, buzzer ON, pompa OFF
          - Jika tidak ada api dan tangki belum penuh:
            LED indikator OFF, buzzer OFF, pompa ON
        */

        if (flame_state == GPIO_PIN_SET)
        {
          /* Api terdeteksi */
          HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET);        // LED ON
          HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET);  // Buzzer ON
          HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET);  // Pompa OFF
        }
        else
        {
          if (float_state == GPIO_PIN_SET)
          {
            /* Tangki penuh */
            HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_SET);        // LED ON
            HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET);  // Buzzer ON
            HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_RESET);  // Pompa OFF
          }
          else
          {
            /* Tidak ada api dan tangki belum penuh */
            HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET);       // LED OFF
            HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET); // Buzzer OFF
            HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET);     // Pompa ON
          }
        }

        HAL_Delay(100);
      }
    }

    /* Inisialisasi GPIO */
    static void MX_GPIO_Init(void)
    {
      GPIO_InitTypeDef GPIO_InitStruct = {0};

      __HAL_RCC_GPIOA_CLK_ENABLE();

      /* Kondisi awal */
      HAL_GPIO_WritePin(LED_PORT, LED_PIN, GPIO_PIN_RESET);        // LED OFF
      HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET);  // Buzzer OFF
      HAL_GPIO_WritePin(RELAY_PORT, RELAY_PIN, GPIO_PIN_SET);      // Pompa ON

      /* Input: Flame sensor dan Float sensor */
      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: LED, Buzzer, Relay */
      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);
    }

    /* Konfigurasi clock */
    void SystemClock_Config(void)
    {
      /* Gunakan konfigurasi default dari STM32CubeIDE */
    }

    /* Error handler */
    void Error_Handler(void)
    {
      __disable_irq();

      while (1)
      {
      }
    }

    e. Video Demo [Kembali]


    f. Kondisi [Kembali]

    Percobaan 4 kondisi 7

    Buatlah rangkaian seperti pada gambar percobaan 4 dengan kondisi ketika flame sensor mendeteksi api meskipun tangki belum penuh, maka pompa langsung mati sebagai sistem pengaman

    g. Video Simulasi [Kembali]





    h. Download File [Kembali]

    File TP [Klik disini]

    Video Simulasi [Disini]



    Kembali ke Halaman Atas


    Tidak ada komentar:

    Posting Komentar

      BAHAN PRESENTASI UNTUK MATA KULIAH  ELEKTRONIKA     Oleh : Farhan Hamid 2310951007     Dosen Pengampu : Darwison, M.T.     Darwison, 2010,...