Laporan Resmi III - Keypad 4x4
Laporan Resmi III - Keypad 4x4
Keypad 4x4
Disusun :
Azharuddin Al Hamidy
1303181055
2 D3 ELEKTRO INDUSTRI B
2019
I. Judul
Keypad 4x4
II.Tujuan
Mampu menyusun user requirement untuk sebuah fungsi dari General Purpose Input
Output atau GPIO yang digunakan untuk menampilkan tulisan pada LCD 16x2 dan
juga menampilkan angka dari keypad 4x4 yang juga menghidupkan relay LED.
Mampu memahami dan melakukan identifikasi pin-pin pada STM32F4 input dan
output menggunakan alamat PORT sesuai konfigurasi pada board praktikum.
Gb.3a. Keypad berbahan carbon karet Gb.3a. Keypad berbahan carbon karet
elastic/plastic
B. Pin Configuration
C. Input/Output Table
No I/O Device Label Port Note
1. Input Keypad 4x4 GPIO_Oupu PE8-PE15 Keypad 4x4 didesain untuk
t dan input angka pada lcd dan
GPIO_Oupu mengaktifkan relay LED
t
//lcd_gotoxy(0,0);
//lcd_puts("Tes Keypad");
data=keypad_get_key_value();
sprintf(buffer,"KEYPAD KE= %c",data);
lcd_gotoxy(0,1);
lcd_puts(buffer);
if (data=='0')
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_0 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_0 ,GPIO_PIN_RESET);}
if (data=='1')
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_1 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_1,GPIO_PIN_RESET);}
if (data=='2')
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_2 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_2 ,GPIO_PIN_RESET);}
if (data=='3')
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_3 ,GPIO_PIN_RESET);}
if (data=='4')
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_4 ,GPIO_PIN_RESET);}
if (data=='5')
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5 ,GPIO_PIN_RESET);}
if (data=='6')
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_6 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOE, GPIO_PIN_6 ,GPIO_PIN_RESET);}
if (data=='7')
{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3 ,GPIO_PIN_SET);}
else
{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3 ,GPIO_PIN_RESET);}
}
/* USER CODE END 3 */
}
V. Result and Discussion
Dari percobaan yang telah dilakukan, yakni mendesain program untuk relay LED,
buzzer, LCD 16x2 dan juga keypad 4x4. Dengan tombol pada keypad 4x4 yang terdapat
pada pot PE8-PE15, dan output ada buzzer yang terletak pada port PB3, LCD 16x2
sebagai penampil angka dan tulisan terletak pada port PD0-PD7, dan juga 7 relay LED
pada port PE0-PE7.
Kemudian didesain pada software STMcube dengan mengatur RCC diaktifkan
dan mengatur juga pin-pin konfigurasi yang telah dipaparkan diatas seperti keypad pada
port PE8-PE11 yang disetting GPIO_INPUT, port PE12-PE15 yang disetting output. Dan
untuk LED pada PE0-PE6 yang disetting GPIO_OUTPUT dan diberi label LED1-LED7
begitujuga yang lainnya.
Kemudian setelah digenerate code, selanjutnya mulai membuat code sesuai
intruksi. Dengan mengcopy terlebih dahulu library LCD chararcter dan keypad 4x4
dengan manual ke file penyimpanan sesuai letak file STMcube tadi. Selanjutnya
masukkan library dari LCD #include "lcd_character.h" dan #include “keypad_4x4” .
kemudian aktifkan library dengan lcd_init(); keypad_init();. Lalu mengcoding sesuai
dengan code yang ada di atas.
Didapati ketika keypad angka 0 ditekan makan led 1 menyala dengan ditampilkan
angka 0 pada LCD, ketika keypad angka 1 ditekan makan led 2 menyala dengan
ditampilkan angka 1 pada LCD, ketika keypad angka 2 ditekan makan led 3 menyala
dengan ditampilkan angka 2 pada LCD. Begitupun seterusnya hingga keypad 6 ditekan.
Ketika keypad nomor 7 ditekan maka akan menampilkan angka 7 diikuti buzzer
menyala.