PRAKTIKUM II KEYPAD AND LCD INTEGRATION FOR CONTROLING AND MONITORING PWM BASED ATMEGA128 I. TUJUAN 1. Mahasiswa mampu mengintegrasikan Keypad dan Mikrokontroller untuk mengatur nilai duty cycle PWM 2. Mahasiswa mampu menampilkan nilai Duty Cycle dan OCR pada LCD. 3. Mahasiswa mengerti hubungan antara Duty Cycle dan OCR. II. DASAR TEORI ATMEGA128 Merupakan salah satu varian dari mikrokontroler AVR 8-bit. Beberapa fitur yang dimiliki adalah memiliki beberapa memory yang bersifat non-volatile, yaitu 128 Kbytes of In-System Self-Programmable Flash program memory (128 Kbytes memory flash untuk pemrograman), 4 Kbytes memori EEPROM, 4 Kbytes memori internal SRAM, write/erase cycles : 10.000 flash/ 100.000 EEPROM (program dalam mikrokontroler dapat diisi dan dihapus berulang kali sampai 10.000 kali untuk flash memori atau 100.000 kali untuk penyimpanan program/data di EEPROM). Selain memori, fitur yang dimiliki oleh mikrokontroler atmega128 ini adalah pada perangkat peripheral interface-nya, yaitu memiliki 2 buah 8-bit timer / counter, 2 buah expand 16-bit timer / counter, RTC (Real Time Counter) dengan oscillator yang terpisah, 2 buah 8-bit chanel PWM, 6 PWM chanel dengan resolusi pemrograman dari 2 sampai 16 bits, output compare modulator, 8-chanel 10-bit ADC, 2 buah TWI (Two Wire Interface), 2 buah serial USARTs, master / slave SPI serial interface, Programmable Watchdog Timer dengan On-chip Oscillator, On-chip analog comparator, dan memiliki 53 programmable I/O. Sedangkan untuk pengoperasiannya sendiri, Miktrokontroler ATmega128 dapat dioperasikan pada catuan 4.5 – 5.5 V untuk ATmega128 dengan clock speed 0 – 16 MHz. Gambar 1. Pinout ATMEGA128
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
PRAKTIKUM II
KEYPAD AND LCD INTEGRATION FOR CONTROLING AND
MONITORING PWM BASED ATMEGA128
I. TUJUAN
1. Mahasiswa mampu mengintegrasikan Keypad dan Mikrokontroller untuk mengatur
nilai duty cycle PWM
2. Mahasiswa mampu menampilkan nilai Duty Cycle dan OCR pada LCD.
3. Mahasiswa mengerti hubungan antara Duty Cycle dan OCR.
II. DASAR TEORI
ATMEGA128
Merupakan salah satu varian dari mikrokontroler AVR 8-bit. Beberapa fitur
yang dimiliki adalah memiliki beberapa memory yang bersifat non-volatile, yaitu 128
Kbytes of In-System Self-Programmable Flash program memory (128 Kbytes memory
Extended Timer/Counter 1, Interrupt Flag Register - ETIFR
Mode Operasi Timer ATMEGA 128
Ada 3 mode operasi yang digunakan untuk menjalankan Timer/Counter dan pin ouput
compare dengan mengkombinasikan WGM (wave generation mode) dan COM compare
output mode bit. COM tidak mempengaruhi urutan counting selama WGM bit bekerja.
Ketiga mode tersebut adalah :
1. Normal Mode Modus yang paling sederhana dari operasi adalah mode normal (WGM01: 0 =
0). Dalam mode ini penghitungan arah selalu up (incrementing), dan tidak ada
counter yang jelas dilakukan. Counter hanya overruns ketika melewati
maksimum nilai 8-bit (TOP = 0xFF) dan kemudian restart dari bawah (0x00).
Dalam operasi normal Timer / counter meluap bendera (TOV0) akan ditetapkan
dalam yang sama Timer jam siklus sebagai TCNT0 menjadi nol. Bendera TOV0
dalam hal ini berperilaku seperti kesembilan sebuah bit, kecuali bahwa itu hanya
diatur, tidak dibersihkan. Namun, dikombinasikan dengan overflow timer
interrupt yang secara otomatis membersihkan bendera TOV0, resolusi waktu
dapat ditingkatkan dengan software. di sana ada kasus khusus yang perlu
diperhatikan dalam mode normal, nilai baru counter dapat ditulis kapan saja.
Output membandingkan Unit dapat digunakan untuk menghasilkan interupsi di
beberapa waktu tertentu. Menggunakan output dibandingkan dengan
menghasilkan bentuk gelombang dalam mode normal tidak dianjurkan, karena
ini akan menempati terlalu banyak waktu CPU.
2. Clear Timer on Compare Match (CTC) Mode Di Clear Timer on Compare atau mode CTC (WGM01: 0 = 2), OCR0 Register
digunakan untuk memanipulasi resolusi counter. Dalam mode CTC counter
dibersihkan ke nol ketika nilai counter (TCNT0) sesuai dengan OCR0. The OCR0
mendefinisikan nilai atas untuk counter, maka juga yang resolusi. Mode ini
memungkinkan kontrol yang lebih besar dari frekuensi output pertandingan
membandingkan. Hal ini juga menyederhanakan pengoperasian menghitung
peristiwa eksternal. Diagram waktu untuk mode CTC ditunjukkan pada Gambar
2. Nilai counter (TCNT0) meningkatkan sampai membandingkan pertandingan
terjadi antara TCNT0 dan OCR0, dan kemudian counter (TCNT0) dibersihkan.
Untuk menghasilkan output gelombang dalam mode CTC, output OC0 dapat diatur
menjadi logika toogle level pada setiap perbandingan dengan menetapkan mode bit
output compare dengan mode toogle (COM01: 0 = 1). Nilai OC0 tidak akan terlihat
pada port pin kecuali arah data untuk pin diatur ke output.
Dengan nilai variable N dapat direpresentasikan sebagai factor prescale
(1,8,32,64,128,256, atau 1024)
3. Fast PWM Mode Dalam mode fast PWM , counter bertambah sampai nilai counter sesuai dengan
nilai MAX. Counter kemudian dibersihkan di mengikuti siklus clock waktu.
Diagram waktu untuk cepat Modus PWM ditunjukkan pada nilai Gambar 3.
TCNT0 dalam diagram waktu ditampilkan sebagai histogram untuk
menggambarkan operasi single-slope. Diagram termasuk non-inverted dan
inverted Output PWM. tanda kecil garis horizontal di slope TCNT0 mewakili
membandingkan antara OCR0 dan TCNT0.
Frekuensi PWM untuk output dapat dihitung dengan mengikuti persamaan
berikut :
Dengan variabel N mewakili factor prescale (1, 8, 32, 64, 128, 256 atau 1024)
PULSE WIDTH MODULATION (PWM) Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi lebar sinyal yang dinyatakan dengan pulsa dalam suatu perioda, untuk mendapatkan tegangan rata-rata yang berbeda. Beberapa contoh aplikasi PWM adalah temodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang masuk ke beban, regulator tegangan, audio effect dan penguatan, serta aplikasi- aplikasi lainnya. Aplikasi PWM berbasis mikrokontroler biasanya berupa pengendalian kecepatan motor DC, pengendalian motor servo, pengaturan nyala terang LED dan lain sebagainya.
Sinyal PWM pada umumnya memiliki amplitudo dan frekuensi dasar yang tetap, namun
memiliki lebar pulsa yang bervariasi. Lebar Pulsa PWM berbanding lurus dengan
amplitudo sinyal asli yang belum termodulasi. Artinya, Sinyal PWM memiliki frekuensi
gelombang yang tetap namun duty cycle bervariasi (antara 0% hingga 100%).
Pulse Width Modulation (PWM) merupakan salah satu teknik untuk mendapatkan signal analog dari sebuah piranti digital. Sebenarnya Sinyal PWM dapat dibangkitkan dengan banyak cara, dapat menggunakan metode analog dengan menggunakan rankaian op-amp atau dengan menggunakan metode digital. Dengan metode analog setiap perubahan
PWM-nya sangat halus, sedangkan menggunakan metode digital setiap perubahan PWM dipengaruhi oleh resolusi dari PWM itu sendiri. Resolusi adalah jumlah variasi perubahan nilai dalam PWM tersebut. Misalkan suatu PWM memiliki resolusi 8 bit berarti PWM ini memiliki variasi perubahan nilai sebanyak 28 = 256 variasi mulai dari 0 – 255 perubahan nilai yang mewakili duty cycle 0 – 100% dari keluaran PWM tersebut.
Dengan cara mengatur lebar pulsa “on” dan “off” dalam satu perioda gelombang melalui pemberian besar sinyal referensi output dari suatu PWM akan didapat duty cycle yang diinginkan. Duty cycle 100% berarti sinyal tegangan pengatur motor dilewatkan seluruhnya. Jika tegangan catu 100V, maka motor akan mendapat tegangan 100V. pada duty cycle 50%, tegangan pada motor hanya akan diberikan 50% dari total tegangan yang ada, begitu seterusnya.
Dengan menghitung duty cycle yang diberikan, akan didapat tegangan output yang dihasilkan. Sesuai dengan rumus yang telah dijelaskan pada gambar. Average voltage merupakan tegangan output pada motor yang dikontrol oleh sinyal PWM. a adalah nilai duty cycle saat kondisi sinyal “on”. b adalah nilai duty cycle saat kondisi sinyal “off”. Vfull adalah tegangan maksimum pada motor. Dengan menggunakan rumus diatas, maka akan didapatkan tegangan output sesuai dengan sinyal kontrol PWM yang dibangkitkan.
KEYPAD
Modul keypad biasanya berjenis keypad matrix. Jumlah tombol yang ada
merupakan jumlah perkalian antara baris dan kolom dari keypad tersebut. Dengan
menggunakan modul keypad ini dapat menghemat jumlah pin I/O yang digunakan.
Sebagai contoh modul keypad yang terdiri dari 4 kolom dan 4 baris yang totalnya ada
16 tombol (angka 0 sampai 9,tombol *, tombol #, tombol A sampai tombol D).
Jadi, keypad sebenarnya adalah sebuah rangkaian jalur baris dan kolom dan
disusun sedemikian rupa menyerupai matrik, yang tidak terhubung antar baris dan
kolomnya. Tombol tekan (push button) diletakkan pada posisi perpotongan baris dan
kolom tertentu sehingga tombol tersebut dapat menghubungkan jalur baris dan kolom
tertentu yang terpisah. Untuk dapat melakukan pemrograman keypad digunakan tehnik
scanning. Dalam perancangan interface yang dihubungkan dengan keypad,
menggunakan dua cara, yaitu:
- baris sebagai input dan kolom sebagai output
- kolom sebagai input dan baris sebagai output.
Skematik Keypad 4x4 dengan menggunakan tehnik kolom sebagai input dan
baris sebagai output. Pada gambar skematik tersebut Keypad terhubung dengan PORTC
pada Mikrokontroller. Port C yang digunakan sebagai interfacing antara keypad dan
mikrokontroler dibagi menjadi 2. Separuh menjadi input (PC.4 – PC.7, biasa disebut
PC upper) dan separuhnya lagi menjadi output (PC.0-PC.3, biasa disebut PC
lower).Angka pada tombol hanya sebagai panduan saja. Kita bisa mengganti tombol
dengan nilai lain yang kita butuhkan dengan mengubah program kita.
Gambar Konektor Keypad 4x4 pada Mikrokontroller
Pin No. Keypad Pin AVR Fungsi
1 Baris 4 PORTC.0 OUTPUT
2 Baris 3 PORTC.1 OUTPUT
3 Baris 2 PORTC.2 OUTPUT
4 Baris 1 PORTC.3 OUTPUT
5 Kolom 4 PORTC.4 INPUT
6 Kolom 3 PORTC.5 INPUT
7 Kolom 2 PORTC.6 INPUT
8 Kolom 1 PORTC.7 INPUT
Konfigurasi Keypad 4x4 dan penyambungannya pada AVR Minimum System
Algorithma
Jika baris 1 diberi logic 0 dan baris yang lain diberi logic 1,
maka: PORTC = 0xf7 = (1111 0111)
- Jika ditekan tombol 1, (baris 1 kolom 1) maka PINC = 0x77 = (0111 0111)
- Jika ditekan tombol 2, (baris 1 kolom 2) maka PINC = 0xb7 = (1011 0111)
- Jika ditekan tombol 3, (baris 1 kolom 3) maka PINC = 0xd7 = (1101 0111)
- Jika ditekan tombol A, (baris 1 kolom 4) maka PINC = 0xe7 = (1110 0111)
Jika baris 2 diberi logic 0 dan baris yang lain diberi logic 1,
maka: PORTC = 0xfb = (1111 1011)
- Jika ditekan tombol 4, (baris 2 kolom 1) maka PINC = 0x7b = (0111 1011)
- Jika ditekan tombol 5, (baris 2 kolom 2) maka PINC = 0xbb = (1011 1011)
- Jika ditekan tombol 6, (baris 2 kolom 3) maka PINC = 0xdb = (1101 1011)
- Jika ditekan tombol B, (baris 2 kolom 4) maka PINC = 0xeb = (1110 1011)
Jika baris 3 diberi logic 0 dan baris yang lain diberi logic 1,
maka: PORTC = 0xfd = (1111 1101)
- Jika ditekan tombol 7, (baris 3 kolom 1) maka PINC = 0x7d = (0111 1101)
- Jika ditekan tombol 8, (baris 3 kolom 2) maka PINC = 0xbd = (1011 1101)
- Jika ditekan tombol 9, (baris 3 kolom 3) maka PINC = 0xdd = (1101 1101)
- Jika ditekan tombol C, (baris 3 kolom 4) maka PINC = 0xed = (1110 1101)
Jika baris 4 diberi logic 0 dan baris yang lain diberi logic 1,
maka: PORTC = 0xfe = (1111 1110)
- Jika ditekan tombol *, (baris 4 kolom 1) maka PINC = 0x7e = (0111 1110)
- Jika ditekan tombol 0, (baris 4 kolom 2) maka PINC = 0xbe = (1011 1110)
- Jika ditekan tombol #, (baris 4 kolom 3) maka PINC = 0xde = (1101 1110)
- Jika ditekan tombol D, (baris 4 kolom 4) maka PINC = 0xee = (1110 1110)
LCD KARAKTER
Display LCD sebuah liquid crystal atau perangkat elektronik yang dapat digunakan
untuk menampilkan angka atau teks. Ada dua jenis utama layar LCD yang dapat
menampilkan numerik (digunakan dalam jam tangan, kalkulator dll) dan menampilkan teks
alfanumerik (sering digunakan pada mesin foto kopi dan telepon genggam). Dalam
menampilkan numerik ini kristal yang dibentuk menjadi bar, dan dalam menampilkan
alfanumerik kristal hanya diatur kedalam pola titik. Setiap kristal memiliki sambungan
listrik individu sehingga dapat dikontrol secara independen. Ketika kristal off' (yakni tidak
ada arus yang melalui kristal) cahaya kristal terlihat sama dengan bahan latar belakangnya,
sehingga kristal tidak dapat terlihat. Namun ketika arus listrik melewati kristal, itu akan
merubah bentuk dan menyerap lebih banyak cahaya. Hal ini membuat kristal terlihat lebih
gelap dari penglihatan mata manusia sehingga bentuk titik atau bar dapat dilihat dari
perbedaan latar belakang. Sangat penting untuk menyadari perbedaan antara layar LCD
dan layar LED. Sebuah LED display (sering digunakan dalam radio jam) terdiri dari
sejumlah LED yang benar-benar mengeluarkan cahaya (dan dapat dilihat dalam gelap).
Sebuah layar LCD hanya mencerminkan cahaya, sehingga tidak dapat dilihat dalam gelap.
LMB162A adalah modul LCD matrix dengan konfigurasi 16 karakter dan 2 baris
dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5 kolom pixel (1 baris terakhir
adalah kursor). Memori LCD terdiri dari 9.920 bir CGROM, 64 byte CGRAM dan 80x8
bit DDRAM yang diatur pengalamatannya oleh Address Counter dan akses datanya
(pembacaan maupun penulisan datanya) dilakukan melalui register data.Pada LMB162A
terdapat register data dan register perintah. Proses akses data ke atau dari register data akan
mengakses ke CGRAM, DDRAM atau CGROM bergantung pada kondisi Address
Counter, sedangkan proses akses data ke atau dari Register perintah akan mengakses
Instruction Decoder (dekoder instruksi) yang akan menentukan perintah–perintah yang
akan dilakukan oleh LCD.
Klasifikasi LED Display 16x2 Character
a. 16 karakter x 2 baris
b. 5x7 titik Matrix karakter + kursor
c. HD44780 Equivalent LCD kontroller/driver Built-In