Anda di halaman 1dari 11

PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

PBL-05
Judul : Voltage and Current Measurement of DC-DC Converter
Nama : Singgih Agustian
NRP : 1310171034
Kelas : 3 D4 ELIN B
Tanggal : 29 Oktober 2019
Tujuan : Mampu menyelesaikan permasalahan mengukur besar arus dan tegangan
DC dari suatu DC to DC Converter.
Mampu merancang program untuk menghitung arus dan tegangan RMS
dari beban arus DC dari hasil bacaan sensor arus dan sensor tegangan.
Mampu menyusun jenis dan fungsi unit I/O yang diperlukan untuk
menyelesaikan permasalahan pengukuran arus dan tegangan DC dari
suatu DC to DC converter.
Mampu merancang program untuk untuk menyelesaikan permasalahan
pengukuran arus dan tegangan DC dari suatu DC to DC converter
menggunakan cubeMX, IDE Keil.
Mampu menyusun program di sisi PC untuk menampilkan hasil
pengukuran yang dikirim secara serial.
Mampu menyusun, menjalankan dan melakukan debugging program
sesuai dengan permasalahan berbasis bahasa pemrograman C dengan
menggunakan Keil uVison
Mengetahui kelebihan dan kelemahan rancangan yang telah dibuat serta
pengembanganya.
Mampu menyusun dokumentasi hasil pekerjaan termasuk prosedur
running test.
Alat : Personal Computer, modul STM32F4 Discovery, Modul praktik DC to
DC cinverter, kabel USB.
Problem : Diperlukan sebuah sistem untuk melakukan pengukuran arus beban DC
menggunakan sensor arus ACS, luaran dari sensor arus dibaca
menggunakan ADC dan dihitung dengan menggunakana rumus standar
Irms. Untuk mengukur tegangan DC digunakan pembagi tegangan dan
dibaca menggunakan ADC, hasil pembacaan di kirim ke PC melalui serial
USART RS-232, seperti ditunjukkan pada gambar 1.

1|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

Gambar 1. Layout Pengukuran Arus dan Tegangan

1. Plant Layout:

2. User Requirement
2|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

Pada Sebuah Sistem, dibutuhkan suatu alat sebagai pengukur arus keluaran dan
tegangan keluaran pada beban DC dan dapat di monitoring menggunakan
mikrokontroller dan juga dapat ditampilkan melalui LCD. Pada display microcontroller
ditampilkan tegangan input, tegangan output dan arus output yang telah terukur melalui
microcontroller kemudian dibandingkan dengan nilai pengukuran menggunakan Tang
Ampere dengan beberapa sampling data. Pengaturan tegangan input dilakukan melalui
power supply. Besarnya duty cycle (PWM) diatur melalui program dan dapat ditampilkan
pada osiloskop.

3. Pin Configuration

3|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

4. I/O Table

Input
No Device Label Port Keterangan

Interrupt GPIO_EXT8 PA-8


1
Voltage sensor 1 ADC3_IN1 PA-1 Sensor tegangan input
2
Voltage sensor 2 ADC1_IN6 PA-6 Sensor tegangan output
3
Current sensor ADC2_IN7 PA-7 Sensor arus output
4

Output
No Device Label Port Keterangan

LCD GPIO_OUTPUT PD.0- PD.7 Menampilkan pada layer


1 LCD parameter sesuai
dengan program yang telah
diinputkan ke MCU

TIMER TIM4_CH1 PD-12 Membangkitkan PWM


2
PC Communication USART1_RX PB-7 Pin penerima
3 device
USART1_TX PB-8 Pin pengirim

4|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

5. Flowchart

HAL_TIM_PeriodElapsedCallba
START
ck(TIM_HandleTypeDef *htim)

float Vsum, ADCVin[100], ADCV,


Tegangan, Vsum1, ADCVin1[100], ADCV1,
Tegangan1, Isum, ADCIin[100], ADCI, (htim->instance
Arus, pwm; int k, kontrol; float PID; char ==TIM4)
lcdbuff[20], buff[5]; char TX_Data_R[15];
unsigned char RX_Data[3];
Vsum -= ADCVin[k];
Vsum1 -= ADCVin1[k];
RX_Data[0], RX_Data[1], Isum -= ADCIin[k];
RX_Data[2] ADCVin[k] = HAL_ADC_GetValue(&hadc1);
ADCVin1[k]=HAL_ADC_GetValue(&hadc3);
ADCIin[k] = HAL_ADC_GetValue(&hadc2);
Vsum += ADCVin[k];
kontrol = atoi(buff); Vsum1 += ADCVin1[k];
pwm = 30; Isum += ADCIin[k];
TIM4->CCR1=30; ADCV = Vsum/maxdata;
ADCV1 = Vsum1/maxdata;
ADCI = Isum/maxdata;
tegangan input, Tegangan = 1.1886*ADCV - 325.51;
tegangan output, Tegangan1 = 1.1886*ADCV1 – 325.51;
arus output Arus = 0.001*ADCI + 1.533;
k++;

