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