Tugas Pendahuluan 2
MODUL 1 - TUGAS PENDAHULUAN 2
TUGAS PENDAHULUAN 2 KONTROL TANGKI MINYAK
DAFTAR ISI
1. Prosedur [kembali]
1. Buka web WOKWI.COM dan cari STM 32 NUCLEO C031C6
2. Rangkai komponen sesuai dengan gambar rangkaian di modul
3. Klik pada Library Manager untuk membuat file baru yang bernama main.h dan main.c
4. Masukan program yang telah di buat sesuai kondisi pada kedua file tersebut
5. simulasikan
2. Hardware dan Diagram Blok [kembali]
- Hardware
1. STM32 NUCLEO-G474RE
2. Float Switch
3. Flame Sensor
4. Relay
5. Buzzer
6. LED
7. Push Button
- Diagram Blog
3. Rangkaian Simulasi dan Prinsip Kerja [kembali]
Rangkaian sistem kontrol berbasis NUCLEO C031C6 ini bekerja dengan mengintegrasikan sensor api (flame sensor) dan sensor pelampung (float sensor) sebagai parameter input untuk mengendalikan LED, buzzer, dan pompa melalui relay. Secara operasional, mikrokontroler terus-menerus membaca status logika pada pin PA0 dan PA1; jika kedua sensor tersebut berada pada kondisi HIGH (artinya api terdeteksi dan tangki minyak dalam keadaan penuh), maka sistem akan memicu LED dan buzzer sebagai indikator peringatan bahaya, sementara relay akan diputus untuk menghentikan aliran pompa. Namun, dalam kondisi normal atau standby di mana tidak ada api yang terdeteksi, sistem beralih fungsi menjadi pengontrol level minyak otomatis. Pada mode ini, jika sensor pelampung mendeteksi bahwa minyak berkurang (LOW), mikrokontroler secara otomatis mengaktifkan relay untuk menghidupkan pompa guna mengisi kembali tangki, dan akan mematikannya kembali setelah minyak mencapai batas penuh demi memastikan ketersediaan minyak tetap terjaga serta aman dari risiko kebakaran.
4. Flowchart dan Listing Program [kembali]
- Flowchart
main c :
#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) {}
}
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]
Buatlah rangkaian seperti pada gambar percobaan 4 dengan kondisi ketika flame sensor tidak mendeteksi api dan float switch tidak mendeteksi tangki penuh, maka pompa menyala dan LED serta buzzer dalam kondisi mati.
7. Video Simulasi [kembali]
8. Download File [kembali]
- Download file lengkap (Rangkaian dan Program) (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
Posting Komentar