Anda di halaman 1dari 14

PRAKTIKUM MIKROKONTROLLER

PENGAPLIKASIAN KEYPAD MATRIX 4 X 4

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


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 membuat aplikasi sederhana yang ditampilkan pada LCD
Mikrokontroler menggunakan Matrix Keypad 4 x 4

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. 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.


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
sebagai berikut :
• Kaki PD0 – PD7 = Sebagai kaki output
• Kaki PE8 – PE11 = Sebagai kaki input (dengan label “Kolom”)
• Kaki PE12 – PE15 = Sebagai kaki output (dengan label “Baris”)
8. Setelah kaki pin diatur maka akan tampil seperti gambar dibawah ini.

9. Kemudian isi sesuai dengan parameter berikut ini.

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

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
IV. PROGRAM
int a;
int pass=123;
while (1)
{
if(a<=5){
#define maxdigit 3
static unsigned char index=0;
static char bufferkey[maxdigit+1];
static short int datakey;

key_val = keypad_get_key_value();

sprintf(buffer, "Key presed= %c",key_val);


lcd_gotoxy(0,0);
lcd_puts(buffer);

if(key_val >= '0' && key_val<='9')// number for decimal value


{if (index < maxdigit)
{bufferkey[index] = key_val;
index++;
HAL_Delay(200);
}
}
else if (key_val == 'D') // for delete
{if(index > 0)
{index--;
bufferkey[index] = ' ';
HAL_Delay(200);
}
}
else if (key_val =='#') // for enter key
{
datakey = atoi(bufferkey); // convert from string/ascii to integer
//datakey = atof(bufferkey); // convert from string/ascii to float

GPIOE -> ODR = datakey;


bufferkey[0] = ' ';
bufferkey[1] = ' ';
bufferkey[2] = ' ';
index=0;
HAL_Delay(500);

if (datakey == pass)
{
lcd_clear();
lcd_gotoxy(1,0);
lcd_puts("PASSWORD BENAR");
HAL_Delay(1000);
}
else if(datakey != pass)
{
a++;
lcd_clear();
lcd_gotoxy(1,0);
lcd_puts("PASSWORD SALAH");
HAL_Delay(1000);
}
}
lcd_gotoxy(0,1);lcd_puts("key=");
lcd_puts(bufferkey);
lcd_gotoxy(9,1); sprintf(buffer, "val=%3d",a);
lcd_puts(buffer);
}
else if(a>5)
{
lcd_gotoxy(0,0);
lcd_puts("anda di blokir ");
lcd_gotoxy(0,1);
lcd_puts(" ");
}
/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */


}
/* USER CODE END 3 */
}

V. HASIL PERCOBAAN
1. Ketika Masukkan Password Benar
2. Ketika Masukkan Password Salah Pertama kali
3. Ketika Masukkan Password Salah Kedua kali
4. Ketika Masukkan Password Salah Ketiga
5. Ketika Mencapai batas dan di blokir
VI. ANALISA PERCOBAAN
Pada praktikum percobaan ketiga ini menggunakan software STM32 CubeMX dan
Keil uVision5 untuk melakukan programming pada suatu mikrokontroller.
Mikrokontroller yang digunakan adalah mikrokontroller jenis STM32F407VGT6 yang
mempunyai 100 pin dimana chip ini termasuk pada jenis mikrokontoler STM32 yang
beroperasi pada frekuensi hingga 168 MHz. Dari 100 pin yang ada, terdapat pin PD0 –
PD7 yang digunakan sebagai pin output, pin PE8- PE11 digunakan sebagai pin input.
Selanjutnya pada clock konfigurasi digunakan input frekuensi yaitu sebesar 8 MHz.
Digunakan juga High Speed Clock yaitu Crystal/Ceramix Resonator dan memilih angka
dan perhitungan yang nantinya akan menghasilkan frekuensi sebesar 168 MHz.
Dalam praktikum ini melakukan simulasi program aplikasi sederhana yang dapat
ditampilkan pada modul LCD Mikrokontroler. Layar LCD digunakan untuk
menampilkan instruksi yang telah kita program pada software keil uVision dengan
menekan tombol pada Keyped LCD sebagai output dari program yang telah kita buat.
Program yang dibuat akan bekerja ketika program di build dan di load, kemudian hasil
program akan muncul pada layar LCD setelah menekan tombol “Reset”.
Percobaan ini di aplikasikan sebagai sandi pintu, dimana dalam program
menggunakan intruksi “if” dan “else if” yang digunakan untuk mengatur keyped sesuai
dengan yang kita inginkan, jika sandi yang di inputkan sesuai dengan perintah kita dalam
program dan tekan # (dimana tombol # pada keyped berfungsi sebagai ENTER) maka
layer LCD akan menampilkan kalimat “PASSWORD BENAR” dan jika sandi yang di
inputkan salah maka layer LCD akan menampilkan kalimat “PASSWORD SALAH”.
Selanjutnya jika terdapat kesalahan dalam penginputan sandi, dapat dihapus dengan
menekan tombol huruf “D”. Jika sandi yang diinputkan salah sebanyak 5 kali, maka layer
LCD akan menampilkan kalimat “ANDA DIBLOKIR”.

VII. KESIMPULAN
Berdasarkan hasil praktikum yang telah dilakukan dan Analisa yang telah dibuat maka
dapat disimpulkan sebagai berikut:
1. Program yang dibuat merupakan program aplikasi sederhana dimana difungsikan
sebagai sandi pintu yang di menggunakan intruksi if dan else if untuk mengatur keypad
sesuai yang di inginkan.
2. Mikrokontroller yang digunakan adalah mikrokontroller jenis STM32F407VGT6
yang mempunyai 100 pin dimana chip ini termasuk pada jenis mikrokontoler STM32
yang beroperasi pada frekuensi hingga 168 MHz. Dari 100 pin yang ada, terdapat pin
PD0 – PD7 yang digunakan sebagai pin output, pin PE8- PE11 digunakan sebagai pin
input.
3. Untuk mengaktifkan fungsi LCD pada display diperlukan library seperti “#include
lcd_character.h” yang didalamnya terdapat beberapa fungsi yang digunakan seperti :
a) lcd_init() difungsikan untuk menampilkan teks pada layer LCD
b) lcd_puts(“…”) difungsikan untuk menampilkan karakter huruf dalam bentuk
string pada layer LCD
c) lcd_gotoxy(a,b) difungsikan untuk mengatur posisi karakter pada layer LCD
d) lcd_clear() difungsikan untuk menghapus karakter pada layer LCD
4. Untuk mengaktifkan fungsi Keyped 4x4 diperlukan library seperti “include
keypad_4x4” yang didalamnya terdapat fungsi yang digunakan yaitu
keypad_get_key_value(). Fungsi tersebut untuk menyimpan data-data character sesuai
dengan tombol digit pada keypad.
5. Program ini menampikan kalimat PASSWORD BENAR jika sandi yang di inputkan
sesuai dengan perintah. Namun jika sandi yang di inputkan tidak sesuai dengan
perintah maka akan muncul kalimat PASSWORD SALAH.

Anda mungkin juga menyukai