Laporan Akhir 2

    

Laporan Akhir 2



 Percobaan 4 Sistem Kontrol Otomatis Tangki Minyak


a. Prosedur [Kembali]

1. Buka software proteus lalu rangkai komponen sesuai dengan gambar yang ada di modul

2. Buka software STM32CubeIDE lalu lakukan konfigurasi pin pada STM untuk menentukan GPIO input dan GPIO output

3. Masukan Program ke dalam software STM32CubeIDE lalu build untuk mendapatkan file .hex

4. Masukan file .hex ke dalam file library STM32F103C8 pada proteus

5. Simulasikan 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 kontrol otomatis tangki minyak ini bekerja dengan memanfaatkan flame sensor sebagai pendeteksi api dan float sensor sebagai pendeteksi level minyak, dengan mikrokontroler sebagai pengendali utama yang mengatur relay (pompa), LED, dan buzzer. Pada kondisi normal, ketika tidak ada api dan tangki belum penuh, mikrokontroler akan mengaktifkan relay sehingga pompa menyala untuk mengisi tangki. Proses ini berlangsung terus hingga salah satu kondisi terpenuhi, yaitu adanya api atau tangki telah penuh.

Ketika flame sensor mendeteksi adanya api, sistem langsung mengaktifkan LED dan buzzer sebagai alarm, serta mematikan relay sehingga pompa berhenti sebagai langkah pengamanan. Selain itu, jika tidak ada api tetapi float sensor mendeteksi bahwa tangki sudah penuh, maka relay juga dimatikan untuk menghentikan pompa agar tidak terjadi luapan minyak. Dengan demikian, pompa hanya akan bekerja ketika kondisi aman dan tangki belum penuh, sedangkan pada kondisi bahaya atau penuh, sistem secara otomatis menghentikan pompa dan memberikan indikasi melalui LED dan buzzer.


d. Flowchart dan Listing Program [Kembali]

  • Flowchart



  • Listing Program

#include "main.h"


void SystemClock_Config(void);

static void MX_GPIO_Init(void);

void Error_Handler(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)

{

}

}



e. Video Demo [Kembali]




f. Analisa [Kembali]







g. Download File [Kembali]

File Analisa [Klik disini]

Video Demo [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,...