BAB II DASAR TEORI 2.1 Persistence of Vision Persistence of Vision adalah kemampuan mata untuk tetap melihat gambaran dari suatu objek untuk sepersekian detik setelah objek menghilang dari pandangan. Gambaran dari suatu objek tetap tertinggal di retina meskipun kita telah selesai melihatnya. Mata dan otak kita sebenarnya mempertahankan kesan visual untuk sekitar 1/30 detik. Prinsip dari persistence of vision digunakan dalam membuat gambar bergerak dan animasi. Film dibuat dari sejumlah gambar terpisah, ditayangkan pada layar dengan kecepatan 24 gambar per detik. Ketika kita menontoh sebuah film, setiap gambar masih tertinggal di retina untuk waktu yang cukup lama sehingga bergabung dengan gambar berikutnya, dan kita akan mendapatkan ilusi berupa gambar bergerak. Jika kita mengasumsikan bahwa kecepatan penampilan minimum agar mata kita dapat melihat efek persistence of vision adalah sebanyak 16 tampilan setiap detik, maka jika prinsip tersebut diterapkan pada propeller clock, kecepatan minimum motor yang digunakan agar dapat menghasilkan efek persistence of vision dimana satu tampilan dihasilkan setiap satu putaran adalah sebesar 16 x 60 = 960 rpm. 2.2 Mikrokontroler Mikrokontroler adalah suatu chip dengan kepadatan yang sangat tinggi, dimana semua bagian yang diperlukan untuk suatu kontroler sudah dikemas dalam
5
6
satu keping, biasanya terdiri dari CPU (Central Proccesssing Unit), RAM (Random Acess Memory), EEPROM/ EPROM/ PROM/ ROM, EEPROM/ EPROM/ PROM/ ROM, I/O, Timer dan lain sebagainya. Rata-rata mikrokontroler memiliki instruksi manipulasi bit, akses ke I/O secara langsung dan mudah, dan proses interupsi yang cepat dan efisien. Mikrokontroler sekarang ini sudah banyak dapat kita temui dalam berbagai peralatan elektronik, misalnya peralatan yang terdapat di rumah, seperti telepon digital, microwave oven, televisi, dan masih banyak lagi. Mikrokontroler juga dapat kita gunakan untuk berbagai aplikasi misalnya untuk pengendalian suatu alat, otomasi dalam industri dan lain – lain. Keuntungan menggunakan mikrokontroler adalah harganya murah, dapat diprogram berulang kali, dan dapat diprogram sesuai dengan keinginan kita. 2.2.1 Mikrokontroler AVR ATMega8 Mikrokontroler AVR adalah mikrokontroler RISC 8 bit berdasarkan aristektur Harvard, yang dibuat oleh Atmel pada tahun 1996. AVR memiliki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan AVR yaitu AVR memiliki kecepatan eksekusi program yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus clock, lebih cepat dibandingkan MCS51 yang membutuhkan 12 siklus clock untuk mengeksekusi 1 instruksi. Mikrokontroler ATMega8 memiliki fitur yang cukup lengkap. Selain itu, mikrokontroler ATMega8 juga beredar di pasaran sehingga lebih mudah didapatkan. Berikut ini adalah fitur-fitur dari ATMega8:
7
1. Performa tinggi dengan konsumsi daya yang rendah. 2. Arsitektur RISC yang meliputi: a. 130 kode instruksi yang hampir semuanya hanya membutuhkan satu clock untuk dieksekusi. b. 32 x 8 buah register kerja kegunaan umum c. Pengoperasian full statik. d. Kecepatan mengeksekusi sampai dengan 16 mega instruksi per detik pada kecepatan clock 16 MHz. e. Terdapat rangkaian pengali dua siklus di dalam chip. 3. Memori non-volatile dengan daya tahan yang tinggi. a. Memori flash sebesar 8 Kbyte. b. EEPROM 512 Byte. c. SRAM internal 1 Kbyte. d. Dapat dihapus-tulis sebanyak 10.000 kali untuk memori flash dan 100.000 kali untuk EEPROM. e. Dapat menyimpan data selama 20 tahun pada suhu 85˚C atau 100 tahun pada suhu 25˚C. f. Penguncian program untuk keamanan perangkat lunak. 4. Fitur-fitur periferal: a. 2 buah timer/counter 8 bit. b. 1 buah timer/counter 16 bit. c. Real Time Counter dengan osilator tersendiri. d. 3 buah kanal PWM.
8
e. 6 buah kanal ADC dengan akurasi 10 bit. f. TWI. g. USART. h. SPI. i. Watchdog timer yang dapat diprogram. j. Komparator analog. 5. Fitur-fitur khusus mikrokontroler: a. Power-on reset dan brown-out detection. b. Osilator RC internal yang terkalibrasi. c. Sumber interupsi eksternal dan internal. d. 5 buah modus sleep. 6. 23 jalur I/O yang dapat diprogram. 7. Tegangan pengoperasian yaitu antara 4,5 – 5,5 Volt. 8. Kecepatan antara 0 – 16 MHz. Adapun diagram blok dari mikrokontroler ATMega8 dapat dilihat pada Gambar 2.1.
9
Gambar 2.1 Diagram Blok Mikrokontroler AVR ATMega8
10
2.2.2 Konfigurasi Pena ATMega8 Konfigurasi Pena ATMega8 untuk kemasan PDIP (Plastic Dual In-line Package) 28 pena dapat dilihat pada Gambar 2.2.
Gambar 2.2 Konfigurasi Pena ATMega8 Adapun fungsi dari masing-masing pena ATMega8 adalah sebagai berikut: 1. VCC merupakan pena yang berfungsi sebagai masukan catu daya. 2. GND merupakan pena Ground 3. Port B (PB7..0) merupakan pena input/output dua arah dengan resistor pull-up internal
dan
pena
dengan
fungsi
khusus
seperti
XTAL1/XTAL2/TOSC1/TOSC2. 4. Port C (PC6..0) merupakan pena input/output dua arah dengan resistor pull-up internal. 5. Port D (PD7..0) merupakan pena input/output dua arah dengan resistor pull-up internal.
11
6. RESET merupakan pena yang digunakan untuk me-reset mikrokontroler. 7. AVCC merupakan pena masukan tegangan untuk ADC. 8. AREF merupakan pena masukan tegangan referensi ADC. 2.2.3 Arsitektur Mikrokontroler ATMega8 ATMega8 menggunakan arsitektur Harvard dengan memisahkan antara memori dan bus untuk program dan data untuk memaksimalkan kemampuan dan kecepatan. Instruksi dalam memori program dieksekusi dengan pipelining single level dimana ketika satu instruksi dieksekusi, instruksi berikutnya diambil dari memori program. Konsep ini mengakibatkan instruksi dieksekusi setiap siklus clock. CPU terdiri dari 32x8 bit general purpose register yang dapat diakses dengan cepat dalam satu siklus clock, yang mengakibatkan operasi Arithmetic Logic Unit (ALU) dapat dilakukan dalam satu siklus. Pada operasi ALU, dua operand berasal dari register, kemudian operasi dieksekusi dan hasilnya disimpan kembali pada register dalam satu siklus clock. Operasi aritmetik dan logika pada ALU akan mengubah bit-bit yang terdapat pada Status Register (SREG). Arsitektur Mikrokontroler ATMega8 dapat dilihat pada Gambar 2.3.
12
Gambar 2.3 Arsitektur Mikrokontroler ATMega8 2.2.4 Peta Memori ATMega8 ATMega8 memiliki dua memori utama, yaitu memori program dan memori data. Memori program terletak pada In-System Reprogrammable Flash Program Memory sedangkan memori data terbagi dua, yaitu memori data SRAM dan memori data EEPROM.
13
2.2.4.1 Memori Program ATMega8 memiliki 8Kbyte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega8 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash dibagi kedalam dua bagian, yaitu bagian program boot dan aplikasi seperti terlihat pada Gambar 2.4. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.
Gambar 2.4 Peta Memori Program ATMega8 2.2.4.2 Memori Data (SRAM) Memori data AVR ATMega8 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register
14
menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal. Peta dari memori data ATMega8 dapat dilihat pada Gambar 2.5.
Gambar 2.5 Peta Memori data ATMega8 2.2.4.3 Memori Data EEPROM ATMega8 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data terakhir yang ditulis
15
pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat non-volatile. Alamat EEPROM mulai dari $000 sampai $511 2.2.5 Serial Peripheral Interface (SPI) SPI pada ATMega8 digunakan untuk komunikasi serial dua arah antara pengirim dan penerima. Dalam SPI, pengirim dan penerima memiliki sumber penabuh yang sama. Hal ini membutuhkan jalur penabuh tambahan antara pengirim dan penerima tetapi memungkinkan tingkat transmisi data yang lebih tinggi. SPI dapat dilihat sebagai sebuah register geser 16-bit sinkron dengan setengah 8-bit berada di bagian pengirim dan setengah 8-bit lainnya berada di bagian penerima. Pengirim dianggap sebagai master karena memberikan sumber penabuh sinkronisasi antara pengirim dengan penerima sementara penerima ditunjuk sebagai slave. 2.2.6 Interupsi Eksekusi program yang normal adalah mengikuti urutan instruksi dari program. Namun ada kalanya eksekusi tersebut terputus untuk menanggapi interupsi yang memiliki prioritas lebih tinggi yang berasal dari dalam maupun dari luar mikrokontroler.
Ketika
interupsi
terjadi,
mikrokontroler
sementara
harus
menghentikan operasi normal dan melakukan tindakan-tindakan khusus yang disebut rutin layanan interupsi. Setelah interupsi selesai dilakukan maka mikrokontroler akan kembali mengeksekusi program normal yang terputus. ATMega8 dilengkapi dengan 19 buah sumber interupsi dimana tiga diantaranya merupakan sumber interupsi eksternal.
16
2.3 RTC (Real Time Clock) DS1307 RTC (Real Time Clock) DS1307 adalah IC yang dibuat oleh perusahaan Dallas Semiconductor. DS1307 merupakan suatu IC yang dapat digunakan untuk menyimpan informasi waktu yang meliputi detik, menit, jam, hari, tanggal, bulan, dan tahun. Pengaksesan data dilakukan dengan sistem serial sehingga hanya membutuhkan dua jalur untuk berkomunikasi yaitu jalur clock untuk membawa informasi data penabuh dan jalur data yang membawa data. Susunan kaki-kaki dari DS1307 dapat dilihat pada Gambar 2.6.
Gambar 2.6 Susunan Pena RTC DS1307 Fungsi dari masing-masing pena DS1307 adalah sebagai berikut: 1. X1 dan X2 adalah pena yang dihubungkan dengan Kristal 32,768 KHz. 2. VBAT adalah pena yang dihubungkan dengan tegangan baterai +3V. 3. GND adalah pena yang dihubungkan dengan ground. 4. SDA adalah pena yang difungsikan sebagai jalur data. 5. SCL adalah pena yang difungsikan sebagai jalur clock. 6. SQW/OUT adalah pena yang digunakan sebagai keluaran sinyal kotak. 7. VCC adalah pena yang dihubungkan dengan tegangan 5V.
17
Untuk berkomunikasi dengan mikrokontroler ATMega8, RTC DS1307 menggunakan jenis komunikasi I2C. 2.4 LED Infrared LED Infrared (LED inframerah) adalah suatu jenis dioda yang terbuat dari bahan Gallium (Ga), Arsen (As), dan fosfor (P) yang apabila diberi tegangan maju maka arus majunya akan membangkitkan cahaya pada pertemuan PN-nya. Tegangan maju antara anoda-katoda berkisar antara 1,5 V – 2 V, sedangkan arus majunya berkisar antara 5 mA – 20 mA. Cahaya yang dibangkitkan oleh LED Inframerah adalah infra merah yang tidak dapat dilihat oleh mata. Led inframerah memancarkan cahaya pada spektrum inframerah dengan panjang gelombang λ=940 nm. Spektrum cahaya inframerah ini mempunyai level panas yang paling tinggi diantara sinar-sinar yang lain walaupun tidak tampak oleh mata dan mempunyai efek fotolistrik yang terkuat . Energi yang dihasilkan oleh LED inframerah tidak seluruhnya diubah menjadi bentuk energi cahaya atau foton melainkan dalam bentuk panas sebagian. Simbol dari LED inframerah dapat dilihat pada Gambar 2.7.
Gambar 2.7 Simbol LED Inframerah
18
2.5 Dioda Foto Dioda foto adalah jenis dioda yang berfungsi mendeteksi cahaya. Berbeda dengan diode biasa, komponen elektronika ini akan mengubah cahaya menjadi arus listrik. Cahaya yang dapat dideteksi oleh diode foto ini mulai dari cahaya infra merah, cahaya tampak, ultra ungu sampai dengan sinar-X. Aplikasi diode foto mulai dari penghitung kendaraan di jalan umum secara otomatis, pengukur cahaya pada kamera serta beberapa peralatan di bidang medis. Simbol dari dioda foto dapat dilihat pada Gambar 2.8.
Gambar 2.8 Simbol Dioda Foto 2.6 Motor DC Motor listrik merupakan perangkat elektromagnetis yang mengubah energi listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk, misalnya memutar impeller pompa, fan atau blower, menggerakan kompresor, mengangkat bahan,dll. Motor listrik digunakan juga di rumah (mixer, bor listrik, fan angin) dan di industri. Motor listrik kadangkala disebut “kuda kerja” nya industri sebab diperkirakan bahwa motor-motor menggunakan sekitar 70% beban listrik total di industri. Motor DC memerlukan suplai tegangan yang searah pada kumparan medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor dc disebut stator
19
(bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran pada kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan (GGL) yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan tegangan bolak-balik. Prinsip kerja dari arus searah adalah membalik phasa tegangan dari gelombang yang mempunyai nilai positif dengan menggunakan komutator, dengan demikian arus yang berbalik arah dengan kumparan jangkar yang berputar dalam medan magnet. Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa berputar bebas di antara kutubkutub magnet permanen. Catu tegangan dc dari baterai menuju ke lilitan melalui sikat yang menyentuh komutator, dua segmen yang terhubung dengan dua ujung lilitan. Kumparan satu lilitan pada gambar di atas disebut angker dinamo. Angker dinamo adalah sebutan untuk komponen yang berputar di antara medan magnet. Secara sederhana, motor DC dapat digambarkan seperti pada Gambar 2.9.
Gambar 2.9 Motor D.C Sederhana
20
2.7 CodeVision AVR CodeVisionAVR pada dasarnya merupakan perangkat lunak pemrograman mikrokontroler keluarga AVR berbasis bahasa C. Ada tiga komponen penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan program generator. Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang digunakan hampir mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi standar berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk mikrokontroler ini memiliki sedikit perbedaan yang disesuaikan dengan arsitektur AVR tempat program C tersebut ditanamkan (embedded). Khusus untuk library fungsi, disamping library standar (seperti fungsi-fungsi matematik,
manipulasi
string,
pengaksesan
memori
dan
sebagainya),
CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang umum digunakan dalam aplikasi kontrol. Beberapa fungsi library yang penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu, SPI (Serial Peripheral Interface) dan lain sebagainya. Untuk memudahkan pengembangan program aplikasi, CodeVisionAVR juga dilengkapi IDE yang sangat user friendly. Selain menu-menu pilihan yang umum
21
dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan perangkat lunak downloader yang bersifat In System Programmer yang dapat digunakan untuk mentransfer kode mesin hasil kompilasi ke dalam sistem memori mikrokontroler AVR yang sedang diprogram. Selain itu, CodeVisionAVR juga menyediakan sebuah fitur yang dinamakan dengan Code Generator atau CodeWizardAVR. Secara praktis, fitur ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer dalam peng-inisialisasian register-register yang terdapat pada mikrokontroler AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis setelah fase inisialisasi pada jendela CodeWizardAVR selesai dilakukan. Secara teknis, penggunaan fitur ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman visual untuk komputer (seperti Visual C, Borland Delphi, dan sebagainya).