HAL_UART_Transmit(&huart1,(
uint8_t*)TX_Data_R,strlen(TX_
Data_R),100);
HAL_Delay(200); (K>=maxdata)

K=0;
END

RETURN

5|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

6. Source Code
Main
#include "main.h"
#include "string.h"
#include "stdio.h"
#include "stdlib.h"
#include "lcd_character.h"
#include "math.h"
#define maxdata 100

float Vsum, ADCVin[100], ADCV, Tegangan, Vsum1, ADCVin1[100], ADCV1, Tegangan1, Isum,
ADCIin[100], ADCI, Arus, pwm;
int k, kontrol;
float PID;
char lcdbuff[20], buff[5];
char TX_Data_R[15];
unsigned char RX_Data[3];

ADC_HandleTypeDef hadc1;
ADC_HandleTypeDef hadc2;
ADC_HandleTypeDef hadc3;

TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim4;

UART_HandleTypeDef huart1;
DMA_HandleTypeDef hdma_usart1_rx;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_TIM4_Init(void);
static void MX_USART1_UART_Init(void);
static void MX_ADC1_Init(void);
static void MX_ADC2_Init(void);
static void MX_ADC3_Init(void);
static void MX_TIM2_Init(void);

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)


{
if (htim->Instance ==TIM2)
{
Vsum -= ADCVin[k];
Vsum1 -= ADCVin1[k];
Isum -= ADCIin[k];

ADCVin[k] = HAL_ADC_GetValue(&hadc1);
ADCVin1[k] = HAL_ADC_GetValue(&hadc3);
ADCIin[k] = HAL_ADC_GetValue(&hadc2);

Vsum += ADCVin[k];
Vsum1 += ADCVin1[k];
Isum += ADCIin[k];

ADCV = Vsum/maxdata;
ADCV1 = Vsum1/maxdata;
ADCI = Isum/maxdata;

Tegangan = 1.1886*ADCV - 325.51;


Tegangan1 = 1.1886*ADCV1 – 325.51;
Arus = 0.001*ADCI + 1.533;
6|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

k++;
if(k>=maxdata)
k=0;
}
}

int main(void)
{
HAL_Init();

SystemClock_Config();

MX_GPIO_Init();
MX_DMA_Init();
MX_TIM4_Init();
MX_USART1_UART_Init();
MX_ADC1_Init();
MX_ADC2_Init();
MX_ADC3_Init();
MX_TIM2_Init();

HAL_ADC_Start(&hadc1);
HAL_ADC_Start(&hadc2);
HAL_ADC_Start(&hadc3);
HAL_TIM_Base_Start_IT(&htim2);
HAL_TIM_Base_Start(&htim4);
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1);
HAL_UART_Receive_DMA(&huart1,(uint8_t*)RX_Data,3);
lcd_init();

while (1)
{
sprintf(buff, "%c%c%c", RX_Data[0], RX_Data[1], RX_Data[2]);
kontrol = atoi(buff);
pwm = 30;
TIM4->CCR1=30;

sprintf(lcdbuff, "vin=%4.0f vo=%4.0f",ADCV1, ADCV);


lcd_gotoxy(0,0);
lcd_puts(lcdbuff);
sprintf(lcdbuff, "Iin=%4.0f ",ADCI);
lcd_gotoxy(0,1);
lcd_puts(lcdbuff);

sprintf(TX_Data_R, "%4.1f%4.f%3.1f\n\r",Tegangan,Tegangan1,pwm);
HAL_UART_Transmit(&huart1,(uint8_t*)TX_Data_R,strlen(TX_Data_R),100);
HAL_Delay(200);

}
}

7|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

7. Running Test Procedure


Pada percobaan ini, dijalankan program yang telah dibuat, dari MCU, dihubungkan
ke ACS (sensor arus) sebagai input sensor arus dan dihubungkan dengan 2 sensor
tegangan sebagai tegangan input dan output. Lalu dari ACS serta sensor lainnya di
hubungkan dengan MCU pada port PA7,PA6 dan PA1. Karena output dari sensor berupa
analog yang harus di convert menjadi digital.
Kemudian pada layer LCD terdapat parameter tegangan input, tegangan output
dan arus output. Ketika di inputkan duty cycle (PWM) 30% maka pada osiloskop akan
muncul gelombang berikut. (power supply keadaan on)

