Keypad Matrix 3x4

Keypad 3x4 yang tersedia di pasaran adalah seperti gambar diatas. Keypad ini biasanya digunakan untuk berbagai aplikasi yang mengharuskan penggunaan tombol sebagai input numeric maupun abjad. Misalnya untuk telepon, tiket printer dll. Walaupun terlihat sama, ketiga keypad diatas biasanya memiliki konfigurasi pin yang berbeda tetapi tetap saja prinsip kerjanya sama.

misalnya angka '1' pada keypad ditekan output low dari col1 atau PINC. Misalnya saya menggunakan ATmega32 kemudian saya hubungkan pin keypad secara urut dari baris kemudian kolom ke pin mikrokontroler. hal ini diharapkan ketika ada tombol yang ditekan akan ada perubahan logic di PIN input tersebut sehingga mudah untuk dikenali oleh PIN input. if(countscankeypad==3){countscankeypad=0. nah itu dia. padkey=0.Keypad 3x4 berarti memiliki 12 tombol. kali ini saya membuat PINC 4-6 sebagai output low. Coba perhatikan gambar berikut ini Ketujuh atau kedelapan pin tersebut adalah 3 pin untuk kolom dan 4 pin untuk baris. karena mengingat mikrokontroler memiliki frekuensi clock yang tinggi.0 atau row1.1 ->PINC. row1 . saya buat scanning pada PORTC 4-6 artinya PORTC 4-6 adalah pin output.row4 yaitu PINC 0-3 adalah PIN yang berfungsi sebagai input dengan kondisi high. Untuk mengakses keypad ini tidak seperti push button biasa. unsigned char keypadoutput(void) { unsigned char padkey.0 ->PINC. row1 row2 row3 row4 col1 col2 col3 ->PINC.6 -> PINC.4 ->PINC. tapi kenapa pin yang tersedia hanya 7 atau 8 ???. countscankeypad++.5 berikut ini adalah program dengan bahasa C untuk mengakses keypad ini.4 akan terhubung ke PINC.} if(PINC.0==0&&PORTC. PORTC=~(1<<countscankeypad+3).4==0){padkey='1'. Adapun cara yang saya pakai untuk mengakses keypad ini adalah dengan metode scanning.} .3 ->PINC. Dengan menggunakan mikrokontroler hal ini sangat mudah dilakukan.2 ->PINC.

} Jangan lupa lakukan inisialisasi PINC yaitu //init keypad DDRC=0b01110000. PORTC=0b00001111.3==0&&PORTC.} if(PINC.3==0&&PORTC.2==0&&PORTC.6==0){padkey='6'.6==0){padkey='3'.} if(PINC.} if(PINC.6==0){padkey='#'.} if(PINC.} if(PINC.0==0&&PORTC. Sekarang coba panggil fungsi keypadoutput ke main fungsi.5==0){padkey='8'.} if(PINC.3==0&&PORTC.5==0){padkey='0'.1==0&&PORTC.} if(PINC.} return padkey.} if(PINC.5==0){padkey='5'.} if(PINC.2==0&&PORTC.0==0&&PORTC.1==0&&PORTC.5==0){padkey='2'.4==0){padkey='7'.1==0&&PORTC.2==0&&PORTC. Selamat mencoba… .if(PINC.} if(PINC.6==0){padkey='9'.4==0){padkey='4'.4==0){padkey='*'.

Sign up to vote on this title
UsefulNot useful