Judul : : Multi Parameter Measurement Using ADC.
Tujuan :
- - Mampu melakukan seting ADC untuk berbagai jenis
pengukuran Tegangan DC diatur dari potensiometer, Cahaya menggunakan LDR dan
Suhu menggunakansensor suhu LM-35.
- - Mampu melakukan konfigurasi channel pada ADC sesuai
urutan masukan,
- - Mampu melakukan perhitungan konversi parameter terukur
menjadi informasi tertampil pada LCD,
- - Mampu menyusun, menjalankan dan melakukan debugging
program sesuai dengan permasalahan berbasis Bahasa pemrograman C dengan menggunakan Keil uVisonAlat : Personal
Computer, modul MCU, Modul buck converter, kabel USB, ST Link downloader.
A.Problem
:
Akan
dibuat sebuah system untuk mengukur parameter tegangan DC, intensitas
cahaya
dan suhu ditampilkan pada LCD, seperti ditunjukkan pada Gambar 1.
1.
Plant Layout:
Plant Layout Akan dibuat sebuah
system Untuk mengatur tegangan luaran menggunakan potensio
dan mengatur kecerahandengan mengunakan ldr dan mengatur suhu ruangan dengan menggunakan
lm 35
B.
User Requirement
User
Requirement Pada plant ini, digunakan
untuk pengaturan tegangan motor DC dengan menggunakan potensio dan bisa mengatur
kecerahan pada uangan dengan menggunakan ldr serta suhu ruangan dengan
menggunakan lm35.
LDR
|
D.
I/O Table
INPUT
No
|
Device
|
Address
|
note
|
1
|
POT
|
PC02
PC03
|
Memasukkan nilai konversi adc
yang mana nanti akan menjadi suatu tegangan maksimal 2.958 V
|
2
|
LDR
|
PB01
PB08
|
Memasukkan nilai konversi
adc yang mana nanti akan menjadi suatu satuan cahaya
|
3
|
LM35
|
PBC1
PBC5
|
Memasukkan nilai konversi
adc yang mana nanti akan menjadi suatu satuan suhu CELCIUS
|
G.
Source Code
float Volt_POT1, Volt_POT2, LDR1, LDR2, Suhu_LM1, Suhu_LM2;
uint32_t ValADC_POT1,ValADC_POT2, ValADC_LDR1, ValADC_LDR2,ValADC_LM1,
ValADC_LM2;
HAL_ADC_Start(&hadc1);
if(HAL_ADC_PollForConversion(&hadc1,50)==HAL_OK)
ValADC_POT1=HAL_ADC_GetValue(&hadc1);
Volt_POT1=(HAL_ADC_GetValue(&hadc1)/4095.0)*2.958;
if(HAL_ADC_PollForConversion(&hadc1,50)==HAL_OK)
ValADC_POT2=HAL_ADC_GetValue(&hadc1);
Volt_POT2=HAL_ADC_GetValue(&hadc1)/4095.0*2.958;
if(HAL_ADC_PollForConversion(&hadc1,50)==HAL_OK)
ValADC_LDR1=HAL_ADC_GetValue(&hadc1);
LDR1=HAL_ADC_GetValue(&hadc1)/4095.0*100.0;
if(HAL_ADC_PollForConversion(&hadc1,50)==HAL_OK)
ValADC_LDR2=HAL_ADC_GetValue(&hadc1);
LDR2=HAL_ADC_GetValue(&hadc1)/4095.0*100.0;
if(HAL_ADC_PollForConversion(&hadc1,50)==HAL_OK)
ValADC_LM1=HAL_ADC_GetValue(&hadc1);
Suhu_LM1=((HAL_ADC_GetValue(&hadc1)/4095.0)*2958)/10.0;
if(HAL_ADC_PollForConversion(&hadc1,50)==HAL_OK)
ValADC_LM2=HAL_ADC_GetValue(&hadc1);
Suhu_LM2=((HAL_ADC_GetValue(&hadc1)/4095.0)*2958)/10.0;
HAL_ADC_Stop(&hadc1);
HAL_Delay(10);
H. running test procedure
1. Nilai Vref ADC = VDD, ukur tegangan VDD saat itu dengan menggunakan
multitester. Untuk menghitung tegangan
dari potensio meter:
Volt=Nilai konversi ADC/4095 * Vref ADC
Cahaya=Nilai konversi ADC/4095*100
Suhu=Nilai konversi ADC/4095*Vref ADC/10;
2. Sambungkan
power supply 5 volt pada modul, dan hubungkan downloader pada
USB PC
3. Nyalakan
PC untuk mempersiapkan konfigurasi perangkat keras MCU serta
pemrograman.
4. Gunakan
STM32CubeMX untuk melakukan konfigurasi perangkat keras serta
menghasilkan source code..
5. Gunakan Keil uVision untuk melakukan
pemrograman dan kompilasi dari source
code yang dihasilkan oleh STM32CubeMX.
6. masukkan nilai dengan cara memutar untuk potensio,
menutup ruang cahaya untuk LDR dan
memegang LM35 untuk suhu
I.Integration Result
Link
Video on you tube
No comments:
Post a Comment