• Tidak ada hasil yang ditemukan

PRAKTIKUM MIKROKONTROLLER IMPLEMENTASI ANALOG DIGITAL CONVERTER (ADC

N/A
N/A
24@Ircham Badrus Rahmadani

Academic year: 2023

Membagikan "PRAKTIKUM MIKROKONTROLLER IMPLEMENTASI ANALOG DIGITAL CONVERTER (ADC"

Copied!
10
0
0

Teks penuh

(1)

PRAKTIKUM MIKROKONTROLLER

IMPLEMENTASI ANALOG DIGITAL CONVERTER (ADC)

Dibuat Oleh :

Ircham Badrus Rahmadani 2321600024

2 D4 Elektro Industri A

Dosen Pengampu :

Farid Dwi Murdianto, S.ST ., M.T

PROGRAM STUDI D4 TEKNIK ELEKTRO INDUSTRI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

TAHUN AJARAN 2022-

2023

(2)

I. TUJUAN

1. Mahasiswa mampu menggunakan software STM32 CubeMX dan Keil uVision 2. Mahasiswa mampu mengintegrasikan program STM32 dengan Hardware 3. Mahasiswa mampu memprogram dengan STM32 di keil uVision

4. Mahasiswa mampu mengimplementasikan ADC dengan menggunakan Hardware II. ALAT DAN BAHAN

1. Laptop pribadi

2. Software STM32CubeMX 3. ARM Keil

4. Modul STM32F407 5. LCD Character

6. Kabel konektor dan kabel serial

III. LANGKAH PERCOBAAN 1. Buka software STM32 CubeMX

2. Lalu klik File dan pilih New Project

(3)

3. Pilih MCU/MPU Selector, kemudian pilih Series.

4. Muncul beberapa jenis dari package dan core yang telah dipilih lalu pilih STM32F407VG.

5. Klik Start Project.

(4)

6. Klik Pinout & Configuration, kemudian klik System Core dan pilih RCC. Lalu pada High Speed Clock (HSE) pilih Crsytal/Ceramic Resonator

7. Lalu pada bagian kaki chip mikrokontroler tersebut, kemudian klik dan atur kaki pin.

8. Setelah kaki pin diatur maka akan tampil seperti gambar dibawah ini.

9. Kemudian isi sesuai dengan parameter berikut ini.

(5)

10. Pada menubar klik “system core” dan pilih “GPIO” dengan aturan GPIO output level High

11. Kemudian klik “Generator Code”

12. Selanjutnya klik open project

(6)

13. Setelah dialihkan pada software arm keil uVision, maka akan tampil program file main.c

14. Buat program yang diinginkan pada MX GPIO Init

15. Sambungkan USB dari laptop ke moudl mikrokontroler. Kemudian klik “Build” dan

“Load” mpodul mikrokontroler siap bekerja. Lalu tekan tombol “Reset” pada modul untuk menampilkan hasil program di layer LCD

(7)

IV. PROGRAM

#include "main.h"

/* Private includes ---*/

/* USER CODE BEGIN Includes */

#include "lcd_character.h"

#include "stm32f4xx_hal.h"

#include "stdio.h"

/* Private variables ---*/

ADC_HandleTypeDef hadc1;

DMA_HandleTypeDef hdma_adc1;

/* USER CODE BEGIN PV */

__IO uint16_t ADC_value[8];

/* Private function prototypes ---*/

void SystemClock_Config(void);

static void MX_GPIO_Init(void);

static void MX_DMA_Init(void);

static void MX_ADC1_Init(void);

/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code ---*/

/* USER CODE BEGIN 0 */

/* USER CODE END 0 */

/**

* @brief The application entry point.

* @retval int */

int main(void) {

/* USER CODE BEGIN 1 */

char buffer[20];

float Current;

int Voltage;

float CurrentResult;

int VoltageResult;

/* Configure the system clock */

SystemClock_Config();

/* Initialize all configured peripherals */

MX_GPIO_Init();

MX_DMA_Init();

MX_ADC1_Init();

/* USER CODE BEGIN 2 */

HAL_ADC_Start_DMA(&hadc1, (uint32_t*) &ADC_value,8);

lcd_init();

lcd_gotoxy(3,0);

(8)

lcd_puts("PARAMETERS");

/* USER CODE END 2 */

/* Infinite loop */

/* USER CODE BEGIN WHILE */

while (1) {

Current = ADC_value[4];

CurrentResult = Current* 1.5/4095;

Voltage = ADC_value[5];

VoltageResult = Voltage*220/4095;

sprintf(buffer, "I =%0.2f V = %2d ", CurrentResult, VoltageResult);

lcd_gotoxy(0,1);

lcd_puts(buffer);

HAL_Delay(100);

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

}

/* USER CODE END 3 */

}

V. HASIL PERCOBAAN 1. Nilai awal ketika ditekan

2. Setelah menunggu beberapa detik akan muncul nilai tiap parameter

(9)

VI. ANALISA PERCOBAAN

Pada percobaan yang telah dilakukan dapat dianalisa bahwa percobaan diatas menggunakan software STM32 CubeMX dan juga KEIL. Dimana program yang telah dibuat diatas merupakan contoh program yang menggunakan lcd 2x16 dan Keypad 4x4, dimana kita aplikasikan dimana program ini bertujuan untuk menampilkan nilai tegangan dan arus pada tampilan layar lcd 2x16 dengan menggunakan ADC dan bisa mengatur nilai tegangan dan arus yang ditampilkan dengan menggunakan komponen pada modul trainer sebagai fungsi berikut :

• Potensio 1 sebagai pengatur nilai tegangan sedangkan,

• Potensio 2 sebagai pengatur nilai arus.

Sebelum menampilkan nilai dari kedua potensio tersebut, pertama kita memasuki program awal yaitu pada program while “1” akan muncul tulisan PARAMETERS pada baris pertama dengan memanfaatkan fungsi ADC_value sebagai input awal nya. Yang dimana fungsi ini merupakan nilai hasil konversi analog ke digital yang diberikan oleh mikrokontroler. Nilai ini mewakili tingkat tegangan analog yang diukur oleh ADC mikrokontroler sedangakan [4] merupakan setting GPIO potensio 1 sehingga nanti kita bisa mengatur nilai tegangan dengan memutar potensio 1. Kemudian pada baris kedua merupakan untuk mengatur nilai maximal tarus dan egangan yang ingin ditampilkan sebagai berikut;

Dengan menampilkan nilai arus nya dan untuk mengatur nilai arus tersebut kita menggunakan potensio 2 yang dimana potensio 2 ada di GPIO outup ADC1 dengan nomor “5”. Pada baris keempat merupakan untuk mengatur nilai maximal arus yang ingin ditampilkan pada layar lcd 2x16 dengan nilai setting 1.5A, kemudian kita bagi dengan 4096 yang dimana nilai ini merupakan jumlah diskrit yang kita gunakan pada ADC 12bitSederhana yang akan ditampilkan diawal running program. Sedangkan untuk menampilkan nilai tegangan kita menggunakan potensio 1, dengan ini akan ditampilkan pada layar lcd 2x16 kita setting nilai maxsimalnya sebesar 220V dengan mengikuti nilai standar yang digunakan oleh PLN untuk tegangan listrik yang biasa diguakan di seluruh rumah,kemudian nilai tersebut kita bagi dengan 4096 yang dimana nilai ini merupakan jumlah diskrit yang kita gunakan pada ADC 12bit. Terdapat beberapa fungsi pada program ini yaitu;

• Sprintf yang dimana fungsi ini untuk menampilkan program pada layar lcd.

• Buffer yang dimana fungsi Buffer merupakan fungsi yang digunakan untuk mneyimpan hasil nilai lcd_gotoxy(0,1).

• Lcd_puts(buffer) dimana fungsi ini untuk memproses atau menyimpan data kemudian akan ditampilkan pada lcd.

(10)

VII. KESIMPULAN

Berdasarkan hasil praktikum yang telah dilakukan dan Analisa yang telah dibuat maka dapat disimpulkan sebagai berikut:

1. Untuk mengaktifkan fungsi LCD display diperlukan library seperti #include

“lcd_character.h” yang mana di dalam library tersebut terdapat beberapa fungsi yang digunakan sebagai berikut :

a. lcd_init() berfungsi untuk menginisialisasi tampilan pada layar lcd supaya dapat menampilkan text dilayarnya.

b. lcd_puts(“..”) berfungsi menampilkan karakter huruf dalam bentuk string yang akandigunakan untuk menampilkan text pada LCD display.

c. lcd_gotoxy (a,b) berfungsi untuk mengatur posisi karakter pada LCD display. Untuk (a) difungsikan pada kolom sedangkan (b) difungsikan pada baris. Karena LCD yang digunakan 16x2, maka untuk memprogram LCD tersebut pada kolom (a) dimulai dari bit 0 -15 sedangkan pada baris (b) dimulai dari 0 – 1.

2. Untuk mengaktifkan fungsi Keypad 4x4 diperlukan library seperti #include

“keypad_4x4.h” yang mana di dalam library tersebut terdapat fungsi penting yakni keypad_get_key_value(). Fungsi tersebut menyimpan data – data character sesuai dengan tombol digit pada keypad.

3. ADC sistem yang berfungsi untuk mengubah sinyal analog menjadi sinyal digital.

4. Sinyal digital adalah sinyal diskrit yang hanya dapat mengambil nilai-nilai tertentu.

5. Dalam program ADC ini, sinyal analog diambil sebagai input dan diukur nilainya pada interval waktu tertentu. Nilai tersebut kemudian dikodekan menjadi format digital.

Referensi

Dokumen terkait

Gadget adalah hal yang sangat populer saat ini. Hampir setiap orang menggunakan gadget untuk berbagai keperluan. Salah satu fungsinya adalah berkomunikasi dan mencari informasi dengan cepat. Gadget membutuhkan sebuah program yang berfungsi untuk mengatur berjalannya perangkat tersebut. Menurut Yulikuspartono (2009:29) mengemukakan bahwa “ program merupakan sederetan instruksi atau statement dalam bahasa yang dimengerti oleh komputer yang bersangkutan”. Program merupakan sebuah elemen inti untuk kinerja suatu perangkat. Program inilah yang akan mengolah dan menjalankan perintah yang diberikan oleh user agar dapat di kelola oleh perangkat/device. Program juga dibuat oleh manusia, dan orang yang membuat program ini disebut dengan Programmer. Seorang programmer membuat program dengan menggunakan bahasa pemrograman. Bahasa pemrograman inilah yang disusun dengan berdasarkan logika atau algoritma menusia yang di terjemahkan ke algoritma manusia yang di terjemahkan ke perangkat. Bahasa pemrograman ini dibuat untuk memudahkan manusia dalam membuat suatu aplikasi atau program. Bahasa pemrograman bisa di klasifikasikan dari beberapa sudut pandang. Salah satu pengklasifikasian bahasa pemrograman adalah pendekatan dari notasi bahasa pemrograman tersebut, apakah lebih dekat ke bahasa mesin atau ke bahasa manusia. Dengan cara ini, bahasa pemrograman dapat di kelompokan menjadi dua yakni bahasa tingkat rendah (low level languages) dan bahasa tingkat tinggi (high level language). Bahasa tingkat tinggi adalah bahasa yang mudah dipahami oleh manusia, C++ merupakan salah satu contoh dari bahasa tingkat tinggi. Contoh lain dari bahasa tingkat tinggi ini seperti Pascal, Perl, Java, dan lain-lain sebagainya. Sedangkan bahasa tingkat rendah adalah bahasa mesin atau bahasa assembly. Secara sederhana sebuah komputer hanya dapat mengeksekusi program yang ditulis dalam bentuk bahasa mesin. Oleh karena itu, jika suatu program ditulis dalam bahasa tingkat tinggi maka program tersebut harus diproses terlebih dahulu sebelum bisa dijalankan dengan komputer. Hal ini merupakan salah satu kekurangan bagi bahasa tingkat tinggi dimana diperlukan waktu untuk memproses suatu program sebelum program tersebut di jalankan. Sebagai bahasa yang beraras tinggi, yang menggunakan perintah-perintah yang mudah dimengerti oleh manusia, C++ mempunyai keunggulan yakni bersifat universal. Sebagai bahasa yang universal, C++ bisa dijumpai di berbagai platform (Linux, Unix, Windows, Mac, dan lain-lain). Artinya, jika kita menguasai C++ di platform PC, sangat mudah untuk berpindah di Linux ataupun system operasi yang lain.