LA2 M1 Percobaan 4

 


Percobaan 4

1. Prosedur[Kembali]

1. Buat rangkaian dipapan rangkaian sesuai dengan percobaan yang dilakukan pada modul.
2. Konfigurasi Pin pada stm32 cube ide dan lakukan programming.
3. Connect STM 32 dengan laptop
4. Jalankan program
5. Selesai.

2. Hardware dan Diagram Blok[Kembali]

Hardware :

  • STM32 NUCLEO-G474RE
  • Float Sensor
  • Flame Sensor
  • Relay
  • Buzzer 
  • LED
  • Adaptor
  • Breadboard 

Diagram Blok

3. Rangkaian Simulasi[Kembali]

4. 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) {}
  }


5. Video Demo[Kembali]



Komentar

Postingan populer dari blog ini