Judul : : DC Voltage Controller.
Tujuan :
-
Mampu menyusun user requirement untuk sebuah fungsi
pengaturan tegangan luaran pada buck converter.
-
Mampu melakukan identifikasi unit input dan output dan
Timer menggunakan
alamat PORT
sesuai konfigurasi pada board praktikum
-
Mampu menyusun,
menjalankan dan melakukan debugging program sesuai dengan permasalahan berbasis Bahasa pemrogramanC
dengan menggunakan Keil uVison
Alat : Personal
Computer, modul MCU, Modul buck converter, kabel USB, ST Link
downloader.
A.Problem
:
Akan
dibuat sebuah system untuk mengatur tegangan luaran pada sebuah buck converter
menggunakan PWM. Digunakan keypad untuk mengatur tegangan luaran converter
dengan beban lampu DC, seperti ditunjukkan pada Gambar 1.
1.
Plant Layout:
Plant Layout Akan dibuat sebuah
system Untuk mengatur tegangan luaran digunakan keypad 0-9
dan key “D” untuk enter, nilai yang dimasukkan adalah nilai duty cycle dengan
satuan %.Nilai duty cycle hasil entry keypad ditampilkan pada LCD.
B.
User Requirement
User
Requirement Pada plant ini, digunakan
untuk pengaturan tegangan motor DC yang nantinya bisa dimasukkan nilai duty
cyle dengan menggunakan keypad dan ditampilkannya ARR di lcd .
D.
I/O Table
OUTPUT
No
|
Device
|
Address
|
note
|
1
|
LCD
|
PD0
PD1
PD2
PD3
PD4
PD5
PD6
PD7
|
Mengetahui kondisi Motor
melalui layar 16x2
|
2
|
PWM
|
PD12
|
Timer 4 dengan menggunakan
channel 3
|
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
|
LCD
|
PE8
PE9
PE10
PE11
|
Memasukkan huruf dari
keypad menuju mikrokontroller
|
G.
Source Code
#include
"main.h"
#include
"stdlib.h"
#include
"lcd_character.h"
#include
"keypad_4x4.h"
char key,
num[3],buffer[16],buffer1[16];
int
Duty,ARR_reg,n,j;
void
SystemClock_Config(void);
static void
MX_GPIO_Init(void);
static void
MX_TIM4_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
lcd_init();
keypad_init();
HAL_TIM_Base_Start(&htim4);
HAL_TIM_PWM_Start(&htim4,TIM_CHANNEL_1);while
(1)
while (1)
{
if(keypad_get_key_value()=='0'||keypad_get_key_value()=='1'||keypad_get_key_value()=='2'||keypad_get_key_value()=='3'||keypad_get_key_value()=='4'||keypad_get_key_value()=='5'||keypad_get_key_value()=='6'||
keypad_get_key_value()=='7'|| keypad_get_key_value()=='8'||
keypad_get_key_value()=='9')
{key=keypad_get_key_value();
num[n]=key;
n++;
lcd_gotoxy(0,0);
lcd_puts("num
:");
}
if(keypad_get_key_value()=='D')
{
Duty=atoi(num);
ARR_reg=(Duty*2099)/100;
n=0;
TIM4->CCR1 =
ARR_reg;
}
if(keypad_get_key_value()=='C')
{for (int
j=0;j<3;j++)
{num[j]=' ';
n=0;
lcd_gotoxy(0,0);
lcd_puts("Duty
Cycle= ");
lcd_gotoxy(1,0);
lcd_puts("ARR
reg = ");}
}
H. running test procedure
1.
Masukkan nilai num yang mana num tebaca di lcd Duty
cycle dan lcd juga mencetak ARR_reg yang mana didapat dari perkalian yang sudah
tercamtum di program
2.
sambunglah buck conventer dengan mudul STM32F407VG
3.
pasang input buck conventer dengan power supply 21 volt dan beri power supply
pada moser (irf---) 12 volt
4.
pada saat keypad huruf ‘D’ ditekan maka LCD akan tercetak dan lampu akan
menyala yang mana lampu terpasang di ouput modul buck conventer.
5. . pada saat keypad huruf ‘C’ ditekan
maka data di program baik di duty cycle maupun ARR kondisi 0.
I.Integration Result
Link
Video on you tube
J. Excellence of Design
Kelebihan pada sistem ini yaitu sistem
ini bisa menyalakan beban lampu dengan kecil atau besar
tergantung duty cyle yang dikasih oleh user, dan duty cyle bisa di masukkan
nilai semaunya user
K. Lack of
Design
Pada
saat diekan keypad C ouput di lcd masih meninggalkan data yang sebelumnya.
L. Conclusion
- Pada system ini sangat
berguna untuk seseorang engginer untuk menyalakan kecerahan pada beban lampu
yang mana user bisa memberi nilai kecerahan semaunnya.
- pada praktikum ini bila
dimasukkan nilai duty cyle besar maka keluaran tegangannya juga besar
(berbanding lurus)
No comments:
Post a Comment