BAB II
DASAR TEORI
Dalam bab ini membahas mengenai teori penunjang dan teori dasar dari peralatan - peralatan yang digunakan dalam pembutan keran pencuci tangan otomatis menggunakan mikrokontroler atmega8535.`
2.1 Mikrokontroler ATMEGA 8535
Mikrokontroler AVR ATMega8535 merupakan mikrokontroler produksi Atmel dengan 8 KByte In-System Programmable-Flash, 512 Byte EEPROM dan 512 Bytes Internal SRAM. AVR ATMega8535 memiliki seluruh fitur yang dimiliki AT90S8535. Selain itu, konfigurasi pin AVR ATMega8535 juga kompatibel dengan AT90S8535. Mikrokontroler ATmega8535 dapat dipasang pada frekuensi kerja hingga 16 MHz (maksimal 8MHz untuk versi ATmega8535L). Sumber frekuensi bisa dari luar berupa osilator kristal, atau menggunakan osilator internal.
Keluarga AVR dapat mengeksekusi instruksi dengan cepat karena menggunakan teknik “memegang sambil mengerjakan” (fetch during execution). Dalam satu siklus clock, terdapat dua register independen yang dapat diakses oleh satu instruksi.
Kapabilitas detail dari ATMega8535 adalah sebagai berikut :
a. Saluran I/O sebanyak 32 buah yaitu Port A, Port B, Port C, dan Port D. b. ADC 10 bit sebanyak 8 saluran.
c. Tiga unit Timer/Counter dengan kemampuan pembandingan. d. CPU yang terdiri atas 32 buah register.
e. Watchdog Timer dengan osilator internal. f. SRAM sebesar 512 byte.
g. Memori Flash sebesar 8 kbytes dengan kemampuan Read While Write. h. Unit interupsi internal dan eksternal.
i. Port antarmuka SPI.
j. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. k. Antarmuka komparator analog.
l. Port USART untuk komunikasi serial.
2. Konfigurasi Pin ATMega8535
Konfigurasi pin ATMega bisa dilihat pada Tabel 2.1 1. Fitur ATMega8535
Tabel 2.1 Konfigurasi Pin ATMega 8535
Nama Pin Fungsi
VCC Catu daya
GND Ground
Port A
(PA7..PA0)
Port I/O 8-bit dua arah dengan resistor pull-up internal.
Juga berfungsi sebagai masukan analog ke ADC (ADC0 s.d. ADC7)
Port B
(PB7..PB0)
Port I/O 8-bit dua arah dengan resistor pull-up internal.
Fungsi khusus masing-masing pin :
Port Pin Fungsi lain
PB0 T0 (Timer/Counter0 External Counter Input)
PB1 T1 (Timer/Counter1 External Counter Input)
PB2 AIN0 (Analog Comparator Positive Input)
PB3 AIN1 (Analog Comparator Negative Input)
PB4 SS (SPI Slave Select Input)
PB5 MOSI (SPI Bus Master Output/Slave Input)
PB7 SCK (SPI Bus Serial Clock)
Port C
(PC7..PC0)
Port I/O 8-bit dua arah dengan resistor pull-up internal.
Dua pin yaitu PC6 dan PC7 berfungsi sebagai oscillator luar untuk Timer/Counter2.
Port D
(PD7..PD0)
Port I/O 8-bit dua arah dengan resistor pull-up internal.
Fungsi khusus masing-masing pin :
Port Pin Fungsi lain
PD0 RXD (UART Input Line)
PD1 TXD (UART Output Line)
PD2 INT0 (External Interrupt 0 Input)
PD3 INT1 (External Interrupt 1 Input)
PD4 OC1B (Timer/Counter1 Output CompareB Match Output)
PD5 OC1A (Timer/Counter1 Output CompareA Match Output)
PD7 OC2 (Timer/Counter2 Output Compare Match Output)
RESET Masukan reset. Sebuah reset terjadi jika pin ini diberi logika rendah melebihi periode minimum yang diperlukan.
XTAL1 Masukan ke inverting oscillator amplifier dan masukan ke rangkaian clock internal.
XTAL2 Keluaran dari inverting oscillator amplifier.
AVCC Catu daya untuk port A dan ADC.
AREF Referensi masukan analog untuk ADC.
3. Arsitektur ATMega8535
Pada Gambar 2.1 menjelaskan arsitektur yang di miliki oleh mikrokontroler ATMega8535 sebagai berikut.
.
Diagram blok arsitektur ATmega8535 ditunjukkan oleh Gambar 2.1. Terdapat sebuah inti prosesor (processor core) yaitu Central Processing Unit, di mana terjadi proses pengumpanan instruksi (fetching) dan komputasi data. Seluruh register umum sebanyak 32 buah terhubung langsung dengan unit ALU (Arithmatic and Logic Unit). Tedapat empat buah port masing-masing delapan bit dapat difungsikan sebagai masukan maupun keluaran.
Media penyimpan program berupa Flash Memory, sedangkan penympan data berupa SRAM (Static Ramdom Access Memory) dan EEPROM (Electrical Erasable Programmable Read Only Memory). Untuk komunikasi data tersedia fasilitas SPI (Serial Peripheral Interface), USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter), serta TWI (Two-wire Serial Interface).
Di samping itu terdapat fitur tambahan, antara lain AC (Analog Comparator), 8 kanal 10-bit ADC (Analog to Digital Converter), 3 buah Timer/Counter, WDT (Watchdog Timer), manajemen penghematan daya (Sleep Mode), serta osilator internal 8 MHz. Seluruh fitur terhubung ke bus 8 bit. Unit interupsi menyediakan sumber interupsi hingga 21 macam. Sebuah stack pointer selebar 16 bit dapat digunakan untuk menyimpan data sementara saat interupsi.
2.2 Sensor Ping Parallax
Sensor Ping merupakan sensor jarak ultrasonik buatan parallax. Sensor ini bekerja pada frekuensi 40 KHz dan hanya memiliki 3 jalur pin, yaitu jalur
sinyal (SIG), jalur VCC 5V dan jalur ground. Sensor Ping mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonic (40 KHz) selama 200µs, kemudian mendeteksi pantulannya. (Budiharto, 2008)
Spesifikasi sensor Ping adalah sebagai berikut :
a. Kisaran pengukuran 3cm – 3m
a. Input trigger-positive TTL pulse, minimal 2µs, tipikal 5µs b. Echo hold off 750µs dari fall of trigger pulse
d. Waktu tunda untuk pengukuran selanjutnya 200µs e. Indikator LED untuk aktifitas sensor.
Gambar 2.2 Sensor ping parallax
2.3 Rangkaian LCD 16x2
LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang paling banyak digunakan saat ini ialah LCD M1632 refurbish karena harganya cukup murah. LCD M1632 merupakan modul LCD dengan tampilan 2x16 (2 baris x 16 kolom)
dengan konsumsi daya rendah.Modul tersebut dilengkapi dengan mikrokontroler yang didesain khusus untuk mengendalikan LCD.
Gambar 2.3 Modul LCD Karakter 2x16
LCD memiliki CGROM (Character Generator Read Only Memory), CGRAM (Character Generator Random Access Memory), dan DDRAM (Display DataRandom Access Memory). LCD yang umum, ada yang panjangnya hingga 40 karakter (2x40 dan 4x40), dimana kita menggunakan DDRAM untuk mengatur tempat penyimpanan karakter tersebut. CGRAM merupakan memori untuk menggambarkan pola sebuah karakter, dimana bentuk dari karakter dapat diubah-ubah sesuai dengan keinginan. Namun, memori akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang.
Tabel 2.2Susunan kaki LCD 2x16
NO Nama Pin Deskripsi Port
1 VCC + 5V VCC
2 GND 0 V GND
3 VEE Tegangan Kontras LCD
4 RS
Register Select, 0 = Input Instruksi, 1 = Input Data
PD7 5 R/W 1 = Read ; 0 = Write PD5 6 E Enable Clock PD6 7 D4 Data Bus 4 PC4 8 D5 Data Bus 5 PC5 9 D6 Data Bus 6 PC6 10 D7 Data Bus 7 PC7
Display karakter pada LCD diatur oleh pin EN, RS dan RW:Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu ( sesuai dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low “0” lagi.
Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap sebagai sebuah perintah atau instruksi khusus ( seperticlear screen, posisi kursor dll ). Ketika RS berlogika high “1”, data yang
dikirim adalah data text yangakan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS harus diset logika high “1”. Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logikalow ”0”.
12 Katode
Tegangan Negatif backlight
Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih oleh user ). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7. Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD karakter.
Function Set, Mengatur interface lebar data, jumlah dari baris dan
ukuran font karakter
Tabel 2.3
Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 DL N F X X
X :Don’t care
DL: Mengatur lebar data
DL=1, Lebar data interface 8 bit ( DB7 s/d DB0)
DL=0, Lebar data interface 4 bit ( DB7 s/d DB4)
Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali
Tabel 2.4 Mengatur increment/ decrement dan mode geser
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 I/D S
I/D: Increment/ decrement dari alamat DDRAM dengan 1 ketika kode karakterdituliskan ke DDRAM.
I/D = “0”, decrement
I/D= “1”, increment
S: Geser keseluruhan display kekanan dan kekiri
S=1, geser kekiri atau kekanan bergantung pada I/D
S=0, display tidak bergeser
Display On/ Off Cursor, Mengatur status display ON atau OFF, cursor ON/
OFF dan fungsi Cursor Blink
Tabel 2.5Mengatur status display ON atau OFF, kursor ON/ OFF dan fungsi Cursor Blink
0 0 0 0 0 0 1 D C B
D : Mengatur display
D = 1, Display is ON
D = 0, Display is OFF
Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkankembali secara langsung dengan mengatur D=1.
C : Menampilkan kursor
C = 1, kursor ditampilkan
C = 0, kursor tidak ditampilkan
B : Karakter ditunjukkan dengan kursor yang berkedip
B=1, kursor blink
Clear Display, Perintah untuk hapus layar
Tabel 2.6 Perintah Untuk Hapus Layar
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Geser Kursor dan Display, Geser posisi kursor atau display ke kanan atau kekiri tanpa menulis atau baca data display. Fungsi ini digunakan untuk koreksi atau pencarian display.
Tabel 2.7Geser Kursor dan Display
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 S/C R/L X X
Catatan : x = Dont care
Tabel 2.8 Geser Kursor
S/C R/L Note
0 0 Shift cursor position to the left
0 1 Shift cursor position to the right
1 0 Shift the entire display to the left
Modul LCD terdiri dari sejumlah memory yang digunakan untuk display.Semua teks yang kita tuliskan ke modul LCD adalah disimpandidalam memory ini, dan modul LCD secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu sendiri.
Gambar 2.4 Susunan alamat pada LCD.(sumber:modul pembelajaran atmega8535 learning media)
Pada peta memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris.Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar.Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h.Posisi karakter berikutnya adalah alamat 01h dan seterusnya.
Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h.Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom tertentu.Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor.Sebagai contoh, kita ingin menampilkan kata ”World”
pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata ”World” pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM
2.4 Relay
Relay adalah suatu peranti yang bekerja berdasarkan elektromagnetik untuk menggerakan sejumlah kontaktor (saklar) yang tersusun. Kontaktor akan tertutup (On) atau terbuka (Off) karena efek induksi magnet yang dihasilkan kumparan (induktor) ketika dialiri arus listrik. Berbeda dengan saklar dimana pergerakan kontaktor (On/Off) dilakukan manual tanpa perlu arus listrik.Relay yang digunakan dalam pembuatan tugas akhir ini menggunakan jenis elektromagnetik, yang bekerja dengan menginduksi koil guna menarik kontak pada kaki relay. Tampilan fisik relay dapat dilihat pada Gambar 24
Gambar 2.5Tampilan Fisik Relay
a. Normaly Close : Kondisi awal kontaktor tertutup (On) dan akan terbuka (Off) jika relay diaktifkan dengan cara memberi arus yang sesuai pada kumparan (coil) relay. Istilah lain kondisi ini adalah Normaly Close (NC).
b. Normaly Open : Kondisi awal kontaktor terbuka (Off) dan akan
tertutup jika relay diaktifkan dengan cara memberi arus yang sesuai pada kumparan (coil) relay. Istilah lain kondisi ini adalah Normaly Open (NO).
c. Change-Over (CO) atau Double-Throw (DT) : Relay jenis ini memiliki dua pasang terminal dengan dua kondisi yaitu Normaly Open (NO) dan Normaly Close (NC).
2.5 Rangkaian catu daya
Catu daya merupakan rangkaianelektronika yang dapat mengubah sumbertegangan AC (alternating current) menjaditegangan DC (diretional current), danberfungsi memberi supply arus dan teganganpada suatu rangkaian elektronika atauperalatan yang menggunakan listrik lainnya.Prinsip dasar untuk memperoleh tegangansearah DC dari tegangan jala-jala (AC).
Dari tegangan jala-jala, masukantegangan bolak-balik (AC) diturunkan sesuaidengan besar tegangan yang diinginkan.Tegangan dari jala-jala diturunkan olehtransformator, yang kemudian disearahkanoleh rangkaian penyearah. Hasilpenyearahaan diratakan oleh filter
AC 220V VI 3 VO 1 G N D 2 U1 7805 C1 2200u C2 1000u +5V 0V D1 1N4001 D2 1N4001 D3 1N4001 D4 1N4001 TR1 TRAN-2P2S 12VAC 0VAC SW1 SW-SPST
ataupenyaring dan akhirnya distabilkan olehrangkaian pengatur tegangan atau regulatoruntuk mendapatkan keluaran tegangan searah(DC) yang konstan.
Gambar 2.6 Rangkaian Catu Daya
2.6 Software Pemprograman dan Downloader
Codevision AVR
Codevision AVR merupakan software C-cross compiler, dimana program dapat ditulis dalam bahasa C, memiliki IDE (Intregated Development Environment) yang lengkap, penulisan program, compile, link dan download program ke chip AVR dapat dilakukan pada codevision.
CodeVisionAVR juga menyediakan sebuah tool yang dinamakan dengan Code Generator atau CodeWizardAVR.Secara praktis, tool ini sangat bermanfaatmembentuk sebuah kerangka program (template), dan juga memberi kemudahan bagiprogrammer dalam peng-inisialisasian
register-register yang terdapat padamikrocontroller AVR yang sedang diprogram. Dinamakan Code Generator, karenaakan membangkitkan kode-kode program otomatis setelah fase inisialisasi padajendela CodeWizardAVR selesai dilakukan.
CodeVisionAVR merupakan sebuah cross-compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR.CodeVisionAVR dapat dijalankan pada system operasi Windows 95, 98, Me, NT4, 2000, dan XP.
Gambar 2.7Tampilan Code Vision AVR
Sebelum dapat digunakan dalam berbagai aplikasi, pengembangan sebuah mikrokontroler harus melewati 3 tahapan, yaitu:
1. Pembuatan hardware untuk aplikasi.
2. Perancangan software aplikasi menggunakan bahasa pemrograman. 3. Pengisian software aplikasi yang sudah dibuat ke dalam
mikrokontroler.
Bahasa pemrograman yang digunakan umumnya dapat berupa bahasa pemrograman tingkat rendah (Assembly Language), menengah (bahasa C) maupun bahasa tingkat tinggi seperti Pascal dan BASIC.
Bahasa C luas digunakan untuk pemrograman berbagai jenis perangkat, termasuk mikrokontroler, khususnya seri AVR dari Atmel.Ada yang menyebutkan bahwa bahasa ini merupakan High Level Language sisanya menyebut sebagai MidleLevel Language.Dengan demikian seorang programmer dapat menuangkan (menuliskan) algoritmanya dengan mudah.