Dalam tutorial ini kita akan menghubungkan keypad 4x4 (16 tombol) dengan mikrokontroler ATMEGA32A. Kita tahu bahwa keypad adalah salah satu perangkat input terpenting yang digunakan dalam proyek elektronik. Keypad adalah salah satu cara termudah untuk memberikan perintah atau instruksi ke sistem elektronik.
Komponen Diperlukan
Perangkat keras: ATMEGA32, power supply (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), kapasitor 100uF, kapasitor 100nF, resistor 10KΩ (8 buah).
Perangkat lunak: Atmel studio 6.1 atau Atmel studio 6.2, progisp atau flash magic.
Diagram Sirkuit dan Penjelasan Kerja
Pada rangkaian PORTB ATMEGA32 terhubung ke port data LCD. Di sini orang harus ingat untuk menonaktifkan komunikasi JTAG di PORTC atau ATMEGA dengan mengubah byte sekering, jika seseorang ingin menggunakan PORTC sebagai port komunikasi normal. Pada LCD 16x2 terdapat 16 pin semuanya jika ada lampu belakang, jika tidak ada lampu belakang akan ada 14 pin. Satu dapat memberi daya atau meninggalkan pin lampu belakang. Sekarang di 14 pin ada 8 data pin (7-14 atau D0-D7), 2 pin power supply (1 & 2 atau VSS & Vdd atau gnd & + 5V), 3 rd pin untuk kontrol kontras (VEE-kontrol seberapa tebal karakter harus ditampilkan), dan 3 pin kontrol (RS & RW & E).
Di sirkuit, Anda dapat mengamati bahwa saya hanya mengambil dua pin kontrol, ini memberikan fleksibilitas, bit kontras dan READ / WRITE tidak sering digunakan sehingga dapat disingkat ke ground. Ini menempatkan LCD dalam kontras tertinggi dan mode baca. Kita hanya perlu mengontrol pin ENABLE dan RS untuk mengirim karakter dan data yang sesuai.
Koneksi yang dilakukan untuk LCD diberikan di bawah ini:
PIN1 atau VSS ke ground
PIN2 atau VDD atau VCC ke daya + 5v
PIN3 atau VEE ke ground (memberikan kontras maksimum yang terbaik untuk pemula)
PIN4 atau RS (Daftar Pilihan) ke PD6 dari UC
PIN5 atau RW (Baca / Tulis) ke ground (menempatkan LCD dalam mode baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Enable) ke PD5 dari UC
PIN7 atau D0 ke PB0 dari UC
PIN8 atau D1 ke PB1 dari UC
PIN9 atau D2 ke PB2 dari UC
PIN10 atau D3 ke PB3 dari UC
PIN11 atau D4 ke PB4 dari UC
PIN12 atau D5 ke PB5 dari UC
PIN13 atau D6 ke PB6 dari UC
PIN14 atau D7to PB7 dari UC
Pada rangkaian terlihat bahwa kita telah menggunakan komunikasi 8bit (D0-D7) namun hal ini tidak wajib, kita dapat menggunakan komunikasi 4bit (D4-D7) tetapi dengan program komunikasi 4 bit menjadi agak rumit. Jadi dari pengamatan tabel di atas kita menghubungkan 10 pin LCD ke controller dimana 8 pin adalah pin data dan 2 pin untuk kontrol.
Sekarang mari kita bicara tentang keypad, keypad tidak lain adalah tombol multiplexing. Tombol dihubungkan dalam bentuk multipleks untuk mengurangi penggunaan pin dari sistem kontrol.
Misalnya kita memiliki keypad 4x4, di keypad ini kita memiliki 16 tombol, dalam kasus normal kita membutuhkan 16 pin pengontrol untuk menghubungkan 16 tombol, tetapi ini tidak baik dalam sudut pandang sistem kontrol. Penggunaan pin ini dapat dikurangi dengan menghubungkan tombol dalam bentuk multipleks.
Sebagai contoh anggap kita memiliki 16 tombol dan kita ingin memasangkannya ke pengontrol untuk membentuk keypad, tombol-tombol ini disusun seperti pada gambar:
Tombol-tombol ini dihubungkan dengan kolom umum seperti yang ditunjukkan pada gambar:
Seperti yang ditunjukkan pada gambar, ujung yang tidak ditandai dari setiap empat tombol diseret ke gether untuk membentuk kolom, dan untuk 16 kunci kita memiliki empat kolom.
Jika kita lupa koneksi kolom di atas, dan menghubungkan ujung bertanda umum dari setiap empat tombol menjadi satu untuk membentuk baris:
Seperti yang ditunjukkan pada gambar, untuk 16 kunci kami akan memiliki empat baris seperti yang ditunjukkan pada gambar.
Sekarang ketika mereka berdua terlihat bersama, kita mendapatkan sesuatu seperti rangkaian di bawah ini:
Di sini kami telah menghubungkan 16 kunci dalam bentuk multipleks untuk mengurangi penggunaan pin pengontrol. Jika dibandingkan dengan kasus pertama dari 16 kunci yang terhubung, kami memerlukan 16 pin pada pengontrol tetapi sekarang setelah multiplexing, kami hanya membutuhkan 8 pin pengontrol untuk menghubungkan 16 kunci.
Biasanya inilah yang disajikan di dalam keypad:
Seperti terlihat pada gambar di atas, terdapat 16 tombol pada keypad di atas dan masing-masing tombol tersebut merupakan tombol dalam konfigurasi tombol multipleks. Dan juga terdapat koneksi 8 pin seperti gambar di atas yang melambangkan koneksi multipleks.
Sekarang untuk bekerja:
Keypad disini memiliki empat kolom dan empat baris, untuk identifikasi tombol yang ditekan akan menggunakan metode referensi silang. Di sini pertama kita akan menghubungkan semua kolom atau semua baris ke vcc, jadi jika baris terhubung ke vcc umum, kita akan mengambil kolom sebagai input ke controller.
Sekarang jika tombol satu ditekan seperti yang ditunjukkan pada gambar:
Setelah itu arus mengalir melalui rangkaian seperti pada gambar di bawah ini:
Jadi kami memiliki C1 tinggi, untuk menekan tombol. Pada saat ini, kita akan menggeser daya dan port input yaitu, kita akan memberi daya pada kolom dan mengambil baris sebagai input, Dengan demikian maka akan terjadi aliran listrik seperti pada gambar di bawah ini:
Jadi untuk baris kita punya R1 tinggi.
Sekarang kita memiliki C1 tinggi di kasus pertama dan R1 tinggi di kasus kedua, jadi kami memiliki posisi matriks tombol maka nomor "satu".
Jika tombol kedua ditekan, kita akan memiliki C1 sebagai kolom tetapi logika tinggi yang kita dapatkan di kolom umum akan menjadi 'R2'. Jadi kita akan memiliki C1 dan R2, maka kita akan memiliki posisi matriks tombol kedua.
Ini adalah bagaimana kita akan menulis program, kita akan menghubungkan delapan pin keypad ke delapan pin pengontrol. Dan sebagai permulaan kami memberi daya empat pin pengontrol untuk memberi daya pada empat baris keypad, saat ini empat pin lainnya diambil sebagai input. Ketika tombol ditekan pin kolom yang sesuai ditarik ke atas dan pin pengontrol ditarik ke atas, ini akan dikenali untuk mengubah input menjadi daya dan daya menjadi input, jadi kita akan memiliki baris sebagai input.
Dengan ini kita mendapatkan tombol yang ditekan oleh pengguna. Alamat matriks ini diarahkan ke nomor yang sesuai, dan nomor ini ditampilkan pada LCD.
Cara kerja keypad interfacing dengan mikrokontroler avr dijelaskan selangkah demi selangkah dalam kode C yang diberikan di bawah ini. Anda juga dapat memeriksa: antarmuka keypad dengan mikrokontroler 8051.