Belajar mikrokontroller starting motor (kontaktor main,Y dan delta) dengan bantuan LCD dan keypad stm32f4 yippppiiiiiii....


Judul    : Startting Y-D AC Induction Motor
Tujuan  :
-         Mampu menyusun user requirement untuk sebuah fungsi starting motor Induksi 3phase.
-         Mampu melakukan identifikasi unit input dan output menggunakan alamat PORT sesuai konfigurasi pada board praktikum,
-         Mampu menyusun, menjalankan dan melakukan debugging program sesuai
dengan permasalahan berbasis Bahasa pemrograman C dengan menggunakan Keil uVison
A.Problem :
Akan dibuat sebuah sistem untuk mengurangai arus saat starting motor induksi 3
phase, dengan memnggunakan 3 buah magnetic kontaktor untuk “main kontak”,
“bintang kontak” dan “delta kontak”. Gunakan keypad untuk mulai menjalankan
starting motor dan gunakan lcd untuk menampilkan menu dan status. Tampilan
lcd sbb:
[1] Start [2] Stop
Status : RUN/STOP
Jika ditekan key [1] maka system akan berjalan dan jika ditekan [2] akan stop,
pada lcd ditampilakn saat ini running atau stop.
Gambar 1 ditunjukkan layout starting Y-D motor induksi 3 phase.

PIN Configuration

D. I/O Table
  OUTPUT
No
Device
Address
note
1
LCD
PD0
PD1
PD2
PD3
PD4
PD5
PD6
PD7
Mengetahui kondisi Motor melau layar 16x2
2
LED
PE0
PE1
PE2
PE3
PE4
Memberitahukan kondisi kontaktor yang menyala
3
Keypad
PE12
PE13
PE14
PE15
Memulai dan memberhentikan suatu system yang mana sudah di program di dalam mikrokontroler STM32F407VGTX
 input
No
Device
Address
note
1
Relay
PE8
PE9
PE10
PE11
Menyambungkan mikro dengan system



G. Source Code
#include "main.h"
#include "stm32f4xx_hal.h"
#include "stdbool.h"
#include "lcd_character.h"
#include "keypad_4x4.h"

char key,buffer[16];
int j=0;
bool status ;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);

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

status = false;
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET);


while (1)
  {
lcd_gotoxy(0,0);
lcd_puts ("[1]RUN [2] STOP");
lcd_gotoxy (0,1);
lcd_puts ("STATUS : ");
HAL_Delay(5000);

if(status==true)lcd_puts ("STATUS : RUN ");
if(status==false)lcd_puts ("STATUS : STOP ");
if (status == false)
{ key=keypad_get_key_value();
   if(key=='1')
{
    status = true;
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_Delay(5000);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_Delay(5000);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_RESET);
} if (status==true)
{ key=keypad_get_key_value();
if(key=='2')
{ status=false;
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET);
}
}
}                                                                                                       
}
  /* USER CODE END 3 */

}

running test procedure

1. pada kondisi awal tanpa menekan keypad apapun kondisi LCD menyetak tulisan Status = stop dan menyalakan LED stop

2.pada saat keypad bernilai 1 ditekan maka kondisi LED akan menyalakan main kontaktor dan kontaktor Y dan setelah 5 detik akan mematikan kontaktor Y dan menyalakan kontaktor delta, untuk kondisi LCD dimana pada kondisi awal menyalakan status = stop pada saat kontaktor y dan main menyala kondisi lcd tetap sama tetapi pada saat delay 5 detik kondisi pada lcd menyetak status = run 


3 pada saat keypad bernilai 2 ditekan maka kondisi LED akan mematikan semua kontaktor, untuk kondisi LCD dimana pada kondisi sebelumnya menyalakan status = run pada saat ditekan keypad 2  kondisi menyetak status = stop





PROGRAM BISA DILIHAT DI CANNEL YOUTUBE ARYOSANDI CHANNEL


DOWNLOAD KEYPAD 4X4 DAN LCD
LINK : KLIK DISINI

No comments:

Post a Comment

Pages