Application note
Halaman 1
Application
Note
Touch Panel untuk Graphic LCD 128x64 AN-18
Oleh: Tim Digiware
ouch panel dewasa ini banyak digunakan pada alat-alat elektronika, misalnya: handphone, PDA, dan
lain-lain. Touch panel dapat digunakan untuk menggantikan fungsi keypad, keyboard, atau mouse
sebagai divais input. Selain itu penggunaan touch panel ini akan mempermudah penggunaan peralatan
elektronika tersebut. Aplikasi kali ini akan menggunakan touch panel graphic LCD 128x64 tipe resistive sebagai
input tambahan untuk suatu aplikasi komputer.
DT-AVR Low Cost Micro System digunakan untuk membaca posisi/koordinat penekanan pada touch
panel tersebut dan mengirimkan hasil pembacaannya ke komputer secara serial. Internal ADC pada DT-AVR
Low Cost Micro System akan digunakan untuk membaca perubahan resistansi yang terjadi pada touch panel.
Perubahan resistansi dari touch panel ini menunjukkan posisi penekanan, lalu posisi penekanan ini dikirimkan
ke komputer. Pada sisi komputer posisi penekanan tersebut diterima oleh sebuah aplikasi (yang juga
disertakan dalam AN ini) dan digambarkan sebagai sebuah titik dalam jendela aplikasi tersebut.
Aplikasi ini membutuhkan modul berikut:
-
1 DT-AVR Low Cost Micro System,
-
1 Touch Panel Graphic LCD 128x64,
-
1 Resistor 4K7 ohm (¼W - 5%).
A
dapun blok diagram sistem secara keseluruhan adalah sebagai berikut:
Gambar 1
Blok Diagram AN-18
H
ubungan antara modul-modul tersebut adalah sebagai berikut:
DT-AVR Low Cost
Micro System
Touch Panel Graphic
LCD 128x64
PB.0 Y1
PB.1 Y2
PB.2 X2
PB.4 X1
PA.0 X1
PA.1 Y2
Tabel 1
Hubungan DT-AVR Low Cost Micro System dengan Touch Panel Graphic LCD 128x64
DT-AVR Low Cost Micro
System
Touch Panel Graphic
LCD 128x64
Komputer
Application note
Halaman 2
Gambar 2
Hubungan DT-AVR Low Cost Micro System dengan Touch Panel Graphic LCD 128x64
Gambar 3
Model Mekanis dari Resistive Touch Panel
Gambar 4
Ilustrasi Penekanan pada Resistive Touch Panel
Penggunaan pin mikrokontroler pada Tabel 1 dan Gambar 2 tidak mutlak dan dapat diganti dengan pin lain.
Bila konfigurasi hubungan modul ini diubah maka tentunya alokasi pin pada program mikrokontrolernya juga
harus diubah. Cara kerja rangkaian dapat dijelaskan sebagai berikut:
- PB.0 dan PB.1 pada DT-AVR Low Cost Micro System digunakan untuk memberikan tegangan pada
resistansi layer Y dalam touch panel.
- PB.2 dan PB.4 pada DT-AVR Low Cost Micro System digunakan untuk memberikan tegangan pada
resistansi layer X dalam touch panel.
- PB.3 pada DT-AVR Low Cost Micro System digunakan untuk memberikan pull-up pada pin X1 saat
tidak ada tekanan pada permukaan touch panel. Hal ini dilakukan untuk mendeteksi adanya sentuhan /
tekanan. Pada saat tidak ada penekanan, jika PB.3 diberi logic `1' maka pada PA.0 akan terbaca
tegangan sebesar ± 5 Volt.
- PA.0 dan PA.1 pada DT-AVR Low Cost Micro System berfungsi sebagai input ADC dan digunakan
untuk membaca tegangan pada resistansi X dan Y secara bergantian.
Y1
X1
X2
Y2
Tekanan ke
touch panel
Y-plane resistive film
X-plane resistive film
Protective hard backing
Protective hard coating
Application note
Halaman 3
DT-AVR Low Cost Micro System yang digunakan dalam aplikasi ini menggunakan mikrokontoler ATmega8535
yang memiliki 8 kanal 8-bit internal ADC. Aturlah jumper J6, J7, dan J8 DT-AVR Low Cost Micro System pada
posisi 1-2 agar tegangan referensi internal ADC ATmega8535 mengambil dari AVCC. Selain itu aturlah juga
jumper J4 dan J5 DT-AVR Low Cost Micro System posisi 1-2 agar komunikasi serial UART RS-232 dapat
digunakan. Gunakan kabel serial DT-AVR Low Cost Micro System untuk menghubungkan modul dengan
komputer. Setelah semua rangkaian dan sumber tegangan terhubung dengan tepat, programlah Coba.HEX ke
DT-AVR Low Cost Micro System dengan menggunakan DT-HiQ AVR In System Programmer atau
ATAVRISP2 atau divais ISP programmer lainnya yang memiliki konektor 10 pin yang sesuai dengan standar
Atmel.
F
lowchart dari program Coba.c adalah sebagai berikut:
Gambar 5
Flowchart Program Utama Coba.c
Deklarasi variabel
Konfigurasi port I/O
Beri catu pada layer Y (PB.0=0 & PB.1=1)
PB.3 diberi logika high
PB.3 0 & PB.3 = input
PosY input 0 ADC (PA.0)
Kirim koordinat X (PosX) ke komputer
DataADC <
F0h & PB.3 =
1?
Y
T
Start
DataADC input 0 ADC (PA.0)
Inisialisasi UART & ADC
Tunggu 100 mili detik
Matikan catu layer Y
(PB.0 & PB.1 0, PB.0 & PB.1 = input)
Beri catu pada layer X
(PB.2 & PB.4 = output, PB.2 0 & PB.4 1)
PosX input 1 ADC (PA.1)
Tunggu 100 mili detik
Kirim koordinat Y (PosY) ke komputer
Tunggu 100 mili detik
PB.0, PB.1, PB.3 = output; PB.2 & PB.4 = input
Beri catu pada layer Y (PB.0=0 & PB.1=1)
PB.3 diberi logika high
Tunggu 500 mili detik
Application note
Halaman 4
P
rogram utama Coba.c akan diproses sebagai berikut:
1. Program melakukan deklarasi variabel yang diperlukan yaitu: PosX, PosY, dan DataADC. PosX
digunakan untuk menyimpan hasil pembacaan koordinat X. PosY digunakan untuk menyimpan hasil
pembacaan koordinat Y. DataADC digunakan untuk menyimpan hasil pembacaan ADC pada saat
program melakukan poling keadaan resistansi layer Y dari touch panel.
2. Lalu program melakukan konfigurasi terhadap port I/O ATMEGA8535, yaitu mengatur PB.0, PB.1, dan
PB.3 sebagai output sedangkan bit lainnya dalam port B sebagai input. Kemudian program membuat
PB.0 = 0 dan PB.1 = 1 sehingga layer Y mendapatkan tegangan catu 5 VDC.
3. Program melakukan konfigurasi port UART sehingga dapat berkomunikasi dengan komputer secara
serial (baudrate 9600 bps, 8 bit data, 1 bit stop, tanpa bit parity). Lalu program juga melakukan
inisialisasi internal ADC ATMEGA8535 agar dapat berfungsi sebagai ADC 8-bit.
4. Program akan menunggu adanya tekanan pada permukaan touch panel. Dalam proses ini, program
melakukan pembacaan input ADC setiap 500 mili detik (secara poling). Program akan terus melakukan
poling hingga nilai pembacaan ADC lebih kecil dari F0h (4,6875 Volt) yang menandakan adanya
penekanan dan setelah itu program akan mulai membaca koordinat penekanan.
5. Setelah terdeteksi adanya penekanan pada touch panel, maka program akan membuat PB.3 = 0 dan
mengkonfigurasi PB.3 sebagai input. Lalu program membaca input 0 ADC (PA.0) dan disimpan ke
dalam variabel PosY, nilai yang diperoleh ini merupakan koordinat Y dari penekanan tersebut.
6. Program menunggu selama 100 mili detik.
7. Program mematikan tegangan catu untuk layer Y dengan memberi PB.0 & PB.1 logika 0 serta
mengkonfigurasi PB.0 & PB.1 sebagai input. Lalu program memberi tegangan catu pada layer X
dengan mengkonfigurasi PB.2 & PB.4 sebagai output serta memberi PB.2 logika 0 dan PB.4 logika 1.
Setelah itu program membaca input 1 ADC (PA.1) dan disimpan ke dalam variabel PosX, nilai yang
diperoleh ini merupakan koordinat X dari penekanan tersebut.
8. Program mengirimkan nilai koordinat X (dari variabel PosX) ke komputer, menunggu selama 100 mili
detik, kemudian mengirimkan nilai koordinat Y (dari variabel PosY) ke komputer dan menunggu lagi
selama 100 mili detik.
9. Setelah itu program mematikan tegangan catu untuk layer X dan mengaktifkan tegangan catu untuk
layer Y. Untuk itu program mengkonfigurasi PB.0, PB.1, dan PB.3 sebagai output sedangkan bit lainnya
dalam port B sebagai input serta memberi PB.0 logika 0 dan PB.1 & PB.3 logika 1.
10. Kemudian program menunggu selama 500 mili detik dan kembali ke langkah 4.
Data yang dikirimkan oleh DT-AVR Low Cost Micro System dapat dilihat dengan bantuan program
Ending.EXE yang dapat menampilkan nilai koordinat X dan Y, serta gambaran posisi penekanan.
Pengaturan komunikasi serial adalah baud rate 9600 bps, 8 bit data, tanpa bit parity, 1 bit stop, dan tanpa
flow control.
Gambar 6
Tampilan Program Ending.EXE
Keadaan COM port
yang digunakan
Tombol untuk
membuka atau
menutup COM port
Tombol untuk
mengatur setting
COM port
Hasil pembacaan
koordinat X
Tombol untuk
menghapus layar
Layar tempat
menampilkan posisi
tekanan
Hasil pembacaan
koordinat Y
Application note
Halaman 5
L
isting program Coba.c dan program Ending.EXE terdapat pada AN-18.ZIP.
0 komentar:
Post a Comment