Jika di inputkan duty cycle (PWM) 50% maka pada osiloskop akan muncul
gelombang berikut. (power supply keadaan on)

8|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

Setelah tegangan dilakukan pengaturan dengan mengubah besarnya power


supply, akan didapatkan grafik hubungan tegangan adc dengan tegangan pada tang
ampere, lalu dari grafik tersebut diinputkan di ms.excel, dan mendapat persamaan grafik
yang selanjutnya dimasukkan ke dalam persamaan di program dengan rumus V rms =
ax + b. setelah itu V rms diprogram untuk dioutputkan ke dalam LCD. Maka dengan
persamaan tersebut, V rms akan terbaca pada LCD sesuai dengan rumus persamaan
yang didapat dari perbandingan tegangan adc dengan tegangan pada tang ampere.
ADC Vo
492 267
538 315
584 366
630 415
673 469
801 634
Sehingga diperoleh persamaan Vrms = 1.1886x - 325.51

8. Integration Result
Pada percobaan kali ini, Microcontroller berfungsi sebagai perantara, antara
Sensor arus Iout dan sensor tegangan Vin,Vout, lalu juga sebagai input pwm pada gate
mosfet buck converter, lalu sebagai perantara untuk monitoring dengan menggunakan

9|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

LCD, lalu perantara juga dengan komunikasi serial yang dihubungkan melalui USART ke
PC.
Ketika telah melakukan loading program ke dalam mikrokontroler melalui keil
Uvision 5 dengan duty cycle yang telah diatur yaitu 50%, dilakukan pengecekan apakah
PWM sudah berhasil dibangkitkan atau belum melalui mikrokontroler. Pengecekan
dilakukan dengan menancapkan probe negative ke ground dan positif ke pin PD12
(PWM) dan diketahui bahwa PWM telah berhasil dibangkitkan. Menyuplai rangkaian
dengan sumber dc melalui dc power supply dan tampil pengukuran arus dan tegangan
input serta output dari buck converter pada layar LCD pada mikrokontroler.

9. Excellence of Design
Kelebihan dari desain sistem ini adalah sistem dapat memonitoring keadaan
tegangan sumber DC, lalu dapat memonitoring tegangan output, dan arus output apabila
terdapat beban DC, dengan sinyal pwm pada buck converter juga lebih efisien dengan
menggunakan control mikro, apabila ingin mengganti duty cycle hanya dengan
mengganti nilai pada program saja, lalu selain dapat dimonitoring menggunakan lcd, dan
juga dapat monitoring menggunakan PC dengan bantuan USART.

10. Lack of Design


Kelemahan dari desain ini adalah sistem ini tidak dapat mendeteksi adanya
kerusakan pada sistem apabila terjadi short circuit, atau over current pada sistem, dan
dalam sistem juga tidak dapat mengetahui efisiensi yang didapatkan dari output voltage
dengan input voltage.

11. Future Development


Diharapkan kedepannya, sistem ini dapat mendeteksi dan memonitoring keadaan
berbahaya baik dari tegangan input maupun dari sisi beban, dan apabila dapat
dimonitoring, maka dapat meminimalisir terjadinya losses atau kerusakan pada sistem
atau kerugian, dan untuk mendapatkan efisiensi pada pemakaian beban, dengan
menambahkan monitoring daya pada beban yang tersedia dan dari daya tersebut dapat
dianalisa seberapa efisien sistem.
Dan kedepannya diharapkan , sistem ini dapat dimonitoring melalui smart phone
dan dapat diakses kapan saja dan dimana saja selama ada jaringan internet, sehingga
dalam melakukan monitoring tidak diperlukan pengawasan pada satu tempat, dan
pengawasan dapat dilakukan lebih mudah.

10 | P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR

12. Conclusion
Kesimpulan dari hasil praktikum percobaan 5 ini adalah bahwa Mikrokontroller
STM32F4 adalah jenis MCU yang sangat kompleks dan dapat digunakan untuk berbagai
macam hal, yaitu untuk menjadi perantara sistem ADC (analog to digital conversion) yaitu
sensor arus dan tegangan, dimana dari sinyal analog menjadi digital, disertai dengan
interrupt yang berfungsi sebagai penghitung nilai rms pada arus dan tegangan, serta
microcontroller dapat digunakan untuk komunikasi dengan PC yaitu menggunakan
USART

11 | P a g e

Anda mungkin juga menyukai