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
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
Output
No Device Label Port Keterangan
4|P a g e
PROBLEM BASED LEARNING [PBL] MICROCONTROLLER DASAR
5. Flowchart
HAL_TIM_PeriodElapsedCallba
START
ck(TIM_HandleTypeDef *htim)
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);
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;
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(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
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
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 | 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