Gambar 2.4 menunjukkan mengenai peta dari data memori tersebut.
Gambar 2.4. Peta Data Memory [2]
c. EEPROM Data Memory
ATMega8535 memiliki EEPROM sebesar 512 byte untuk menyimpan data. Lokasinya terpisah dengan sistem address register, data register, dan control register yang
dibuat khusus untuk EEPROM.
Gambar 2.5. EEPROM Data Memory [2]
2.2.5. Status Register SREG
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi [4]. SREG merupakan bagian dari inti CPU
mikrokontroler. Dan pembagian bit yang terletak pada status memori terdapat pada gambar 2.6. Berikut ini bentuk dari status register dan penjelasannya :
Gambar 2. 6 Status Register ATMega 8535 [4] a. Bit 7
–
I : Global Interrupt Enable Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan. Bit
ini akan clear ketika ada interrupt yang dipicu dari hardware, setelah program interrupt dieksekusi, maka bit ini harus di set kembali dengan instruksi SEI.
b. Bit 6
–
T : Bit Copy Storage Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan
dalam operasi bit. c. Bit 5
–
H: Half Carry Flag d. Bit 4
–
S : Sign Bit
Bit S merupakan hasil exlusive or dari Negative Flag N dan Two’ s Complement
Overflow Flag V. e. Bit 3
– V : Two’ s Complement Overflow Flag
Digunakan dalam operasi aritmatika f.
Bit 2
–
N : Negative Flag Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.
g. Bit 1
–
Z : Zero Flag Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set.
h. Bit 0
–
C : Carry Flag Jika suatu operasi menghasilkan Carry, maka bit ini akan set.
2.3. LCD Liquid Cristal Display
Display elektronik adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik [5]. LCD Liquid Cristal Display
adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di
sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. LCD Liquid Cristal Display berfungsi sebagai penampil data baik dalam bentuk
karakter, huruf, angka ataupun grafik. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
a. Material LCD Liquid Cristal Display
LCD adalah lapisan dari campuran organik antara lapisan kaca bening dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment dan lapisan
elektroda pada kaca belakang. Ketika elektroda diaktifkan dengan medan listrik tegangan, molekul organik yang panjang dan silindris menyesuaikan diri dengan
elektroda dari segmen. Lapisan sandwich memiliki polarizer cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti dengan lapisan reflektor. Cahaya yang
dipantulkan tidak dapat melewati molekul-molekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat menjadi gelap dan membentuk karakter data yang ingin
ditampilkan. Gambar 2.7 merupakan contoh dari bentuk LCD tersebut.
Gambar 2.7. Contoh Bentuk LCD Liquid Cristal Display[5]
b. Pengendali Kontroler LCD Liquid Cristal Display
Dalam modul LCD Liquid Cristal Display terdapat microcontroller yang berfungsi sebagai pengendali tampilan karakter LCD Liquid Cristal Display.
Microcontroller pada suatu LCD Liquid Cristal Display dilengkapi dengan memori dan register.
Memori yang digunakan microcontroler internal LCD adalah : 1. DDRAM Display Data Random Access Memory merupakan memori tempat karakter
yang akan ditampilkan berada. 2. CGRAM Character Generator Random Access Memory merupakan memori untuk
menggambarkan pola sebuah karakter dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan.
3. CGROM Character Generator Read Only Memory merupakan memori untuk menggambarkan pola sebuah karakter dimana pola tersebut merupakan karakter dasar
yang sudah ditentukan secara permanen oleh pabrikan pembuat LCD Liquid Cristal Display tersebut sehingga pengguna tinggal mangambilnya sesuai alamat memorinya
dan tidak dapat merubah karakter dasar yang ada dalam CGROM. Register control yang terdapat dalam suatu LCD diantaranya adalah.
1. Register perintah yaitu register yang berisi perintah-perintah dari mikrokontroler ke panel LCD Liquid Cristal Display pada saat proses penulisan data atau tempat status
dari panel LCD Liquid Cristal Display dapat dibaca pada saat pembacaan data. 2. Register data yaitu register untuk menuliskan atau membaca data dari atau ke
DDRAM. Penulisan data pada register akan menempatkan data tersebut ke DDRAM sesuai dengan alamat yang telah diatur sebelumnya.
Pin, kaki atau jalur input dan kontrol dalam suatu LCD Liquid Cristal Display diantaranya adalah :
1. Pin data adalah jalur untuk memberikan data karakter yang ingin ditampilkan menggunakan LCD Liquid Cristal Display dapat dihubungkan dengan bus data dari
rangkaian lain seperti mikrokontroler dengan lebar data 8 bit. 2. Pin RS Register Select berfungsi sebagai indikator atau yang menentukan jenis data
yang masuk, apakah data atau perintah. Logika low menunjukan yang masuk adalah perintah, sedangkan logika high menunjukan data.
3. Pin RW Read Write berfungsi sebagai instruksi pada modul jika low tulis data, sedangkan high baca data.
4. Pin E Enable digunakan untuk memegang data baik masuk atau keluar. 5. Pin VLCD berfungsi mengatur kecerahan tampilan kontras dimana pin ini
dihubungkan dengan trimpot 5 K
Ω
, jika tidak digunakan dihubungkan ke ground, sedangkan tegangan catu daya ke LCD sebesar 5 Volt.
2.4. Keypad Matriks 4x4
Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan interaksi manusia [6]. Keypad berfungsi sebagai interface antara perangkat mesin
elektronik dengan manusia atau dikenal dengan istilah HMI Human Machine Interface. Matrix keypad 4×4 memiliki konstruksi atau susunan yang simple dan hemat dalam
penggunaan port mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan port mikrokontroler karena jumlah key tombol yang
dibutuhkan banyak pada suatu sistem dengan mikrokontroler. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Konstruksi matrix keypad 4×4 untuk mikrokontroler dapat dibuat seperti pada gambar berikut:
a. Konstruksi Matrix Keypad 4×4 Untuk Mikrokontroler
Gambar 2.8. Konstruksi matrix keypad 4x4 [6].
Konstruksi matrix keypad 4×4 diatas cukup sederhana, yaitu terdiri dari 4 baris dan 4 kolom dengan keypad berupas saklar push buton yang diletakan disetiap persilangan
kolom dan barisnya yang digambarkan lebih jelas pada gambar 2.8. Rangkaian matrix keypad diatas terdiri dari 16 saklar push buton dengan konfigurasi 4 baris dan 4 kolom. 8
line yang terdiri dari 4 baris dan 4 kolom tersebut dihubungkan dengan port mikrokontroler 8 bit. Sisi baris dari matrix keypad ditandai dengan nama Row1, Row2, Row3 dan Row4
kemudian sisi kolom ditandai dengan nama Col1, Col2, Col3 dan Col4. Sisi input atau output dari matrix keypad 4×4 ini tidak mengikat, dapat dikonfigurasikan kolom sebagi
input dan baris sebagai output atau sebaliknya tergantung programernya.
b. Proses Scaning Matrix Keypad 4×4 Untuk Mikrokontroler Proses scaning untuk membaca penekanan tombol pada
matrix keypad 4×4 untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4.
Program untuk scaning matrix keypad 4×4 dapat bermacam-macam, tapi pada intinya sama.
Misal kita asumsikan keyapad aktif LOW semua line kolom dan baris dipasang resistor pull-up dan dihubungkan ke port mikrokontroler dengan jalur kolom adalah jalur
input dan jalur baris adalah jalur output maka proses scaning matrix keypad 4×4 diatas dapat dituliskan sebagai berikut:
1. Mengirimkan logika Low untuk kolom 1 Col1 dan logika HIGH untuk kolom PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama Row1 akan LOW sehingga data baris yang dibaca adalah 0111, atau
tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca
1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111. 2. Mengirimkan logika Low untuk kolom 2 Col2 dan logika HIGH untuk kolom
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama Row1 akan LOW sehingga data baris yang dibaca adalah 0111, atau
tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca
1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111. 3. Mengirimkan logika Low untuk kolom 3 Col3 dan logika HIGH untuk kolom
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama Row1 akan LOW sehingga data baris yang dibaca adalah 0111, atau
tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca
1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111. 4. Mengirimkan logika Low untuk kolom 4 Col4 dan logika HIGH untuk kolom
yang lain kemudian membaca data baris, misal tombol SW1 ditekan maka data baris pertama Row1 akan LOW sehingga data baris yang dibaca adalah 0111, atau
tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan sehingga data yang terbaca
1101, atau tombol SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111. Kemudian data pembacaan baris ini diolah sebagai pembacaan data penekanan
tombol keypad. Sehingga tiap tombol pada matrix keypad 4×4 diatas dengan teknik PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
scaning tersebut akan menghasilkan data penekanan tiap-tiap tombol sebagai berikut: SW1 = 0111 0111
SW9 = 0111 1101 SW2 = 1011 0111
SW10 = 1011 1101 SW3 = 1101 0111
SW11 = 1101 1101 SW4 = 1110 0111
SW12 = 1110 1101 SW5 = 0111 1011
SW13 = 0111 1110 SW6 = 1011 1011
SW14 = 1011 1110 SW7 = 1101 1011
SW15 = 1101 1110 SW8 = 1110 1011
SW16 = 1110 1110 Data port mikrokontroler, misalkan pada SW2 = 1011 0111 tersebut terbagi dalam
nible atas dan nible bawah dimana data nible atas 1011 merupakan data yang kita kirimkan sedangkan data nible bawah 0111 adalah data hasil pembacaan penekanan
tombol keypad
SW2 pada
proses scaning
matrix keypad
4×4 diatas.
2.5. CodeVision AVR Eval
CodeVision AVR C Compiler CVAVR merupakan compiler bahasa C untuk AVR, compiler ini cukup memadai untuk belajar AVR, karena selain mudah penggunaannya, juga
didukung berbagai fitur yang sangat membantu dalam pembuatan software untuk keperluan pemrograman AVR[7].
CVAVR ini dapat berjalan di bawah system operasi Windows 9x, Me, NT 4, 2000, dan XP. CVAVR ini dapat mengimplementasikan hampir semua instruksi bahasa C yang
sesuai dengan arsitektur AVR, bahkan terdapat beberapa unggulan tambahan untuk memenuhi keunggulan spesifik dari AVR. Hasil kompilasi objek CVAVR bisa digunakan
sebagai source degub dengan AVR Studio debugger dari ATMEL. Selain pustaka standar bahasa C, CVAVR juga menyediakan pustaka tambahan
yang sangat membantu pemrograman AVR, yaitu: a. Alphanumeric LCD modules
b. Phillips I2C bus c. National Semiconductor LM75 Temperature Sensor
d. Phillips PCF8563, PCF8583, MaximDallas Semiconductor DS1302 and DS1307 Real Time Clock
e. MaximDallas Semiconductor 1 Wire Protocol f.
MaximDallas Semiconductor DS1820, DS18520, DS18B20, Temperature Sensors, PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
g. MaximDallas Semiconductor DS1621 ThermometerThermostat h. MaximDallas Semiconductor DS2430 and DS2433 EEPROMs
i. SPI
j. Power Management
k. Delays l.
Gray Code conversion CVAVR juga memiliki program generator yang memungkinkan kita membuat
program dengan cepat
2.6. Motor Servo
Motor servo adalah sebuah motor DC yang dilengkapi rangkaian kendali dengan sistem closed feedback yang terintegrasi dalam motor tersebut [8]. Pada motor servo posisi
putaran sumbu axis dari motor akan diinformasikan kembali ke rangkaian kontrol yang ada di dalam motor servo.
a. Contoh Motor Servo
Gambar 2.9 Contoh Motor Servo [8] Motor servo disusun dari sebuah motor DC, gearbox, variabel resistor VR atau
potensiometer dan rangkaian kontrol. Potensiometer berfungsi untuk menentukan batas maksimum putaran sumbu axis motor servo. Sedangkan sudut dari sumbu motor servo
diatur berdasarkan lebar pulsa yang pada pin kontrol motor servo. Contoh motor servo terdapat di gambar 2.9.
b. Konstruksi Motor Servo Motor
Gambar 2.10. Kontruksi Motor Servo [8]
Servo adalah motor yang mampu bekerja dua arah CW dan CCW dimana arah dan sudut pergerakan rotornya dapat dikendalikan dengan memberikan variasi lebar pulsa
duty cycle sinyal PWM pada bagian pin kontrolnya. Kontruksi mototr servo secara gamblang terdapat pada gambar 2.10.
c. Jenis Motor Servo
1. Motor Servo Standar 180°
Motor servo jenis ini hanya mampu bergerak dua arah CW dan CCW dengan defleksi masing-masing sudut mencapai 90° sehingga total defleksi sudut dari
kanan
–
tengah
–
kiri adalah 180°. 2.
Motor Servo Continuous Motor Servo jenis ini mampu bergerak dua arah CW dan CCW tanpa batasan defleksi
sudut putar dapat berputar secara kontinyu. Pulsa Kontrol Motor Servo Operasional motor servo dikendalikan oleh sebuah pulsa selebar ± 20 ms,
dimana lebar pulsa antara 0.5 ms dan 2 ms menyatakan akhir dari range sudut maksimum. Apabila motor servo diberikan pulsa dengan besar 1.5 ms mencapai
gerakan 90°, maka bila kita berikan pulsa kurang dari 1.5 ms maka posisi mendekati 0° dan bila kita berikan pulsa lebih dari 1.5 ms maka posisi
mendekati 180°. 3.
Pulsa Kendali Motor Servo Motor Servo akan bekerja secara baik jika pada bagian pin kontrolnya diberikan