PRAKTIKUM MIKROKONTROLLER
PERCOBAAN 3
APLIKASI CONSTANT VOLTAGE
Di susun Oleh :
Nama : Syamsul Arifin
Kelas : 3 D4 ELIN A
NRP : 1310151021
Dosen Pengampu : Farid Dwi Murdianto, S.ST
Prodi : Teknik Elekteo Industri
Departemen : Teknik Elektro
I. TUJUAN
1. Mahasiswa mampu mengkonfiguarsi settingan ARM untuk GPIO
2. Mahasiswa mampu membuat program untuk aplikasi constant voltage dengan
menggunakan modul ARM STM32F4 dan keil mikro vision.
Gambar 2. Pengaturan beban. Suatu perubahan pada arus beban tidak mempengaruhi
tegangan keluaran.
Pengaturan beban dapat juga dinyatakan sebagai persentasi perubahan tegangan
keluaran terhadap perubahan setiap mA arus pada beban. Sebagai contoh, regulator tegangan
mempunyai Load Regulation 0,01% / mA, berarti bahwa tegangan keluaran berubah 0,01
persen ketika arus beban meningkat atau berkurang 1 mA.
Gambaran sederhana dari pengatur tegangan seri ditunjukkan pada gambar blok diagram
berikut ini.
Gambar 3. Diagram blok pengatur tegangan seri
1. Buck Converter pada kondisi awal atau mula mula nilai duty cycle sebesar 0.5 .
2. User menentukan besarnya tegangan input dan tegangan output constan yang di inginkan
pada kasus kali ini saya menentukan besarnya nilai tegangan output constan sebesar 9 volt
dan nilai tegangan supplay sebesar 16 volt .
3. Pada kasus PI controller terdapat parameter error yang dapat dihitung menggunakan rumus
e = SP - PV dimana SP adalah nilai set point yang diinginkan untuk nilai tegangan output
constan yang mana besarnya tadi adalah 9 volt dan PV adalah nilai present Value dari nilai
tegangan output ketika terjadi perubahan nilai duty cycle . kita tahu bahwa jika nilai duty
cycle berubah maka nilai tegangan outputnya juga berubah .
4. Untuk SP dan PV dalam mikrokontroller kita gunakan fitur ADC , besarnya nilai SP atau
PV bergantung pada sensor tegangan yang ada pada sisi output dan SP adalah set point . yang
mana berarti kita menggunakan 2 channel adc , yang satu untuk set point dan yang satunya
lagi untuk present value . atau kita bisa menggunakan 1 channel adc saja namun dengan
catatan nilai setting point kita inisialisasi dalam program mikrokontrollernya .
5. Pada tampilan LCD 16x2 , variabel yang di tampilkan adalah variabel nilai Set point ,
Present Value, nilai error dan nilai tegangan output, nilai SP Di lcd kita inisialisasi di
program, nilai Pv Di lcd kita berdasarkan nilai adc dari potensiometer, nilai Vo Di lcd kita
berdasarkan program constan voltage yang kita program , dan kalo bias bias diamati
perubahan menuju tegangan konstannya .
#include "stm32f4xx_hal.h"
#include "stdio.h"
#include "stdlib.h"
#include "lcd_character.h"
ADC_HandleTypeDef hadc1;
DMA_HandleTypeDef hdma_adc1;
TIM_HandleTypeDef htim2;
int SP, x;
float PV, PV2, Vo, Error, SP1, SP2;
char buffer[20], buffer2[20], buffer3[20], buffer4[20];
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_ADC1_Init(void);
static void MX_TIM2_Init(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DMA_Init();
MX_ADC1_Init();
MX_TIM2_Init();
lcd_init();
HAL_TIM_Base_Start(&htim2);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);
HAL_ADC_Start_DMA(&hadc1,(uint32_t*) &Nilai_ADC,8);
while(1)
{
lcd_gotoxy(15,0);
lcd_puts("V");
lcd_gotoxy(15,1);
lcd_puts("V");
lcd_gotoxy(6,1);
lcd_puts("%");
PV2=PV;
PV = Nilai_ADC[4];
PV = (PV/4095)*20;
sprintf(buffer,"PV=%5.2f",PV);
lcd_gotoxy(7,0);
lcd_puts(buffer);
SP=10;
sprintf(buffer2,"SP=%2dV",SP);
lcd_gotoxy(0,0);
lcd_puts(buffer2);
Error=(Vo-SP)/SP*100;
sprintf(buffer3,"E=%3.1f",Error);
lcd_gotoxy(0,1);
lcd_puts(buffer3);
sprintf(buffer4,"Vo=%5.2f",Vo);
lcd_gotoxy(7,1);
lcd_puts(buffer4);
HAL_Delay(50);
while(Vo>12.05)
{
Vo=Vo-0.05;
sprintf(buffer4,"Vo=%5.2f",Vo);
lcd_gotoxy(7,1);
lcd_puts(buffer4);
Error=(Vo-SP)/SP*100;
sprintf(buffer3,"E=%3.1f",Error);
lcd_gotoxy(0,1);
lcd_puts(buffer3);
}
while(Vo<11.95)
{
Vo=Vo+0.05;
sprintf(buffer4,"Vo=%5.2f",Vo);
lcd_gotoxy(7,1);
lcd_puts(buffer4);
Error=(Vo-SP)/SP*100;
sprintf(buffer3,"E=%3.1f",Error);
lcd_gotoxy(0,1);
lcd_puts(buffer3);
V. ANALISA
Pada praktikum ketiga yaitu aplikasi constan voltage pada dc dc converter, kita
mencoba membuat program untuk aplikasi constan voltage, dimana prinsip kerjanya
adalah sebagai berikut :
Pada sebuah dc dc converter setting point adalah nilai yang kita harapkan terjadi
pada output converter.
Present value adalah nilai yang terukur saat ini pada sisi output converter.
Error yang terjadi adalah selisih nilai antara present value dikurangi setting point.
Misal kita setting point adalah 10 V, maka nilai output yang keluar dari rangkaian
akan tetap 10 V meskipun beban ataupun tegangan sumber berubah.
Jika PV yang terukur pada sisi output rangkaian lebih dari 12 V dengan setting
point 10 V, maka error yang terjadi adalah lebih dari 0, sehingga nilai error akan
dikurangi melalui pengurangan Vo=PV-0.1 ; sehingga nilai error akan mendekati
0 karena pada program diberikan nilai toleransi sebesar 0.1.
Jika PV yang terukur pada sisi output rangkaian kurang dari 12 V dengan setting
point 10 V, maka error yang terjadi adalah kurang dari 0, sehingga nilai error
akan ditambah melalui penambahan Vo=PV+0.1 ; sehingga nilai error akan
mendekati 0 karena pada program diberikan nilai toleransi sebesar 0.1.
Jika PV yang terukur pada sisi output rangkaian sama dengan 10 V dengan
setting point 10 V,. Maka nilai Vo yang diharapkan akan tercapai, karena Vo =
PV.
Dikarenakan pada programnya hanya menggunakan 1 channel adc saja , maka set
point harus diinisialisasi di programnya , berikut ini adalah contoh programnya :
SP=10;
sprintf(buffer2,"SP=%2dV",SP);
lcd_gotoxy(0,0);
lcd_puts(buffer2);
Kemudian untuk konstan voltage sendiri bisa di program menggunakan operasi e = SP
– PV
nilai error akan muncul ketika nilai setting point lebih besar atau lebih kecil dari setting
vaue yang di inginkan . Ketika nilai set point lebih besar dari present value maka kita
perlu menambah nilai duty cycle nya supaya nilai error mngecil dan nilai set point lebih
kecil dari sebellumnya sehingga bisa mencapai nilai error sama dengan nol . ketika
nilai set point lebih kecil dari present value maka kita perlu mengurang nilai duty cycle
nya supaya nilai error mngecil dan nilai set point lebih besar dari sebellumnya sehingga
bisa mencapai nilai error sama dengan nol . berikut ini adalah contoh programnya :
Error=(Vo-SP)/SP*100;
sprintf(buffer3,"E=%3.1f",Error);
lcd_gotoxy(0,1);
lcd_puts(buffer3);
sprintf(buffer4,"Vo=%5.2f",Vo);
lcd_gotoxy(7,1);
lcd_puts(buffer4);
HAL_Delay(50);
while(Vo>12.05)
{
Vo=Vo-0.05;
sprintf(buffer4,"Vo=%5.2f",Vo);
lcd_gotoxy(7,1);
lcd_puts(buffer4);
Error=(Vo-SP)/SP*100;
sprintf(buffer3,"E=%3.1f",Error);
lcd_gotoxy(0,1);
lcd_puts(buffer3);
}
while(Vo<11.95)
{
Vo=Vo+0.05;
sprintf(buffer4,"Vo=%5.2f",Vo);
lcd_gotoxy(7,1);
lcd_puts(buffer4);
Error=(Vo-SP)/SP*100;
sprintf(buffer3,"E=%3.1f",Error);
lcd_gotoxy(0,1);
lcd_puts(buffer3);
Nilai tegangan output yang dicetak nilainya akan konstan 10 volt walau terjadi
perubahan pnilai beban atau sumbernya berubah nilainya yang mana dalam kasus ini
diindikasikan nilai presnt valuenya berubah , ketika nilai present valuenya berubah nilai
output akan tetap menjaga nilai tegangan output tetap konstan dengan menambah nilai
duty cycle atau mengurangi duty cycle dan syarat nilai error = 0 harus terpenuhi , walau
tidak harus sama dengan nol tidak apa apa kita beri nilai toleransi , contoh toleransi e =
0, 0005 atau nilai yang lain .
VI. KESIMPULAN
Berdasarkan data percobaan dan analisis di atas dapat disimpulkan bahwa :
Metode Constan voltage yang digunakan pada DC DC converter adalah untuk menjaga
agar tegangan output nilainya selalu tetap atau sama dengan setting point yang kita
harapkan.
Jika nilai error<0 maka tegangannya ditambah sampai mendekati setting point dan jika
error>0 maka tegangannya dikurangi sampai nilai tegangan output mendekati setting
point.
Untuk melihat proses penambahan dan pengurangan tegangan diperlukan update nilai
VO terhadap PV,sehingga nilai Vo yang sudah diproses akan ditambah atau dikurangi
dengan nilai Vo yang sudah terukur .
https://www.youtube.com/watch?v=MWDe4T98yOw&feature=youtu.b
e