POLITEKNIK CALTEX RIAU

Ukuran: px
Mulai penontonan dengan halaman:

Download "POLITEKNIK CALTEX RIAU"

Transkripsi

1 BAB 1 SOFTWARE COMPILER CODEVISION AVR 1.1 PENGENALAN CodeVisionAVR merupakan salah satu software gratis yang berfungsi sebagai text editor dalam menulis baris perintah sekaligus sebagai compiler yang dapat mengubah file sumber menjadi file hexa. Software CodeVisionAVR versi demo dapat di unduh dari atau dari CD yang terdapat pada buku ini. CodeVisionAVR menyediakan berbagai fasilitas yang memudahkan pengguna. Salah satunya adalah CodeWizardAVR yang memberikan kemudahan dalam melakukan konfigurasi fungsi-fungsi pin dan fitur yang yang ingin digunakan. Pengguna dapat membuat dan menjalankan program yang ditulis, kemudian mengujinya langkah demi langkah sehingga pengguna dapat mengamati perubahan data pada setiap register dan port I/O. Selain itu juga CodeVisionAVR menyediakan toolbar yang memudahkan pengguna untuk melakukan berbagai interaksi yang diinginkan dan juga memiliki arena kerja yang cukup leluasa. 1.2 INSTALASI Agar pengguna dapat menggunakan software CodeVisionAVR maka para pengguna harus meng-instal-nya terlebih dahulu. Adapun proses instalasi software CodeVisionAVR ini cukup mudah. 1. Klik dua kali master program CodeVisionAVR yang ada di CD buku ini. 2. Ikuti langkah-langkah yang diminta dan lakukan perubahan seperlunya. 3. Setelah selesai, program dapat langsung dijalankan. 1.3 MEMBUAT PROGRAM BARU Membuat program baru menggunakan CodeVisionAVR tidaklah sulit. Adapun langkah-langkah yang harus dilakukan adalah sebagai berikut: 1. Jalankan program CodeVisionAVR. Dengan cara klik dua kali pada Icon CodeVisionAVR seperti pada gambar 1.1. Gambar 1.1 Icon CodeVisionAVR 2. Pada saat jalankan program CodeVisionAVR maka layar kosong tampak seperti pada gambar 1.2. Gambar 1.2 Tampilan CodeVisionAVR Trainer : Tianur ( ) 1

2 3. Klik Menu File dan pilih New, maka tampil jendela pilihan seperti pada gambar 1.3. Gambar 1.3 Jendela Pilihan Tipe File 4. Untuk membuat program baru pilihlah Project kemudian klik OK, maka muncul pertanyaan yang menanyakan apakah kita ingin menggunakan CodeWizardAVR seperti pada gambar 1.4 berikut, kemudian pilih Yes. Gambar 1.4 Jendela Confirm CodeWizardAVR 5. Jendela CodeWizardAVR tampil seperti gambar 1.5. Pada tab Chip, lakukan konfigurasi seperti pada gambar 1.5. Gambar 1.5 CodeWizardAVR pada tab Chip Trainer : Tianur ( ) 2

3 6. Selanjutnya pilih tab Ports, lalu lakukan pengaturan seperti pada gambar 1.6. Gambar 1.6 CodeWizardAVR pada tab Ports 7. Kemudian pilih menu File lalu pilih Generat, Save and Exit. Lalu kita diminta menyimpan tiga jenis file secara berurut. Dianjurkan simpan ketiga file tersebut dalam sebuah folder yang sama. 8. Setelah selesai, maka program CodeVisionAVR akan tampak seperti gambar 1.7, yang menunjukan bahwa sudah terdapat program yang telah dikonfigurasi dan siap digunakan atau disisipkan program tambahan. Gambar 1.7 Program CodeVisionAVR yang terkonfigurasi Trainer : Tianur ( ) 3

4 9. Kemudian sisipkan program utama seperti yang tampak pada gambar 1.8 berikut. Gambar 1.8 Menyisipkan program utama 10. Setelah selesai kita dapat melakukan kompilasi pada program dengan cara pilih menu Project lalu pilih Build All atau Ctrl+F Jika program sudah benar atau tidak terdapat kesalahan, maka akan tampil jendela informasi seperti gambar 1.9 berikut ini. Gambar 1.10 Jendela Informasi 12. Kemudian klik OK, dan program siap di download ke rangkaian. Langlah-langkah diatas adalah proses untuk menghasilkan file dengan bahasa mesin yaitu file dengan ekstensi hexa (*.hex). File ini dibutuhkan untuk diisi (download) ke IC mikrokontroler, karena mikrokontroler hanya mengerti bahasa mesin. Tahap-tahap ini akan terus dilakukan setiap membuat program baru. Trainer : Tianur ( ) 4

5 BAB 2 SOFTWARE PROTEUS 7 PROFESSIONAL 2.1 PENGENALAN Pada umumnya setiap pegguna yang baru mulai belajar mengalami kesulitan untuk mempelajari mikrokontroler apabila tidak ada pendukung secara langsung seperti pengajar dan peralatan yang memadai. Untuk itu dibutuhkan suatu sarana yang dapat digunakan untuk mencoba suatu rangkaian mikrokontroler. Salah satunya adalah software Proteus 7 Professional. Software Proteus 7 Professional ini tidak free, maka pada CD saya hanya bisa memberikan Proteus 7 Professional versi demo. Penggunaannya tidak jauh berbeda dengan Proteus 7 Professional. Proteus 7 Professional memiliki program yang dapat berfungsi untuk mensimulasikan rangkaian mikrokontroler seolah-olah pengguna berhadapan dengan rangkaian yang sesungguhnya. Software Proteus terdiri dari dua program utama yaitu ARES dan ISIS. Dimana masingmasing program memiliki fungsi yang berbeda. ARES biasa digunakan untuk membuat layout PCB (Printed Circuit Board), sedangkan ISIS biasa digunakan untuk menggambar schematic rangkaian serta mensimulasikan program. Pada buku ini hanya menggunakan program ISIS yang digunakan untuk mensimulasikan rangkaian mikrokontroler. Sedangkan untuk membuat layoutnya silahkan anda pilih sesuai selera mau menggunakan software mana. 2.2 INSTALASI Untuk instalasi program, tidak jauh berbeda dengan cara menginstal program lain pada umumnya. Yang diinstal disini adalah software Proteus-nya, namun pada penggunaannya kita hanya akan menggunakan program ISIS-nya saja yang dapat digunakan sebagai simulator, agar rangkaian mikrokontrolernya tampak seperti rangkaian sesungguhnya. Adapun proses instalasi nya adalah sebagai berikut : 1. Klik dua kali master program Proteus 7 Professional versi Demo yang ada di CD buku ini atau download dari 2. Ikuti langkah-langkah yang diminta dan lakukan perubahan seperlunya jika dibutuhkan. 3. Setelah selesai, program dapat langsung dijalankan. 2.3 TAMPILAN PROGRAM Pada software Proteus, kita menggunakan program ISIS yang berfungsi sebagai simulator. Pada program ISIS banyak sekali fasilitas yang disajikan dan akan memakan banyak waktu jika harus menjelaskan semuanya. Oleh karena itu saya hanya akan menjelas beberapa saja yang diperlukan. Secara umum tampilan program ISIS pada Software Proteus 7 Professional adalah sebagai berikut : Keterangan : 1. Editing Window. 2. Overview Window. 3. Object Selector. Gambar 2.1 Tampilan Program ISIS Trainer : Tianur ( ) 5

6 2.4 MEMBUAT SIMULASI PROGRAM Dalam membuat simulasi program tidaklah sulit. Namun ada beberapa tahap yang harus dilalui. Secara garis besar ada 3 tahap, yaitu : Pemilihan komponen yang akan digunakan. Peletakan komponen dan penyusunan rangkaian. Download program pada rangkaian. Namun sebelum pengguna membuat schematic rangkaian, pengguna harus paham prinsip kerja dari rangkaian yang ingin dibuat, sehingga pengguna dapat memeriksa kesalahan sedini mungkin pada rangkaian jika terdapat error atau ketidaksesuaian prinsip kerja pada rangkaian. Untuk mensimulasikan rangkaian mikrokontroler menggunakan program ISIS ini, pengguna tidak perlu membuat schematic secara lengkap, tapi cukup membuat rangkaian input/output-nya saja seperti pada gambar-gambar schematic yang nanti akan anda temukan pada contoh-contoh rangkaian. Pada rangkaian sebenarnya kita menggunakan IC mikrokontroler ATMega8535, tetapi pada simulator tidak terdapat IC ATMega8535, maka kita menggunakan IC mikrokontroler yang sekelas dengan ATMega8535 yaitu AT90S8535 dan untuk seterusnya kita akan menggunakan IC tersebut dalam membuat simulasi-simulasi rangkaian pada buku ini. Berikut ini adalah langkah-langkah membuat simulasi program menggunakan program ISIS : 1. Siapkan gambar rangkaian yang ingin disimulasikan. Contohnya seperti gambar 2.2 berikut. Gambar 2.2 Rangkaian ATMega Jalankan program ISIS dan buka lembar baru. Tampak seperti gambar 2.3 berikut. Component Mode Terminal Mode Gambar 2.3 Tampilan Jendela baru Trainer : Tianur ( ) 6

7 3. Pilih komponen yang akan digunakan, klik Component Mode kemudian tekan tombol Pick Devices. Seperti gambar 2.4 berikut. Dan cari komponen IC Mikrokontroler AT90S8535 dan komponen LED. Gambar 2.4 Tombol Pick Devices 4. Pilih kategori, dan ambil komponen yang dibutuhkan dengan cara klik dua kali nama komponen yang dipilih seperti gambar 2.5 berikut. Gambar 2.5 Jendela Pick Devices 5. Setelah semua komponen terkumpul di bagian Object Selector, klik OK. 6. Pilih toolbar Terminal Mode, ambil komponen Power dan letakkan pada rangkaian, atur posisi komponen pada Editing Window. Seperti gambar 2.6 berikut. Gambar 2.6 Posisi komponen Trainer : Tianur ( ) 7

8 7. Hubungkan jalur pada masing-masing komponen sesuai gambar rangkaian sehingga tampak seperti gambar 2.7. Gambar 2.7 Hubungan Jalur Komponen 8. Gambar rangkaian tidak perlu lengkap seperti aslinya. Yang penting input dan output rangkaian terhubung dengan komponen yang diinginkan seperti contoh gambar 2.7. Setelah selesai, rangkaian siap disimulasikan dan lihatlah tampilan yang dihasilkan pada gambar simulasi. Gambar 2.8 Jendela Edit Component 9. Klik dua kali IC mikrokontroler pada rangkaian, akan muncul jendela Edit Component. Pada bagian Program File, klik lambang folder, maka akan muncul jendela Select File Name, pilih program LED.HEX yang telah dibuat dan berhasil di compile sebelumnya. Klik Open, lalu Klik OK. 10. Jalankan simulasi rangkaian dengan cara menekan tombol Play pada bagian sudut kiri bawah. 11. Jika LED pada rangkaian berkedap-kedip, maka berarti rangkaian anda telah berhasil disimulasikan. Trainer : Tianur ( ) 8

9 BAB 3 APLIKASI LAMPU LED LED (Light Emitting Diode) adalah komponen semikonduktor yang dapat mengemisikan cahaya ketika dialiri arus listrik. Penggunaan LED sudah sangat populer sehingga banyak digunakan diindustri perangkat elektronika. LED mempunyai banyak kelebihan yaitu penggunaan arus yang kecil dan dapat menghasilkan cahaya yang bermacam-macam, sehingga LED banyak digunakan sebagai indikator dan lampu display. 3.1 ANIMASI LED. Gambar 3.1 Contoh bentuk dan warna LED Aplikasi lampu LED (Light Emitting Diode) adalah aplikasi yang paling sederhana dan yang paling dasar dalam mempelajari dasar pengontrolan menggunakan mikrokontroler. Maka dianggap penting sekali memahami prinsip kerja dari LED ini. LED terdiri dari 2 kaki yaitu anoda dan katoda, dimana LED akan menyala jika arus mengalir dari anoda ke katoda. Pada apliksi lampu LED kali ini, kita akan menghubungkan LED ke mikrokontroler melalui Port A. Seperti pada gambar 3.3. Rangkaian Simulasi Animasi LED. Gambar 3.2 Simbol LED (Light Emitting Diode) Gambar 3.3 Rangkaian Lampu Flip-flop Kedelapan LED kita hubungkan ke PortA dengan menghubungkan semua pin Anoda dari LED ke sumber positif dari tegangan atau biasa disebut Common Anoda (CA). Maka untuk menyalakan LED, data pada PortA harus diberi data 0. Trainer : Tianur ( ) 9

10 Tugas Program Aplikasi LED. Buatlah program baru dengan CodeWizardAVR seperti konfigurasi berikut, kemudian edit program seperti pada gambar. Program 1. Aplikasi Lampu LED Trainer : Tianur ( ) 10

11 Program 2. Animasi Lampu LED Flip-Flop Program 3. Animasi LED Bergeser Trainer : Tianur ( ) 11

12 BAB 4 APLIKASI 7 SEGMENT NON-MULTIPLEX Aplikasi 7 segment sering kita temukan pada keseharian kita terutama pada peralatan elektronik. Biasanya digunakan untuk menampilkan channel atau track pada televisi atau VCD, pada aplikasi lampu lalu lintas di perempatan jalan dan pada sistem antriandi Bank atau tempat pelayanan umum lainnya. Pada bab ini akan membahas aplikasi menggunakan 7 segment secara sederhana. Aplikasi 7 segment Non-Multiplex disini dimaksudkan cara penggunaan 7 segment secara sendiri-sendiri atau independent. Sebuah 7 segment memiliki 8 buah pin yang masing-masing dihubungkan dengan 1 buah port pada mikrokontroler. Masing-masing port akan mengontrol 1 buah 7 segment yang digunakan untuk menampilkan 1 digit angka seperti pada gambar 4.1. Rangkaian Simulasi 7 Segment Non-Multiplex tanpa decoder Gambar 4.1 Rangkaian 7 Segment Non-Multiplex Tugas Program Aplikasi LED. Buatlah program baru dengan CodeWizardAVR seperti konfigurasi berikut, kemudian edit program seperti pada gambar. Trainer : Tianur ( ) 12

13 Program 1. Aplikasi 7 Segment 1 digit Program 2. Aplikasi 7 Segment 2 digit #include <mega8535.h> #include <delay.h> void satuan() PORTC=0x40; PORTC=0x79; PORTC=0x24; PORTC=0x30; PORTC=0x19; PORTC=0x12; PORTC=0x02; PORTC=0x78; PORTC=0x00; PORTC=0x10; void main(void) PORTA=0x00; DDRA=0xFF; PORTC=0x00; DDRC=0xFF; while (1) PORTA=0x40; satuan(); PORTA=0x79; satuan(); PORTA=0x24; satuan(); PORTA=0x30; satuan(); PORTA=0x19; satuan(); PORTA=0x12; satuan(); PORTA=0x02; satuan(); PORTA=0x78; satuan(); PORTA=0x00; satuan(); PORTA=0x10; satuan(); ; Trainer : Tianur ( ) 13

14 Rangkaian Simulasi 7 Segment Non-Multiplex tanpa decoder Decoder adalah suatu driver yang digunakan mengubah data. Untuk menampilkan angka pada 7 segment display terkadang kita membutuhkan decoder BCD (Binary Coded Decimal) untuk membantu kita dalam memproses data. Decoder ini biasanya digunakan untuk mengubah data desimal menjadi data biner. Decoder untuk jenis Common Anode diperlukan keluaran aktip rendah (misalnya SN-7447) sedangkan untuk jenis Common Cathode diperlukan keluaran aktip tinggi (misalnya SN-7448). Teknik pemberian datanya agak berbeda dengan sebelumnya. Yakni dengan cara membagi dua bagian sebuah port lalu mengontrol masing-masing bagian tanpa harus mengganggu data yang lain. Misalkan data terakhir pada 7 segment adalah 34, berarti data PORTA =0x43. Kemudian mau diubah menjadi 35, berarti angka satuan menjadi angka 5 (4 5), berarti kita hanya mengubah data pada LSB, sedangkan data MSB tetap. Caranya adalah sebagai berikut, Data heksa Biner LSB MSB Tahap 1 PORTA =0x43; 0B data sekarang / terakhir Tahap 2 Kosongkan MSB di AND -kan dengan data ( ) Dengan perintah PORTA&=0x03; Tahap 3 Set MSB menjadi di OR kan dengan data ( ) Dengan perintah PORTA =0x50; Puluhan Satuan Tugas Program Aplikasi LED. Buatlah program baru dengan CodeWizardAVR seperti konfigurasi berikut, kemudian edit program seperti pada gambar. Trainer : Tianur ( ) 14

15 Program 1. Aplikasi 7 Segment 1 digit #include <mega8535.h> #include <delay.h> void main(void) PORTA=0x00; DDRA=0xFF; while (1) PORTA=0x0; PORTA=0x1; PORTA=0x2; PORTA=0x3; PORTA=0x4; PORTA=0x5; PORTA=0x6; PORTA=0x7; PORTA=0x8; PORTA=0x9; ; Program 2. Aplikasi 7 Segment 2 digit #include <mega8535.h> #include <delay.h> void satuan() PORTA&=0x0F; PORTA =0x00; PORTA&=0x0F; PORTA =0x10; PORTA&=0x0F; PORTA =0x20; PORTA&=0x0F; PORTA =0x30; PORTA&=0x0F; PORTA =0x40; PORTA&=0x0F; PORTA =0x50; PORTA&=0x0F; PORTA =0x60; PORTA&=0x0F; PORTA =0x70; PORTA&=0x0F; PORTA =0x80; PORTA&=0x0F; PORTA =0x90; void main(void) PORTA=0x00; DDRA=0xFF; PORTC=0x00; DDRC=0xFF; while (1) PORTA&=0xF0; PORTA =0x00; satuan(); PORTA&=0xF0; PORTA =0x01; satuan(); PORTA&=0xF0; PORTA =0x02; satuan(); PORTA&=0xF0; PORTA =0x03; satuan(); PORTA&=0xF0; PORTA =0x04; satuan(); PORTA&=0xF0; PORTA =0x05; satuan(); PORTA&=0xF0; PORTA =0x06; satuan(); PORTA&=0xF0; PORTA =0x07; satuan(); PORTA&=0xF0; PORTA =0x08; satuan(); PORTA&=0xF0; PORTA =0x09; satuan(); ; Trainer : Tianur ( ) 15

16 BAB 5 APLIKASI 7 SEGMENT MULTIPLEX 5.1 Rangkaian Simulasi 7 Segment Multiplex Aplikasi 7 segment Multiplex merupakan penggunaan 7 segment secara paralel. 7 segment yang berjumlah 2 atau lebih disusun sedemikian rupa sehingga masing-masing pin yang sama pada 7 segment terubung secara paralel terhadap pin pada port mikrokontroler. Sehingga pada mikrokontroler hanya akan menggunakan 2 buah port apabila 7 segment yang digunakan berjumlah maksimum 8 buah. Port pada mikrokontroler yang dihubungkan dengan pin pada 7 segment digunakan untuk menetukan data yang akan ditampilkan. Sedangkan port yang terhubung pada common masing-masing 7 segment digunakan untuk mengontrol 7 segment mana yang akan aktif/menyala. Rangkaian Simulasi 7 Segment Multiplex Gambar 5.1 Rangkaian 7 Segment Multiplex Tugas Program Aplikasi LED. Buatlah program baru dengan CodeWizardAVR seperti konfigurasi berikut, kemudian edit program seperti pada gambar. Program 1. Aplikasi 7 Segment 8 digit Gambar 5.2 Konfigurasi 7 Segment Multiplex #include <mega8535.h> #include <delay.h> void main(void) PORTA=0xFF; DDRA=0xFF; PORTC=0x00; DDRC=0xFF; while (1) PORTC=0x40; PORTC=0x79; PORTC=0x24; PORTC=0x30; PORTC=0x19; PORTC=0x12; PORTC=0x02; PORTC=0x78; PORTC=0x00; PORTC=0x10; ; Trainer : Tianur ( ) 16

17 5.2 Aplikasi 7 Segment LCD dengan Decoder 7447 Aplikasi 7 segment menggunakan LCD display tidak berbeda dengan menggunakan 7 segment biasa, perbedaan hanya terdapat pada bentuk dan ukuran saja. Namun pada penjelasan kali ini hanya menambahkan komponen IC TTL sebagai decoder agar pemberian data menjadi lebih mudah. 7 segment LCD Display ini sudah terdiri dari 8 buah 7 segment yang tersusun secara multiplex. Sehingga kita cukup menggunakan 2 buah port yang akan dihubungkan dengan pin common pada LCD dan Pin Input pada IC TTL. Untuk jelasnya bisa dilihat pada gambar 5.3. Rangkaian Simulasi 7 Segment LCD dengan Decoder 7447 Gambar 5.3 Rangkaian 7 Segment LCD Multiplex dengan Decoder Program 2. Aplikasi 7 Segment 8 digit dengan decoder #include <mega8535.h> #include <delay.h> void main(void) PORTA=0x00; DDRA=0xFF; PORTC=0x00; DDRC=0xFF; while (1) PORTC=0x0; PORTC=0x1; PORTC=0x2; PORTC=0x3; PORTC=0x4; PORTC=0x5; PORTC=0x6; PORTC=0x7; PORTC=0x8; PORTC=0x9; ; Program 3. Aplikasi 7 Segment 8 digit dengan decoder #include <mega8535.h> #include <delay.h> void main(void) PORTA=0xFF; DDRA=0xFF; PORTC=0x00; DDRC=0xFF; while (1) PORTA=0B ; PORTC=0x0; PORTA=0B ; PORTC=0x1; PORTA=0B ; PORTC=0x2; PORTA=0B ; PORTC=0x3; PORTA=0B ; PORTC=0x4; PORTA=0B ; PORTC=0x5; PORTA=0B ; PORTC=0x6; PORTA=0B ; PORTC=0x7; ; Trainer : Tianur ( ) 17

18 BAB 6 APLIKASI LED DOT MATRIX LED Dot Matrix merupakan salah satu aplikasi dari LED yang disusun secara Matrix dan dapat berfungsi untuk menampilkan berbagai macam karakter. Terdapat berbagai macam tampilan yang dapat dihasilkan melalui LED Dot Matrix. Pada LED Dot Matrix 5x7 terdapat 5 pin kolom dan 7 pin baris yang digunakan untuk menentukan kondisi masingmasing LED. Jika salah satu bagian menjadi input maka bagian yang lain harus sebagai output atau sebaliknya. Maksudnya salah satu bagian akan menjadi tempat masuknya arus dan bagian yang lain akan menjadi tempat keluarnya arus tergantung pada kondisi posisi Anoda/katoda LED yang terpasang didalamnya. Jika Anoda dari LED terpasang pada bagian kolom maka semua pin pada bagian kolom merupakn tempat masuknya arus dan bagian baris merupakan tempat keluarnya arus. Apabila bagian kolom diberi arus atau diberi data 1 (high) maka kolom tersebut aktif atau LED pada kolom tersebut siap menyala. LED yang menyala akan tergantung pada bagian baris yang diberi data 0 (low). Rangkaian Simulasi Gambar 4.4 Ranglaian LED Dot Matrix 5x7 Contoh Program. Program 1. Menampilkan 1 Karakter pada LED Dot Matrix 5x7 #include <mega8535.h> #include <delay.h> void main(void) PORTA=0x00; DDRA=0xFF; PORTC=0x00; DDRC=0xFF; while (1) PORTA=0x01; PORTC=0B ; delay_ms(1); PORTA=0x02; PORTC=0B ; delay_ms(1); PORTA=0x04; PORTC=0B ; delay_ms(1); PORTA=0x08; PORTC=0B ; delay_ms(1); PORTA=0x10; PORTC=0B ; delay_ms(1); ; Trainer : Tianur ( ) 18

19 BAB 7 APLIKASI LCD DISPLAY 16X2 LCD Display 16x2 merupakan salah satu komponen display yang paling populer digunakan untuk berbagai aplikasi. LCD Display memberikan kenyamanan dalam interface, selain lebih menarik LCD Display juga dapat menampilkan berbagai macam karakter yang tidak dapat ditampilkan menggunakan 7 segment. Lakukan konfigurasi CodeWizardAVR seperti gambar berikut. Rangkaian Simulasi LCD Display 16x2 Gambar 7.1 Konfigurasi LCD Display 16x2 Gambar 7.3 Rangkaian Aplikasi LCD Display 16x2 Trainer : Tianur ( ) 19

20 Contoh Program Program 1. Penampil Karakter dengan LCD #include <mega8535.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> // Declare your global variables here unsigned int temp=15; char buf[33]; void main(void) // LCD module initialization lcd_init(16); while (1) // Place your code here lcd_gotoxy(0,0); lcd_putsf("sensor"); lcd_gotoxy(0,1); sprintf(buf, "Data = %d",temp); lcd_puts(buf); ; Program 2. Penampil Data Variable yang berubah #include <mega8535.h> #include <stdio.h> #include <delay.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> // Declare your global variables here unsigned int temp=0; char buf[33]; void main(void) // LCD module initialization lcd_init(16); while (1) // Place your code here lcd_gotoxy(0,0); sprintf(buf, "%d",temp); lcd_puts(buf); delay_ms(1000); ++temp; ; Trainer : Tianur ( ) 20

21 BAB 8 APLIKASI TOMBOL PUSH BUTTON Tombol salah satu komponen yang paling sering digunakan pada aplikasi elektronik. Tombol biasa digunakan sebagai pemilih, pengatur dan juga sebagai sensor yang kemudian diproses untuk mengerjakan sesuatu. Umumnya jenis tombol ada 2 macam, yaitu tombol Push Button (Tombol Tekan) dan Tombol Toggle (On/Off). Terdapat berbagai macam bentuk dan ukuran tombol dari yang kecil sampai yang besar, sehingga pengguna harus memilih tombol yang sesuai tergantung kebutuhan. Contoh bentuk-bentuk tombol bias dilihat pada gambar 6.1 berikut. PUSH BUTTON Gambar 8.1 Macam-Macam Tombol Tombol Push Button sering kita lihat dalam kehidupan sehari-hari pada peralatan elektronik, seperti radio, televisi, keyboard dan kalkulator lain-lain. Biasanya tombol push button ini digunakan untuk memilih atau menetukan suatu proses, misalnya memilih channel televisi atau mengetik komputer. Gambar 8.2 Konfigurasi Tombol, 7 Segment dan LCD Trainer : Tianur ( ) 21

22 Rangkaian Aplikasi Tombol Push Button dan LED Program Baca Masukan Tombol Push Button ke LED #include <mega8535.h> void main(void) PORTA=0x00; DDRA=0xFF; PORTB=0xFF; DDRB=0x00; while (1) // Place your code here PORTA=PINB; ; Rangkaian Aplikasi Tombol Push Button dan 7 Segment Gambar 8.3 Aplikasi Tombol Push Button dan LED Gambar 8.4 Aplikasi Tombol Push Button dan Seven Segment Trainer : Tianur ( ) 22

23 Program Baca Masukan Tombol Push Button ke 7 Segment #include <mega8535.h> void main(void) PORTA=0x00; DDRA=0xFF; PORTB=0xFF; DDRB=0x00; while (1) // Place your code here if(pinb.0==0) PORTA=0x79; if(pinb.1==0) PORTA=0x24; if(pinb.2==0) PORTA=0x30; if(pinb.3==0) PORTA=0x19; if(pinb.4==0) PORTA=0x12; if(pinb.5==0) PORTA=0x02; if(pinb.6==0) PORTA=0x78; if(pinb.7==0) PORTA=0x00; if(pinb==255) PORTA=0x40; ; Rangkaian Aplikasi Tombol Push Button dan LCD Program Baca Masukan Tombol Push Button ke LCD #include <mega8535.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> // Declare your global variables here unsigned int temp=15; char buf[33]; void main(void) Gambar 8.5 Aplikasi Tombol Push Button dan LCD Trainer : Tianur ( ) 23

24 PORTB=0xFF; DDRB=0x00; // LCD module initialization lcd_init(16); while (1) // Place your code here if(pinb.0==0) temp=1; if(pinb.1==0) temp=2; if(pinb.2==0) temp=3; if(pinb.3==0) temp=4; if(pinb.4==0) temp=5; if(pinb.5==0) temp=6; if(pinb.6==0) temp=7; if(pinb.7==0) temp=8; if(pinb==255) temp=0; lcd_gotoxy(0,0); sprintf(buf, "Data = %d",temp); lcd_puts(buf); ; Trainer : Tianur ( ) 24

25 BAB 9 TOMBOL MATRIX Tombol matrix merupakan tombol push button yang disusun secara matrix sehingga tombol tampak menjadi susunan tombol yang teratur. Kita ambil salah satu contoh tombol matrix 4x4. ini berarti tombol tersebut memiliki 4 baris dan 4 kolom. Sebuah tombol yang ditekan akan terhubung ke salah satu baris dan salah satu kolom yang nantinya akan menghubungkan baris dan kolom tersebut sesuai letak tombol tersebut. Seperti yang ditunjukan oleh gambar 9.1. Gambar 9.1 Rangkaian Tombol Matrix 4x4 Rangkaian Simulasi Tombol Matrix To LCD Gambar 9.2 Rangkaian Tombol Matrix To LCD Display Trainer : Tianur ( ) 25

26 Gambar 9.3 Konfigurasi Keypad dan LCD Contoh Program Program Baca Masukan Tombol Matrix 4x4 #include <mega8535.h> #include <stdio.h> #include <delay.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> // Declare your global variables here int key; char buff[33]; unsigned char keypad( ) //Kolom 1================== PORTD = 0b ; if(pind.7==0) key=10; goto run; if(pind.6==0) key=15; goto run; if(pind.5==0) key=0; goto run; if(pind.4==0) key=14; goto run; //Kolom 2================= PORTD = 0b ; if(pind.7==0) key=13; goto run; if(pind.6==0) key=9; goto run; if(pind.5==0) key=8; goto run; if(pind.4==0) key=7; goto run; //Kolom 3================= PORTD = 0b ; if(pind.7==0) key=12; goto run; if(pind.6==0) key=6; goto run; if(pind.5==0) key=5; goto run; if(pind.4==0) key=4; goto run; //Kolom 4================= Trainer : Tianur ( ) 26

27 PORTD = 0b ; if(pind.7==0) key=11; goto run; if(pind.6==0) key=3; goto run; if(pind.5==0) key=2; goto run; if(pind.4==0) key=1; goto run; run: return key; void main(void) PORTD=0xF0; DDRD=0x0F; // LCD module initialization lcd_init(16); while (1) // Place your code here awal: lcd_gotoxy(0,0); lcd_putsf("tekan Sembarang "); set: key=keypad(); lcd_gotoxy(0,1); sprintf(buff,"%d ",key); lcd_puts(buff); delay_ms(5); //key=keypad(); ; Rangkaian Simulasi Kalkulator Gambar 9.4 Rangkaian Simulasi Kalkulator Trainer : Tianur ( ) 27

28 Gambar 9.5 Konfigurasi Keypad dan LCD Contoh Program Program Aplikasi Kalkulator #include <mega8535.h> #include <stdio.h> #include <delay.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> // Declare your global variables here int key=20,step,op,a1,b1,c; char buff[33]; unsigned char keypad( ) //Kolom 1================== PORTB = 0b ; if(pinb.7==0) key=10; goto run; //tambah if(pinb.6==0) key=15; goto run; //sama dengan = Enter if(pinb.5==0) key=0; goto run; if(pinb.4==0) key=14; goto run; //ON = Cancel //Kolom 2================= PORTB = 0b ; if(pinb.7==0) key=13; goto run; //kurang if(pinb.6==0) key=9; goto run; if(pinb.5==0) key=8; goto run; if(pinb.4==0) key=7; goto run; //Kolom 3================= PORTB = 0b ; if(pinb.7==0) key=12; goto run; //kali if(pinb.6==0) key=6; goto run; if(pinb.5==0) key=5; goto run; if(pinb.4==0) key=4; goto run; Trainer : Tianur ( ) 28

29 //Kolom 4================= PORTB = 0b ; if(pinb.7==0) key=11; goto run; //bagi if(pinb.6==0) key=3; goto run; if(pinb.5==0) key=2; goto run; if(pinb.4==0) key=1; goto run; run: return key; void main(void) PORTB=0xF0; DDRB=0x0F; // LCD module initialization lcd_init(16); while (1) if(step == 0) key=keypad(); if(key < 10) a1=key; lcd_gotoxy(0,0); sprintf(buff,"%d ",a1); lcd_puts(buff); step = 1; else step=0; if(step == 1) key=keypad(); if(key == 10) op=1; //Tambah sprintf(buff,"+ "); lcd_puts(buff); step = 2; if(key == 13) op=2; //Kurang sprintf(buff,"- "); lcd_puts(buff); step = 2; if(key == 12) op=3; //Kali sprintf(buff,"* "); lcd_puts(buff); step = 2; if(key == 11) op=4; //Bagi sprintf(buff,"/ "); lcd_puts(buff); Trainer : Tianur ( ) 29

30 step = 2; if(step == 2) key=keypad(); if(key < 10) b1=key; sprintf(buff,"%d ",b1); lcd_puts(buff); step = 3; else step=2; if(step == 3) if(op == 1) c=a1+b1; sprintf(buff,"= %d ",c); lcd_puts(buff); step = 4; if(op == 2) c=a1-b1; sprintf(buff,"= %d ",c); lcd_puts(buff); step = 4; if(op == 3) c=a1*b1; sprintf(buff,"= %d ",c); lcd_puts(buff); step = 4; if(op == 4) c=a1/b1; sprintf(buff,"= %d ",c); lcd_puts(buff); step = 4; step = 4; if(step == 4) key=keypad(); if(key == 14) lcd_clear(); step = 0; else step=4; ; Trainer : Tianur ( ) 30

31 BAB 10 APLIKASI DATA ANALOG PADA LCD DISPLAY Aplikasi data analog sering digunakan pada sensor-sensor yang keluarannya seperti sensor suhu, kelembaban, asap dan sensor lainnya. Pada rangkaian simulasi kita hanya menggunakan resistor variabel sebagai pengatur output analog yang nantinya diproses oleh mikrokontroler dan kemudian ditampilkan melalui LCD Display. Rangkaian Simulasi Analog pada LCD Display Gambar 10.1 Aplikasi ADC to LCD Display Gambar 10.2 Konfigurasi ADC dan LCD Trainer : Tianur ( ) 31

32 Contoh Program Program Pembaca Data Analog 8 Channel #include <mega8535.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> #include <delay.h> #define ADC_VREF_TYPE 0x60 // Read the 8 most significant bits // of the AD conversion result unsigned char read_adc(unsigned char adc_input) ADMUX=adc_input (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; return ADCH; // Declare your global variables here unsigned char temp[30]; void main(void) // Declare your local variables here // ADC initialization // ADC Clock frequency: khz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; SFIOR&=0xEF; // LCD module initialization lcd_init(16); while (1) // Place your code here lcd_gotoxy(0,0); sprintf(temp,"data ADC0 = %d ",read_adc(0)); lcd_puts(temp); delay_ms(1000); lcd_gotoxy(0,0); sprintf(temp,"data ADC1 = %d ",read_adc(1)); Trainer : Tianur ( ) 32

33 lcd_puts(temp); delay_ms(1000); lcd_gotoxy(0,0); sprintf(temp,"data ADC2 = %d ",read_adc(2)); lcd_puts(temp); delay_ms(1000); lcd_gotoxy(0,0); sprintf(temp,"data ADC3 = %d ",read_adc(3)); lcd_puts(temp); delay_ms(1000); lcd_gotoxy(0,0); sprintf(temp,"data ADC4 = %d ",read_adc(4)); lcd_puts(temp); delay_ms(1000); lcd_gotoxy(0,0); sprintf(temp,"data ADC5 = %d ",read_adc(5)); lcd_puts(temp); delay_ms(1000); lcd_gotoxy(0,0); sprintf(temp,"data ADC6 = %d ",read_adc(6)); lcd_puts(temp); delay_ms(1000); lcd_gotoxy(0,0); sprintf(temp,"data ADC7 = %d ",read_adc(7)); lcd_puts(temp); delay_ms(1000); ; Program Pemilih Channel Data Analog #include <mega8535.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> #include <delay.h> #define ADC_VREF_TYPE 0x60 // Read the 8 most significant bits // of the AD conversion result unsigned char read_adc(unsigned char adc_input) ADMUX=adc_input (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; return ADCH; Trainer : Tianur ( ) 33

34 // Declare your global variables here unsigned char temp[30]; int x; void main(void) // Declare your local variables here // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=P PORTB=0xFF; DDRB=0x00; // ADC initialization // ADC Clock frequency: khz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; SFIOR&=0xEF; // LCD module initialization lcd_init(16); while (1) // Place your code here if(x==0) lcd_gotoxy(0,0); sprintf(temp,"data ADC0 = %d ",read_adc(0)); lcd_puts(temp); if(x==1) lcd_gotoxy(0,0); sprintf(temp,"data ADC1 = %d ",read_adc(1)); lcd_puts(temp); if(x==2) lcd_gotoxy(0,0); sprintf(temp,"data ADC2 = %d ",read_adc(2)); lcd_puts(temp); if(x==3) lcd_gotoxy(0,0); sprintf(temp,"data ADC3 = %d ",read_adc(3)); lcd_puts(temp); if(x==4) Trainer : Tianur ( ) 34

35 lcd_gotoxy(0,0); sprintf(temp,"data ADC4 = %d ",read_adc(4)); lcd_puts(temp); if(x==5) lcd_gotoxy(0,0); sprintf(temp,"data ADC5 = %d ",read_adc(5)); lcd_puts(temp); if(x==6) lcd_gotoxy(0,0); sprintf(temp,"data ADC6 = %d ",read_adc(6)); lcd_puts(temp); if(x==7) lcd_gotoxy(0,0); sprintf(temp,"data ADC7 = %d ",read_adc(7)); lcd_puts(temp); if(pinb.0==0) x=0; if(pinb.1==0) x=1; if(pinb.2==0) x=2; if(pinb.3==0) x=3; if(pinb.4==0) x=4; if(pinb.5==0) x=5; if(pinb.6==0) x=6; if(pinb.7==0) x=7; ; Trainer : Tianur ( ) 35

36 BAB 11 APLIKASI PULSE WIDTH MODULATION (PWM) PWM (Pulse Width Modulation) merupakan metode untuk mengatur lebar pulsa suatu frekuensi. Salah satu fungsi metode ini, dapat digunakan untuk mengontrol kecepatan putaran motor dc. Dengan mengatur lebar pulsa, akan menghasilkan tegangan keluaran yang cukup linier sesuai besarnya duty cicle. Keluaran tegangan yang linier inilah yang digunakan untuk menyulut driver agar motor bisa berputar. Semangkin besar duty cicle yang diberikan maka semangkin besar juga tegangan keluarannya dan kecepatan motor akan semangkin cepat. Gambar 11.1 Aplikasi PWM dan Motor DC Gambar 11.2 CodeWizardAVR untuk PWM Trainer : Tianur ( ) 36

37 Contoh Program Rangkaian Simulasi Analog dan PWM pada LCD Display #include <mega8535.h> #include <delay.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> // Declare your global variables here char temp[5]; void main(void) // Declare your local variables here // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: khz // Mode: Fast PWM top=ffh // OC0 output: Non-Inverted PWM TCCR0=0x6D; TCNT0=0x00; OCR0=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // LCD module initialization lcd_init(16); while (1) // Place your code here OCR0=100; lcd_gotoxy(0,0); sprintf(temp,"data PWM = %d ",OCR0); lcd_puts(temp); ; Trainer : Tianur ( ) 37

38 Gambar 11.3 CodeWizardAVR untuk PWM, ADC dan LCD Rangkaian Simulasi Analog dan PWM pada LCD Display Gambar 11.4 Aplikasi ADC to LCD Display Program PWM dengan Fast PWM 1 #include <mega8535.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm Trainer : Tianur ( ) 38

39 #include <lcd.h> #include <delay.h> #define ADC_VREF_TYPE 0x60 // Read the 8 most significant bits unsigned char read_adc(unsigned char adc_input) ADMUX=adc_input (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; return ADCH; // Declare your global variables here unsigned char temp[10]; void main(void) // Port D initialization // Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x30; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: khz // Mode: Fast PWM top=00ffh // OC1A output: Non-Inv. // OC1B output: Non-Inv. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0xA1; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; Trainer : Tianur ( ) 39

40 SFIOR=0x00; // ADC initialization // ADC Clock frequency: khz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87; SFIOR&=0xEF; // LCD module initialization lcd_init(16); while (1) // Place your code here OCR1A = read_adc(0); //keluarkan data ADC ke PORTD.5 sebagai PWM lcd_gotoxy(0,0); sprintf(temp,"nilai PWM = %d ", OCR1A); lcd_puts(temp); delay_ms(100); ; Rangkaian Simulasi Analog dan PWM pada LCD Display Program PWM dengan Fast PWM 2 #include <mega8535.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm Gambar 11.5 Aplikasi ADC to LCD Display Trainer : Tianur ( ) 40

41 #include <lcd.h> #include <delay.h> #define ADC_VREF_TYPE 0x60 // Read the 8 most significant bits // of the AD conversion result unsigned char read_adc(unsigned char adc_input) ADMUX=adc_input (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA =0x10; return ADCH; // Declare your global variables here unsigned char temp[30]; void main(void) // Port D initialization // Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x30; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: khz // Mode: Fast PWM top=00ffh // OC1A output: Non-Inv. // OC1B output: Non-Inv. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0xA1; TCCR1B=0x0D; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; Trainer : Tianur ( ) 41

42 // ADC initialization // ADC Clock frequency: khz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87; SFIOR&=0xEF; // LCD module initialization lcd_init(16); while (1) // Place your code here OCR1A = read_adc(0); //keluarkan data ADC ke PORTD.5 sebagai PWM lcd_gotoxy(0,0); sprintf(temp,"pwm1 = %d ", OCR1A); //PWM 1 lcd_puts(temp); OCR1B = read_adc(1); lcd_gotoxy(0,1); sprintf(temp,"pwm2 = %d ", OCR1B); //PWM 2 lcd_puts(temp); delay_ms(1000); ; Trainer : Tianur ( ) 42

43 BAB 12 APLIKASI TIMER 12.1 Mode Normal Pada ATmega8535 terdapat 3 buah timer, yaitu Timer0 (8 bit), Timer1 (16 bit) dan Timer2 (8 bit). Untuk perbedaan dan cara kerja masing-masing timer, teman-teman dapat membacanya pada datasheet. Disini akan membahas Timer0 dan Timer1 saja. Sedangkan Timer2 memiliki perlakuan yang sama dengan Timer0. Perhitungan untuk Timer0 dan Timer1 adalah sebagai berikut: Ttimer0 = Tosc*(256-TCNT0)*N (8 bit = 256) Ttimer1 = Tosc*(65536-TCNT1)*N (16 bit = 65536) Tosc = 1/Fosc pada aplikasi ini saya menggunakan kristal 12 MHz, sehingga: Tosc = 1/12Mhz = 0, detik Dimana: Ttimer0 = lamanya periode Timer0 Ttimer1 = lamanya periode Timer1 TCNT0 = Register Timer0 TCNT1 = Register Timer1 N = Skala clock (mempunyai nilai 1, 8, 64, 256 dan 1024) Tosc = periode clock Fosc = frekuensi clock kristal Sekarang kita akan membuat aplikasi timer yang ditampilkan pada LCD. LCD menampilkan suatu nilai yang akan selalu bertambah setiap detik (menggunakan fitur timer), nilai awal yaitu 0 setelah 1 detik (menggunakan timer) kemudian nilai tersebut akan naik menjadi 1, kemudian 2 dan seterusnya, jika sudah sampai 100 maka akan diset kembali menjadi 0. Menggunakan Timer1: Ttimer1 = Tosc*(65536-TCNT1)*N Gambar 12.1 Rangkaian Simulasi Timer Pada aplikasi diatas diinginkan lamanya timer adalah 1 detik (Ttimer1 = 1 detik) dan jika saya menggunakan kristal 12 MHz dan menggunakan skala clock N = 1024, maka didapat: 1 = 0, *(65536-TCNT1)*1024 TCNT1= TCNT1= = D23A (dalam hexa) Trainer : Tianur ( ) 43

44 Dari perhitungan diatas didapat nilai atau dalam hexa D23A, nilai tersebut harus diisikan pada register TCNT1 agar Timer 1 bernilai 1 detik. Berikut adalah gambar untuk mensetting pada CodeVision CodeWizard AVR: Gambar 12.2 Configurasi CodeWizardAVR Timer1 Pada settingan diatas digunanakan nilai clock value yaitu khz, nilai tersebut didapat dari Fosc/N atau 12 Mhz/1024. Berikut adalah listing program lengkapnya: #include <mega8535.h> #include <stdlib.h> #asm.equ lcd_port=0 15 ;PORTC #endasm #include <lcd.h> unsigned char temp[6]; int data; // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) TCNT1H=0xD23A >> 8; TCNT1L=0xD23A & 0xff; data++; //setelah 1 detik increament data void main(void) // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: khz // Mode: Normal top=ffffh Trainer : Tianur ( ) 44

45 // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0 00; TCCR1B=0 05; TCNT1H=0xD2; TCNT1L=0x3A; ICR1H=0 00; ICR1L=0 00; OCR1AH=0 00; OCR1AL=0 00; OCR1BH=0 00; OCR1BL=0 00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0 04; // LCD module initialization lcd_init(16); // Global enable interrupts #asm( sei ) while (1) if (data==100) lcd_clear(); data=0; lcd_gotoxy(0,0); lcd_putsf( Timer : ); itoa(data,temp); //menampilkan di LCD lcd_gotoxy(0,1); lcd_puts(temp); ; Menggunakan Timer0 : Ttimer0 = Tosc*(256-TCNT0)*N Dengan menggunakan Timer0, untuk aplikasi yang sama seperti diatas, sebenarnya timer0 ini tidak dapat menghasilkan periode timer selama 1 detik dikarenakan keterbatasan jumlah bit yaitu hanya 8 bit (256) saja. Tetapi kita masih dapat memanupulasi program agar dapat menghasilkan timer selama 1 detik, caranya dengan membuat timer selama 10 ms kemudian dilakukan pengulangan sebanyak 100 kali, maka akan dihasilkan timer selama 1 detik. 10 ms * 100= 1 detik Pada aplikasi ini diinginkan lamanya timer adalah 10 ms (Ttimer0 = 10 ms = 0.01 s) dan jika saya menggunakan kristal 12 MHz dan menggunakan skala clock/prescaler N = 1024, maka didapat: 0.01 = 0, *(256-TCNT0)*1024 TCNT0= 138 = 8A (dalam hexa) Trainer : Tianur ( ) 45

46 Dari perhitungan diatas didapat nilai 138 atau dalam hexa 8A, nilai tersebut harus diisikan pada register TCNT0 agar Timer 0 bernilai 10 mili detik. Berikut adalah gambar untuk mensetting pada CodeVision CodeWizard AVR: Gambar 12.3 Configurasi CodeWizardAVR Timer0 Pada settingan diatas digunanakan nilai clock value yaitu khz, nilai tersebut didapat dari Fosc/N atau 12 Mhz/1024. Berikut adalah listing program lengkapnya: #include <mega16.h> #include <stdlib.h> #asm.equ lcd_port=0 15 ;PORTC #endasm #include <lcd.h> unsigned char temp[6], loop=0; int data; // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) // Reinitialize Timer 0 value TCNT0=0x8A; loop++; if (loop>=100) data++; loop=0; void main(void) // Timer/Counter 0 initialization Trainer : Tianur ( ) 46

47 // Clock source: System Clock // Clock value: khz // Mode: Normal top=ffh // OC0 output: Disconnected TCCR0=0 05; TCNT0=0x8A; OCR0=0 00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0 01; // LCD module initialization lcd_init(16); // Global enable interrupts #asm( sei ) while (1) if (data==100) lcd_clear(); data=0; lcd_gotoxy(0,0); lcd_putsf( ElectrO-cOntrOl ); itoa(data,temp); //menampilkan di LCD lcd_gotoxy(0,1); lcd_puts(temp); ; Trainer : Tianur ( ) 47

48 12.2 Mode CTC Pada mode CTC tidak jauh berbeda dengan mode Normal, perbedaan hanya terletak pada cara menghitung, tepatnya mulai dan akhir perhitungan pada register TCNT0. Perhitungan untuk Timer0 dan Timer1 adalah sebagai berikut: Ttimer0 = Tosc*(1+OCR0)*N (8 bit = 256) Ttimer1 = Tosc*(1+OCR1A)*N (16 bit = 65536) Tosc = 1/Fosc pada aplikasi ini saya menggunakan kristal 12 MHz, sehingga: Tosc = 1/12Mhz = 0, detik Dimana: Ttimer0 = lamanya periode Timer0 Ttimer1 = lamanya periode Timer1 OCR0 = Register Timer0 ( ) OCR1A = Register Timer1 ( ) N = Skala clock (mempunyai nilai 1, 8, 64, 256 dan 1024) Tosc = periode clock Fosc = frekuensi clock kristal Sekarang kita akan membuat aplikasi timer yang ditampilkan pada LCD. LCD menampilkan suatu nilai yang akan selalu bertambah setiap detik (menggunakan fitur timer), nilai awal yaitu 0 setelah 1 detik (menggunakan timer) kemudian nilai tersebut akan naik menjadi 1, kemudian 2 dan seterusnya, jika sudah sampai 100 maka akan diset kembali menjadi 0. Menggunakan Timer1: Ttimer1 = Tosc*(1+OCR1A)*N Pada aplikasi diatas diinginkan lamanya timer adalah 1 detik (Ttimer1 = 1 detik) dan jika saya menggunakan kristal 12 MHz dan menggunakan skala clock N = 1024, maka didapat: 1 = 0, *(1+OCR1A)* OCR1A = OCR1A = = 2DC6 (dalam hexa) Dari perhitungan diatas didapat nilai atau dalam hexa D23A, nilai tersebut harus diisikan pada register TCNT1 agar Timer 1 bernilai 1 detik. Berikut adalah gambar untuk mensetting pada CodeVision CodeWizard AVR: Gambar 12.4 Configurasi CodeWizardAVR Timer1 Trainer : Tianur ( ) 48

49 Pada settingan diatas digunanakan nilai clock value yaitu khz, nilai tersebut didapat dari Fosc/N atau 12 Mhz/1024. Berikut adalah listing program lengkapnya: #include <mega8535.h> #include <stdlib.h> #asm.equ lcd_port=0 15 ;PORTC #endasm #include <lcd.h> unsigned char temp[6]; int data; // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) TCNT1H=0xD23A >> 8; TCNT1L=0xD23A & 0xff; data++; //setelah 1 detik increament data void main(void) // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: khz // Mode: Normal top=ffffh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0 00; TCCR1B=0 05; TCNT1H=0xD2; TCNT1L=0x3A; ICR1H=0 00; ICR1L=0 00; OCR1AH=0 00; OCR1AL=0 00; OCR1BH=0 00; OCR1BL=0 00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0 04; // LCD module initialization lcd_init(16); // Global enable interrupts #asm( sei ) while (1) Trainer : Tianur ( ) 49

50 if (data==100) lcd_clear(); data=0; lcd_gotoxy(0,0); lcd_putsf( Timer : ); itoa(data,temp); //menampilkan di LCD lcd_gotoxy(0,1); lcd_puts(temp); ; Menggunakan Timer0 : Ttimer0 = Tosc*(256-TCNT0)*N Dengan menggunakan Timer0, untuk aplikasi yang sama seperti diatas, sebenarnya timer0 ini tidak dapat menghasilkan periode timer selama 1 detik dikarenakan keterbatasan jumlah bit yaitu hanya 8 bit (256) saja. Tetapi kita masih dapat memanupulasi program agar dapat menghasilkan timer selama 1 detik, caranya dengan membuat timer selama 10 ms kemudian dilakukan pengulangan sebanyak 100 kali, maka akan dihasilkan timer selama 1 detik. 10 ms * 100= 1 detik Pada aplikasi ini diinginkan lamanya timer adalah 10 ms (Ttimer0 = 10 ms = 0.01 s) dan jika saya menggunakan kristal 12 MHz dan menggunakan skala clock/prescaler N = 1024, maka didapat: 0.01 = 0, *(256-TCNT0)*1024 TCNT0= 138 = 8A (dalam hexa) Dari perhitungan diatas didapat nilai 138 atau dalam hexa 8A, nilai tersebut harus diisikan pada register TCNT0 agar Timer 0 bernilai 10 mili detik. Berikut adalah gambar untuk mensetting pada CodeVision CodeWizard AVR: Gambar 12.5 Configurasi CodeWizardAVR Timer0 Trainer : Tianur ( ) 50

51 Pada settingan diatas digunanakan nilai clock value yaitu khz, nilai tersebut didapat dari Fosc/N atau 12 Mhz/1024. Berikut adalah listing program lengkapnya: #include <mega16.h> #include <stdlib.h> #asm.equ lcd_port=0 15 ;PORTC #endasm #include <lcd.h> unsigned char temp[6], loop=0; int data; // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) // Reinitialize Timer 0 value TCNT0=0x8A; loop++; if (loop>=100) data++; loop=0; void main(void) // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: khz // Mode: Normal top=ffh // OC0 output: Disconnected TCCR0=0 05; TCNT0=0x8A; OCR0=0 00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0 01; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0 80; SFIOR=0 00; // LCD module initialization lcd_init(16); // Global enable interrupts #asm( sei ) while (1) if (data==100) lcd_clear(); Trainer : Tianur ( ) 51

52 data=0; lcd_gotoxy(0,0); lcd_putsf( ElectrO-cOntrOl ); itoa(data,temp); //menampilkan di LCD lcd_gotoxy(0,1); lcd_puts(temp); ; Trainer : Tianur ( ) 52

53 BAB 13 APLIKASI COUNTER 13.1 Menggunakan Timer Counter0 Untuk aplikasi counter lebih mudah dibandingkan dengan timer, karena kita tidak harus lagi menghitung untuk mendapatkan nilai dari register TCNT, tetapi secara otomatis register TCNT yang akan mencacah jika ada input yang masuk. Berikut adalah contoh aplikasi counter untuk menghitung menggunakan T0 dan ditampilkan pada LCD, input yang digunakan berasal dari pushbutton. Gambar 13.1 Rangkaian Simulasi Counter Input untuk counter0 berasal dari pin T0 atau PB0 akan disimpan pada register TCNT0 kemudian ditampilkan ke LCD. Counter0 hanya mampu mencacah sampai dengan nilai 256 dikarenakan counter 8 bit. Berikut adalah setting pada CodeVision CodeWizard AVR: Gambar 13.2 Configurasi CodeWizardAVR Timer0 Trainer : Tianur ( ) 53

54 Berikut adalah listing program lengkap: #include <mega8535.h> #include <stdlib.h> #asm.equ lcd_port=0 15 ;PORTC #endasm #include <lcd.h> unsigned char temp[6]; int data; void main(void) // Timer/Counter 0 initialization // Clock source: T0 pin Falling Edge // Mode: Normal top=ffh // OC0 output: Disconnected TCCR0=0 06; TCNT0=0 00; OCR0=0 00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0 80; SFIOR=0 00; // LCD module initialization lcd_init(16); while (1) data=tcnt0;//hasil counter (TCNT0) dipindah ke data if (data>=256) lcd_clear(); lcd_gotoxy(0,0); lcd_putsf( *Electro PCR* ); itoa(data,temp); //menampilkan di LCD lcd_gotoxy(0,1); lcd_puts(temp); ; Trainer : Tianur ( ) 54

55 13.2 Menggunakan Interups Interupsi merupakan suatu perintah untuk menghentian proses normal sementara waktu lalu melakukan proses tertentu, setelah proses tertentu tersebut selesai maka proses normal akan berjalan kembali. Interups0 Berikut adalah contoh aplikasi counter sebagai proses normal. Proses normal melakukan perhitungan mundur dari Sedangkan proses interupsi adalah melakukan perhitungan naik mulai dari 0. Input yang menggunakan tombol pushbutton akan di cek oleh INT0. Jika terdapat sinyal pada INT0 maka kemudian proses normal terhenti lalu proses interupsi dilakukan, setelah proses interupsi selesai, maka proses normal akan berjalan kembali melanjutkan proses sebelumnya. Gambar 13.3 Rangkaian Simulasi Interupsi Berikut adalah setting pada CodeVision CodeWizard AVR: Gambar 13.4 Configurasi CodeWizardAVR INT0 Trainer : Tianur ( ) 55

56 Berikut adalah listing program lengkap: #include <mega8535.h> #include <delay.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0x15 ;PORTC #endasm #include <lcd.h> int i=1000,x=0; char buffer[33]; // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) // Place your code here x++; lcd_gotoxy(0,0); sprintf(buffer,"counter = %d ", x); lcd_puts(buffer); delay_ms(2000); void main(void) // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off // INT2: Off GICR =0x40; MCUCR=0x02; MCUCSR=0x00; GIFR=0x40; lcd_init(16); #asm("sei") while (1) // Place your code here i--; lcd_gotoxy(0,0); sprintf(buffer,"hitung = %4d", i); lcd_puts(buffer); if(i==0) i=1000; delay_ms(300); ; Trainer : Tianur ( ) 56

57 BAB 14 KOMUNIKASI SERIAL RS-232 I. Tujuan: Mahasiswa mengerti cara melakukan komunikasi serial dengan mikrokontroller AVR untuk mengendalikan sesuatu peralatan Mahasiswa mengerti cara membuat program C pada mikrokontroller AVR untuk melakukan komunikasi serial II. Peralatan yang digunakan: modul AVR Modul LED dan switch Kabel serial RS232 (cross) III. Dasar Teori: Komunikasi serial merupakan komunikasi data dengan pengiriman data secara satu per satu dengan menggunakan satu jalur kabel data. Sehingga komunikasi serial hanya menggunakan 2 kabel data yaitu kabel data untuk pengiriman yang disebut transmit (Tx) dan kabel data untuk penerimaan yang disebut receive (Rx). Kelebihan dari komunikasi serial adalah jarak pengiriman dan penerimaan dapat dilakukan dalam jarak yang cukup jauh dibandingan dengan komunikasi parallel tetapi kekurangannya adalah kecepatan lebih lambat daripada komunikasi parallel, untuk saat ini sedang dikembangkan teknologi serial baru yang dinamakan USB (Universal Serial Bus) yang memiliki kecepatan pengiriman dan penerimaan data lebih cepat disbanding serial biasa. Beberapa contoh : komunikasi Serial RS-232 dan RS-485. Mode serial port : 1. Pada mode 0, Pin TX mengeluarkan shift clock, dan pin RX dapat menerima maupun mengirim data, dengan format 8 bit data dimulai dengan LSB dulu yang dikirim. Jadi pada saat dikirim data melalui RX maka sekalian pin TX mengirimkan signal clock secara berbarengan. Baud ratenya fix yaitu 1/12 frekuensi osilatornya. 2. Pada mode 1, Pin TX berfungsi untuk mengirim data dan RX berfungsi untuk menerima data, data yang dikirim formatnya 8 bit data dengan LSB dikirim dahulu,serta 1 start bit( berlogika 0 ) dan 1 stop bit( berlogika 1 ). Baud ratenya variabel tergantung dari nilai yang ada pada register timer 1 maupun timer Pada mode 2, Pin TX berfungsi untuk mengirim data dan RX untuk menerima data, format datanya sama dengan mode 1 hanya saja terdapat parity bitnya sehingga total bit yang terkirim sebanyak 11 bit. Bit paritynya dapat diset melalui TB8( lihat pada SCON ). Baud ratenya hanya ada 2 pilihan yaitu 1/32 atau 1/64 dari frekuensi osilatornya. 4. Pada mode 3 identik dengan mode 2, hanya saja Baud ratenya variabel tergantung nilai yang terdapat pada register dari timer 1 dan timer 2. SM0: Serial Port Mode bit 0, bit Pengatur Mode Serial SM1: Serial Port Mode bit 1, bit Pengatur Mode Serial SM2: Serial Port Mode bit 2, bit untuk mengaktifkan komunikasi multiprosesor pada kondisi set. Trainer : Tianur ( ) 57

58 REN: Receive Enable, bit untuk mengaktifkan penerimaan data dari Port Serial pada kondisi set. Bit ini di set dan clear oleh perangkat lunak. TB8: Transmit bit 8, bit ke 9 yang akan dikirimkan pada mode 2 atau 3. Bit ini diset dan clear oleh perangkat lunak RB8: Receive bit 8, bit ke 9 yang diterima pada mode 2 atau 3. Pada Mode 1 bit ini berfungsi sebagai stop bit. TI: Transmit Interrupt Flag, bit yang akan set pada akhir pengiriman karakter. Bit ini diset oleh perangkat keras dan di clear oleh perangkat lunak RI: Receive Interrupt Flag, bit yang akan set pada akhir penerimaan karakter. Bit ini diset oleh perangkat keras dan di clear oleh perangkat lunak Dalam coding serial dalam AVR, terdapat 2 konsep yaitu secara polling maupun secara interrupt. Seperti yang sudah dijelaskan diatas mengenai TI dan RI, maka dalam menerima data RI akan terset secara hardware sedangkan TI diset pada saat data hampir selesai dikirim, dan dalam hal transmisi data sangat perlu untu CEK" kondisi TI. Bila TI sudah berlogika 1 berarti data yang ditaruh dalam SBUF sudah selesai dikirim dan harus diclear secara software( secara program ), sebab bila tidak dicek apakah TI sudah 1 atau belum maka mungkin saja terjadi SBUF sudah direload dengan data baru sedangkan data yang lama belum selesai dikirim sehingga terjadi apa yang disebut dengan data corruption. Maka sebelum mengirim byte data yang selanjutnya sangatlah perlu untuk mengecek TI dulu. Bila coding serial dengan konsep polling maka codenya harus terus menerus mengecek flag TI dan RI, apakah berlogika 1, bila berlogika 1 maka langsung lompat ke procedure yang bersangkutan, dengan jangan lupa secepatnya mengclear flag TI atau RI, agar tidak lompat ke int. veltor dari serial. Keuntungan konsep polling adalah codenya yang simple, tetapi menghabiskan cpu time sebab selalu mengecek flag TI dan RI terus menerus tanpa dapat melakukan tugas yang lain, sebab bila melakukan yang lain maka pada saat salah satu flag tersebut menjadi satu maka akan langsung lompat ke int. vektor serial sehingga program akan menjadi kacau. Bila coding serial dengan konsep interrupt, maka program serialnya hanya ada pada subroutine dari int. serial saja, dimana hanya mengecek oleh flag mana interrupt serial terpanggil? Oleh TI atau RI? Bila oleh TI maka taruh datanya ke SBUF TI utk dikirim, dan bila karena RI maka selamatkan datanya ke suatu variabel dari SBUF RI. Keuntungannya code kita dapat melakukan tugas yang lainnya, kerugiannya adalah code yang cukup kompleks. IV. Langkah Kerja Trainer : Tianur ( ) 58

59 Gambar2.1. Setting komunikasi Serial Gambar2.2. Setting komunikasi Serial PC with serial port (COM) COM 1 DB-9 female Modul AVR min Sys Gambar2.3. Sistem Komunikasi serial PC dengan AVR Min. Sys. female PC side male AVR Min. Sys. side Gambar2.4. Kabel komunikasi Serial Null Modem (cross) Gambar2.5. Menu Setting -> terminal Trainer : Tianur ( ) 59

60 Gambar2.6. Menu Tools -> terminal Gambar2.7. Menjalankan window terminal di Code Vision AVR untuk mengamati hasil program yang mengakses komunikasi serial Trainer : Tianur ( ) 60

61 Gambar2.8. Terminal program bisa juga memakai program Hyperterminal bawaan MS Windows. Bisa di akses di Start-> All programs -> Acessories -> Communications -> Hyperterminal V. Program Melakukan pengiriman 1 buah karakter terus menerus #include <mega16.h> #include <stdio.h> void main(void) // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47; while (1) putchar( a ); Bandingkan hasilnya dengan program yang ada di bawah ini: #include <mega16.h> #include <stdio.h> void main(void) // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47; while (1) putchar( a ); putchar(0x0d); putchar(0x0a); Trainer : Tianur ( ) 61

62 VI. Analisa Pada percobaan ini pertama tama dilakukan setting terhadap chip menggunakan Atmega8535L pada clock 4Mhz lalu mnestting LACd pada portb,setting ADC 8 bit dengan interrupt, setting komunikasi serial (USART). Pada setting USART yang digunakan hanya transmitter (TX) saja karena hanya mengirimkan data ke PC atau dengan kata lain tidak menrima masukan dari PC. Setelah itu nilai ADC dibaca dan datanya dikirim melalui serial dengan perintah sprinf untuk kalimat dan putchar unutk sebuah karakter seperti L, D,R atau apbila ingin lebih dari satu karakter dapat dikirim dengan sprin(ldr);. Trainer : Tianur ( ) 62

63 RTC Apa itu RTC? ( RTC yang dimaksud disini adalah real time clock (bukan real time computing), biasanya berupa IC yg mempunyai clock sumber sendiri dan internal batery untuk menyimpan data waktu dan tanggal. Sehingga jika system komputer / microcontroller mati waktu dan tanggal didalam memori RTC tetap uptodate. Salah satu RTC yang sudah populer dan mudah penggunaanya adalah DS1307, apalagi pada Codevision sudah tersedia fungsi-fungsi untuk mengambil data waktu dan tanggal untuk RTCDS1307 ini. Fitur-fitur DS1307: Real-time clock (RTC) menghitung detik, menit, jam,tanggal,bulan dan hari dan tahun valid sampai tahun 2100 Ram 56-byte, nonvolatile untuk menyimpan data. 2 jalur serial interface (I2C). output gelombang kotak yg diprogram. Automatic power-fail detect and switch Konsumsi arus hanya 500nA pada batery internal. mode dg oscillator running. temperature range: -40 C sampai +85 C Trainer : Tianur ( ) 63

64 Untuk membaca data tangal dan waktu yg tersimpan di memori RTC Ds1307 dapat dilakukan melalui komunikasi serial I2C spt tampak pada gambar berikut: Cara pembacaan DS1307 beropersai sebagai slave pada bus I2C. Cara Access pertama mengirim sinyal START diikuti device address dan alamat sebuah register yg akan dibaca. Beberapa register dapat dibaca sampai STOP condition dikirim. Data waktu dan tanggal tersimpan dalam memori masing masing 1 byte, mulai dari alamat 00H sampai 07H. Sisanya (08H ~ 3FHalamat RAM yg bisa digunakan). Trainer : Tianur ( ) 64

65 Pemrograman RTC DS1307 dengan Codevision. Codevision sudah menyediakan fungsi-fungsi khusus untuk mengakses data DS1307 jadi kita tinggal menggunakanya. Apalagi dengan fasilitas codewizard pemrograman RTC menjadi mudah. setelah kita klik ok maka akan tersedia template Code program sbb: #include <mega16.h> // I2C Bus functions #asm.equ i2c_port=0 18 ;PORTB.equ sda_bit=0.equ scl_bit=1 #endasm #include <i2c.h> // DS1307 Real Time Clock functions #include <ds1307.h> // Alphanumeric LCD Module functions #asm.equ lcd_port=0 15 ;PORTC #endasm #include <lcd.h> Trainer : Tianur ( ) 65

Standar Operasional Prosedur Alat

Standar Operasional Prosedur Alat LAMPIRAN Standar Operasional Prosedur Alat 1. Letakkan sampel/objek yang akan dibersihkan pada keranjang didalam chamber 2. Pastikan chamber telah terisi oleh air sebelum alat dihidupkan. Isi air secukupnya

Lebih terperinci

LAMPIRAN. #include <mega16.h> //menambahkan library atmega16 #include <delay.h> //menambahkan library delay #define ADC_VREF_TYPE 0x40

LAMPIRAN. #include <mega16.h> //menambahkan library atmega16 #include <delay.h> //menambahkan library delay #define ADC_VREF_TYPE 0x40 LAMPIRAN #include //menambahkan library atmega16 #include //menambahkan library delay #define ADC_VREF_TYPE 0x40 // Fungsi untuk mengaktifkan dan membaca nilai adc unsigned int read_adc(unsigned

Lebih terperinci

Listing Program. // Declare your global variables here

Listing Program. // Declare your global variables here Listing Program #include // standart input/output library #include // delay library #include // Alphanumeric LCD functions #include // adc mode avcc 10bit #define ADC_VREF_TYPE

Lebih terperinci

Tabel Data Pengujian 5x Perubahan Posisi. Kanan (V) Kiri (V)

Tabel Data Pengujian 5x Perubahan Posisi. Kanan (V) Kiri (V) LAMPIRAN Tabel Data Pengujian 5x Perubahan Posisi 1. Motor 2 tak Kawasaki Ninja 2011 Waktu (menit) Tengah Kanan Kiri Atas Bawah Ratarata 3 8,60 8,62 8,60 8,63 8,62 8,614 6 8,60 8,52 8,54 8,66 8,65 8,594

Lebih terperinci

DAFTAR PUSTAKA. Universitas Sumatera Utara

DAFTAR PUSTAKA. Universitas Sumatera Utara DAFTAR PUSTAKA Andrianto, Heri. 2008. Pemrograman Mikrokontroler AVR ATmega16 Menggunakan Bahasa C. Bandung: Penerbit Informatika. Bejo, Agus. 2007. C & AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroler

Lebih terperinci

LAMPIRAN A RANGKAIAN LENGKAP dan FOTO PENGUAT KELAS D

LAMPIRAN A RANGKAIAN LENGKAP dan FOTO PENGUAT KELAS D A RANGKAIAN LENGKAP dan FOTO PENGUAT KELAS D A1 LAMPIRAN A2 Rangkaian Low Pass Filter Butterworth dan Level Shifter Rangkaian Low Pass Filter Pasif A3 Rangkaian AT mega16 dan L293D B PROGRAM AT MEGA16

Lebih terperinci

Kajian Pustaka. Spesifikasi - Krisbow KW Fitur - Krisbow KW06-290

Kajian Pustaka. Spesifikasi - Krisbow KW Fitur - Krisbow KW06-290 LAMPIRAN Kajian Pustaka Fitur - Krisbow KW06-290 Dua modus memberikan 2.5dB 3.5dB atau akurasi A dan berat C pengukuran tinggi dan rendah berkisar: Rendah (35 sampai 100dB) tinggi (65 sampai 130dB) Resolusi

Lebih terperinci

LAMPIRAN. A. Pembuatan Minimun system dan Penanaman Program 1. Rangkaian Minimum System yang telah dilarutkan, di bor dan dipasang komponen

LAMPIRAN. A. Pembuatan Minimun system dan Penanaman Program 1. Rangkaian Minimum System yang telah dilarutkan, di bor dan dipasang komponen LAMPIRAN A. Pembuatan Minimun system dan Penanaman Program 1. Rangkaian Minimum System yang telah dilarutkan, di bor dan dipasang komponen 2. Rangkaian Driver relay dan sensor suhu yang telah dilarutkan

Lebih terperinci

LAMPIRAN A. Gambar A. Layout alat tongkat tunanetra. Ubiversitas Sumatera Utara

LAMPIRAN A. Gambar A. Layout alat tongkat tunanetra. Ubiversitas Sumatera Utara LAMPIRAN A Pada gambar A. di bawah ini menjelaskan tentang layout atau susunan komponen yang mencakup semuanya alat tongkat tunanetra selanjutnya dapat di lihat pada gambar sebagai berikut : Gambar A.

Lebih terperinci

Langkah-langkah pemrograman: 1. Pilih File >> New:

Langkah-langkah pemrograman: 1. Pilih File >> New: Kondisi sistem: Mikrokontroler yang digunakan adalah ATmega8535, dalam hal ini untuk memudahkan digunakan DI-Smart AVR System. Tujuan pemrogram adalah untuk menampilkan tulisan Apa Kabar Dunia? SEMANGAT!

Lebih terperinci

Langkah-langkah pemrograman: 1. Pilih File >> New:

Langkah-langkah pemrograman: 1. Pilih File >> New: Kondisi sistem: Mikrokontroler yang digunakan adalah ATmega8535, dalam hal ini untuk memudahkan digunakan DI-Smart AVR System. Tujuan pemrogram adalah untuk menyalakan LED yang active-low dan terhubung

Lebih terperinci

Project : Version : Date : 15/05/2013 Author : F4CG Company : F4CG Comments:

Project : Version : Date : 15/05/2013 Author : F4CG Company : F4CG Comments: 48 Program Keseluruhan ********************************************************************* This program was produced by the CodeWizardAVR V1.25.8 Standard Automatic Program Generator Copyright 1998-2007

Lebih terperinci

LAMPIRAN A FOTO REALISASI ALAT

LAMPIRAN A FOTO REALISASI ALAT LAMPIRAN A FOTO REALISASI ALAT A-1 TAMPAK DEPAN TAMPAK BELAKANG A-2 TAMPAK SAMPING PEMBACAAN LCD A-3 PROSES PENGERINGAN PERBANDINGAN PEMBACAAN SENSOR TPA 81 DENGAN DIGITAL THERMOMETER CONSTANT 20T A-4

Lebih terperinci

Penerima Remote SONY dengan ATmega32

Penerima Remote SONY dengan ATmega32 Pendahuluan Standar Remote Kontrol yang mudah untuk dimengerti dan diaplikasikan adalah standar SIRC atau lebih dikenal dengan standar SONY. Bagian terkecil dari sinyal pembacaan pada standar ini adalah

Lebih terperinci

A-1 LISTING PROGRAM MIKROKONTROLER

A-1 LISTING PROGRAM MIKROKONTROLER A-1 LISTING PROGRAM MIKROKONTROLER de #inclu #include #include #include #include // Alphanumeric LCD functions #include // Declare your global

Lebih terperinci

SKEMATIK RANGKAIAN A V R 12V. Out. Gnd. Kontak Motor. Accu 12V. Klakson ISP CONNECTOR PA0 PB0 PB1 PA2 PA4 MOSI MISO PA6. 10uF SCK RST. 10uF. 47uF.

SKEMATIK RANGKAIAN A V R 12V. Out. Gnd. Kontak Motor. Accu 12V. Klakson ISP CONNECTOR PA0 PB0 PB1 PA2 PA4 MOSI MISO PA6. 10uF SCK RST. 10uF. 47uF. SKEMATIK RANGKAIAN 5V 4 U L N 0 0 3 8 15 13 5V NOR CLOSED NOR OPEN 1V Klakson IGNITION COIL Accu ISP CONNECTOR 5 4 3 1 PB0 PB1 A V R PA0 PA D B 9 M A L E 3 7 4 5 1uF 16 1 1uF 3 4 1uF 5 7 8 14 M A X 3 15

Lebih terperinci

Pulsa = Frekuensi * 60/20 ; atau Pulsa = frekuensi*30;

Pulsa = Frekuensi * 60/20 ; atau Pulsa = frekuensi*30; JUDUL : Penghitung Kecepatan Motor DC dengan Display LCD 16X2 Berbasis Mikrokontroler ATMega16 TUJUAN : - Menghitung nilai kecepatan motor dc dengan satuan rpm - Menampilkan nilai rpm ke tampilan LCD -

Lebih terperinci

LAMPIRAN A PROGRAM CODE VISION AVR

LAMPIRAN A PROGRAM CODE VISION AVR LAMPIRAN A PROGRAM CODE VISION AVR A-1 /***************************************************** This program was produced by the CodeWizardAVR V2.05.0 Evaluation Automatic Program Generator Copyright 1998-2010

Lebih terperinci

LAMPIRAN A DATA SHEET

LAMPIRAN A DATA SHEET LAMPIRAN A DATA SHEET Data Sheet Modul ATMEGA16 A-1 Sensor PIR KC7783R A-2 Sensor PIR #555-28027 A-3 PIR 325 FL65 A-4 Spesifikasi TLP 434A Spesifikasi RLP 434A A-5 HT12E A-6 HT12D A-7 Rangkaian RLP.TLP

Lebih terperinci

MODUL V: Timer dan Counter

MODUL V: Timer dan Counter MODUL V: Timer dan Counter.1 DASAR TEORI Gambar.1 Prinsip Dasar Timer/Counter pada Mikrokontroler Ttimer = Tosc*(-TCNT0)*N ( bit = ) Ttimer = Tosc*(-TCNT1)*N (1 bit = ) Gambar. Diagram Blok Timer/Counter

Lebih terperinci

Ping))) Paralax Ultrasonic Range Finder By : Hendawan Soebhakti

Ping))) Paralax Ultrasonic Range Finder By : Hendawan Soebhakti Ping))) Paralax Ultrasonic Range Finder By : Hendawan Soebhakti 1. Karakteristik Ping))) Paralax Ultrasonik, sebutan untuk jenis suara diatas batas suara yang bisa didengar manusia. Seperti diketahui,

Lebih terperinci

LAMPIRAN A SKEMATIK RANGKAIAN

LAMPIRAN A SKEMATIK RANGKAIAN LAMPIRAN A SKEMATIK RANGKAIAN LA-1 GAMBAR RANGKAIAN CONVERTER TEGANGAN UNTUK LED BERUKURAN 8X8 Vcc R4 R3 Q4 Vcc1 Q3 R6 R5 Q6 Vcc2 Q5 R7 R8 Q7 Vcc3 Q8 R9 R10 Q9 Vcc4 Q10 Output Input Scanning(1/0) R12 R11

Lebih terperinci

PRAKTIKUM III Robot Line Follower Sederhana

PRAKTIKUM III Robot Line Follower Sederhana PRAKTIKUM III Robot Line Follower Sederhana A. Tujuan 1. Mahasiswa dapat mengkombinasikan antara pengontrolan motor dengan PWM, dengan sensor proximity dengan ADC. 2. Mahasiswa dapat membuat program robot

Lebih terperinci

OHMMETER DIGITAL BERBASIS MICROCONTROLLER

OHMMETER DIGITAL BERBASIS MICROCONTROLLER OHMMETER DIGITAL BERBASIS MICROCONTROLLER DISUSUN OLEH : ZULVA TRI DIANTI (7308.030.055) ZENDY KURNIA WIDARTO (7308.030.056) DOSEN : EPYK SUNARNO, SST,MT JURUSAN TEKNIK ELEKTRO INDUSTRI POLITEKNIK ELEKTRONIKA

Lebih terperinci

BAB 3 PERANCANGAN ALAT. Rangkaian Catu daya (Power Supply Adaptor) ini terdiri dari satu keluaran, yaitu 5

BAB 3 PERANCANGAN ALAT. Rangkaian Catu daya (Power Supply Adaptor) ini terdiri dari satu keluaran, yaitu 5 BAB 3 PERANCANGAN ALAT 3.1. Perancangan Rangkaian Catu Daya Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian yang ada. Rangkaian Catu daya (Power Supply Adaptor) ini terdiri dari

Lebih terperinci

MODUL PELATIHAN MIKROKONTROLLER UNTUK PEMULA DI SMK N I BANTUL OLEH: TIM PENGABDIAN MASYARAKAT JURUSAN TEKNIK ELEKTRO

MODUL PELATIHAN MIKROKONTROLLER UNTUK PEMULA DI SMK N I BANTUL OLEH: TIM PENGABDIAN MASYARAKAT JURUSAN TEKNIK ELEKTRO MODUL PELATIHAN MIKROKONTROLLER UNTUK PEMULA DI SMK N I BANTUL OLEH: TIM PENGABDIAN MASYARAKAT JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH YOGYAKARTA 2016 MIKROKONTROLER UNTUK PEMULA

Lebih terperinci

DAFTAR PUSTAKA. Bejo, Agus C & AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroler ATMega 8535.Yogyakarta:Graha Ilmu.

DAFTAR PUSTAKA. Bejo, Agus C & AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroler ATMega 8535.Yogyakarta:Graha Ilmu. DAFTAR PUSTAKA Bejo, Agus.2008. C & AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroler ATMega 8535.Yogyakarta:Graha Ilmu. Jamilah. Pengenalan Bahasa C. http://jamilah.staff.gunadarma.ac.id/downloads/

Lebih terperinci

DAFTAR PUSTAKA. Barry, Gwoollard Elektronika Praktis. PT. Praditya Paramitha, Jakarta.

DAFTAR PUSTAKA. Barry, Gwoollard Elektronika Praktis. PT. Praditya Paramitha, Jakarta. DAFTAR PUSTAKA Barry, Gwoollard. 1998. Elektronika Praktis. PT. Praditya Paramitha, Jakarta. Bejo, Agus. 2005. C & AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroller AT-MEGA 8535. Penerbit Gaya Media,

Lebih terperinci

Pengenalan CodeVisionAVR

Pengenalan CodeVisionAVR Pengenalan CodeVisionAVR Hendawan Soebhakti Oktober 2009 Sub Pokok Bahasan Pengenalan CodeVision Menampilkan Data Ke Port Output Membaca Data Dari Port Input 2 CodeVisionAVR C Compiler CodeVisionAVR C

Lebih terperinci

UNIVERSITAS MEDAN AREA

UNIVERSITAS MEDAN AREA DAFTAR PUSTAKA Malvino, Elektronika Terpadu, Penerbit Air Langga Sutrisno, Dasar Elektronika, Penerbit Air Langga NN, Signal Conditioning PC-Based Data Acquisition Handbook, info@mccdaq.com Jacob, Handbook

Lebih terperinci

BAB 4 HASIL DAN PEMBAHASAN

BAB 4 HASIL DAN PEMBAHASAN BAB 4 HASIL DAN PEMBAHASAN Tahap pengujian sistem dilakukan dengan tujuan adalah untuk mengetahui hasil dari perancangan yang telah dibuat pada Bab 3. Pengujian sistem ini terdiri dari beberapa tahapan,

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Software Instalasi merupakan hal yang sangat penting karena merupakan proses penginputan data dari komputer ke dalam mikrokontroler. Sebelum melakukan instalasi, hubungkan

Lebih terperinci

Sistem Mikrokontroler FE UDINUS

Sistem Mikrokontroler FE UDINUS Minggu ke 5 8 Maret 2013 Sistem Mikrokontroler FE UDINUS 2 Jenis Timer/Counter Jenis-jenis Timer Pada ATMega8535L terdapat 4 buah fasilitas timer yaitu : Timer 0 : Adalah timer 8 bit dengan timer value

Lebih terperinci

PELATIHAN: Pemrograman Mikrokontroler Tipe AVR bagi Guru-guru SMK

PELATIHAN: Pemrograman Mikrokontroler Tipe AVR bagi Guru-guru SMK PELATIHAN: Pemrograman Mikrokontroler Tipe AVR bagi Guru-guru SMK Disusun oleh: Pipit Utami. M.Pd Fakultas Teknik UNIVERSITAS NEGERI YOGYAKARTA 2015 Page1 Praktik Mikrokontroler TOPIK: AKSES LCD KAJIAN

Lebih terperinci

MIKROKONTROL ATMega8535 Teknik Elektronika Industri

MIKROKONTROL ATMega8535 Teknik Elektronika Industri MODUL PEREKAYASAAN SISTEM KONTROL MIKROKONTROL ATMega8535 Teknik Elektronika Industri Mardiyanto S.Pd. A. Topik : Program CodeVisionAVR B. Kompetensi Setelah praktikum peserta menguasai penggunaan program

Lebih terperinci

PERCOBAAN I PENGENALAN CODEVISION AVR

PERCOBAAN I PENGENALAN CODEVISION AVR PERCOBAAN I PENGENALAN CODEVISION AVR TUJUAN Memahami cara membuat file project dengan aplikasi CodeVision AVR Memahami cara menggunakan CodeWizzard Memahami cara menampilkan data ke port output Memahami

Lebih terperinci

LAMPIRAN. Lay Out Minimum Sistem dengan ATMega8

LAMPIRAN. Lay Out Minimum Sistem dengan ATMega8 LAMPIRAN - Lay Out PCB Lay Out Minimum Sistem dengan ATMega8 Lay Out LCD Lay Out Instrumentasi (Op-Amp) 1. List Program #include //preprocessor menyertakan library IC ATmega 8 #include

Lebih terperinci

BAB IV HASIL DAN UJICOBA

BAB IV HASIL DAN UJICOBA BAB IV HASIL DAN UJICOBA IV.1. Instalasi Interface Instalasi rangkaian seluruhnya merupakan hal yang sangat penting karena merupakan proses penginputan data dari komputer ke mikrokontroller. Sebelum melakukan

Lebih terperinci

BAB III PERANCANGAN DAN PEMBUATAN SISTEM. perangkat keras maupun perangkat lunak yang meliputi:

BAB III PERANCANGAN DAN PEMBUATAN SISTEM. perangkat keras maupun perangkat lunak yang meliputi: 48 BAB III PERANCANGAN DAN PEMBUATAN SISTEM Pada bab ini akan membahas tentang cara perencanaan dan pembuatan perangkat keras maupun perangkat lunak yang meliputi: 3.1 Konstruksi Fisik Pendulum Terbalik

Lebih terperinci

Digital Compass CMPS03 By : Hendawan Soebhakti

Digital Compass CMPS03 By : Hendawan Soebhakti Digital Compass CMPS03 By : Hendawan Soebhakti 1. Karakteristik Digital Compass Mobile robot, adalah istilah yang sering digunakan untuk menyebut sebuah robot yang memiliki kemampuan menjelajah. Tidak

Lebih terperinci

RANCANG BANGUN OTOMATISASI PINTU GARASI DENGAN KOMUNIKASI BLUETOOTH BERBASIS MIKROKONTROLER

RANCANG BANGUN OTOMATISASI PINTU GARASI DENGAN KOMUNIKASI BLUETOOTH BERBASIS MIKROKONTROLER RANCANG BANGUN OTOMATISASI PINTU GARASI DENGAN KOMUNIKASI BLUETOOTH BERBASIS MIKROKONTROLER Laporan ini Disusun Untuk Memenuhi Persyaratan Menyelesaikan Pendidikan Diploma III Jurusan Teknik Komputer Politeknik

Lebih terperinci

Membuat Sendiri Robot Line Tracker

Membuat Sendiri Robot Line Tracker Membuat Sendiri Robot Line Tracker Application Note Robot Line Tracker Pada project kali ini kita akan membahas cara membuat robot line tracker yang dapat bergerak mengikuti track berupa garis hitam setebal

Lebih terperinci

Universitas Sumatera Utara

Universitas Sumatera Utara 1 2 Lampiran 1 : Skematik Rangkaian Seluruh Alat 3 Lampiran 2 : Listing Program /******************************************************* This program was created by the CodeWizardAVR V3.12 Advanced Automatic

Lebih terperinci

CLAMP-METER PENGUKUR ARUS AC BERBASIS MIKROKONTROLER TUGAS AKHIR

CLAMP-METER PENGUKUR ARUS AC BERBASIS MIKROKONTROLER TUGAS AKHIR CLAMP-METER PENGUKUR ARUS AC BERBASIS MIKROKONTROLER TUGAS AKHIR Oleh: TANU DWITAMA (3210701018) Disusun untuk memenuhi syarat kelulusan Program Diploma III Program Studi Teknik Elektro Politeknik Batam

Lebih terperinci

BAB IV HASIL KERJA PRAKTEK. sistem perancangan ini memiliki sensor untuk mengetahui seberapa intensitas cahaya

BAB IV HASIL KERJA PRAKTEK. sistem perancangan ini memiliki sensor untuk mengetahui seberapa intensitas cahaya BAB IV HASIL KERJA PRAKTEK 4.1 Gambaran besar perancangan sistem Dalam hal ini perlu diketahui bahwa perancangan sistem atap otomatis ini memiliki sejumlah komponen yang berfungsi sebagai penggerak dari

Lebih terperinci

Timer / Counter. Hendawan Soebhakti. November 2009

Timer / Counter. Hendawan Soebhakti. November 2009 Timer / Counter Hendawan Soebhakti November 2009 Sub Pokok Bahasan Jenis Timer/Counter Register TIMSK dan TIFR Interrupt Timer Sistem Mikrokontroler - By : Hendawan Soebhakti 2 Timer/Counter Jenis-jenis

Lebih terperinci

Teknik-Teknik Penyesuaian Sensor

Teknik-Teknik Penyesuaian Sensor Teknik-Teknik Penyesuaian Sensor Workshop Teknologi Sensor & Aktuator Untuk Kontes Robot Indonesia Nopember 2007 riyanto@eepis-its.edu Politeknik Elektronika Negeri Surabaya Materi 1. Teknik-Teknik Penyesuaian

Lebih terperinci

BAB III DESAIN DAN PEMBUATAN

BAB III DESAIN DAN PEMBUATAN 23 BAB III DESAIN DAN PEMBUATAN 3. 1 Prinsip Kerja dan Perencanaan Perancangan dan pembuatan perangkat keras mencakup pembuatan rancangan layout, penempatan komponen elektronika didalam sirkuit PCB sampai

Lebih terperinci

LAMPIRAN 1 DATA SHEET SERVO GWS S677

LAMPIRAN 1 DATA SHEET SERVO GWS S677 LAMPIRAN 1 DATA SHEET SERVO GWS S677 LAMPIRAN 2 DATA SHEET ATMEGA 8535 LAMPIRAN 3 DATA SHEET CMPS03 LAMPIRAN 4 GAMBAR RANGKAIAN LENGKAP Jalur data I/O Mikrokontroler ATmega 8535 LAMPIRAN 5 LISTING PROGRAM

Lebih terperinci

JOBSHEET VIII MENGGUNAKAN TIMER/COUNTER DALAM MIKROKONTROLER ATMEGA8535

JOBSHEET VIII MENGGUNAKAN TIMER/COUNTER DALAM MIKROKONTROLER ATMEGA8535 JOBSHEET VIII MENGGUNAKAN TIMER/COUNTER DALAM MIKROKONTROLER ATMEGA8535 1 TUJUAN Mahasiswa mampu menggunakan fitur timer/counter mikrokontroler. Mahasiswa mampu menggunakan mikrokontroler untuk membuat

Lebih terperinci

Gambar 4.1 Rangkaian keseluruhan

Gambar 4.1 Rangkaian keseluruhan 24 BAB IV IMPLEMENTASI DATA DAN ANALISIS 4.1 Pengujian Dalam bab ini akan dibahas mengenai pengujian dan analisa dari simulasi sistem perancangan program. Tujuan simulasi adalah untuk mengetahui kebenaran

Lebih terperinci

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 7 Monitoring Suhu dan Cahaya ke PC

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 7 Monitoring Suhu dan Cahaya ke PC MODUL 7 Monitoring Suhu dan Cahaya ke PC I. Pendahuluan Pada praktikum ini, anda akan mencoba memanfaatkan fasilitas komunikasi serial pada mikrokontroler AVR ATmega8535. Modul praktikum sebelumnya adalah

Lebih terperinci

TEKNIK MIKROKONTROLER (Mikrokontroler AVR dengan Bahasa C Code Vision )

TEKNIK MIKROKONTROLER (Mikrokontroler AVR dengan Bahasa C Code Vision ) TEKNIK MIKROKONTROLER (Mikrokontroler AVR dengan Bahasa C Code Vision ) Oleh : IGAP. Raka Agung, ST, MT. (Digunakan di lingkungan sendiri, sebagai buku ajar mata kuliah Teknik Mikrokontroler) Jurusan Teknik

Lebih terperinci

BAB IV HASIL DAN PEMBAHASAN. Hasil dan pembahasan merupakan pemaparan dari spesifikasi alat, kinerja

BAB IV HASIL DAN PEMBAHASAN. Hasil dan pembahasan merupakan pemaparan dari spesifikasi alat, kinerja BAB IV HASIL DAN PEMBAHASAN Hasil dan pembahasan merupakan pemaparan dari spesifikasi alat, kinerja alat, serta analisa dari hasil pengukuran untuk mengetahui alat berfungsi dengan baik sesuai dengan yang

Lebih terperinci

BAB III METODOLOGI PENELITIAN. yang sebelumnya telah dihaluskan dan melalui proses quality control

BAB III METODOLOGI PENELITIAN. yang sebelumnya telah dihaluskan dan melalui proses quality control 23 BAB III METODOLOGI PENELITIAN 3.1 Diagram Mekanis Sistem Sistem mekanis yang penulis buat menggunakan bahan plat logam yang sebelumnya telah dihaluskan dan melalui proses quality control sehingga diharapkan

Lebih terperinci

BAB III METODOLOGI PENELITIAN. dengan suhu dan timer berbasis mikrokontroler ATMega8535, dapat

BAB III METODOLOGI PENELITIAN. dengan suhu dan timer berbasis mikrokontroler ATMega8535, dapat BAB III METODOLOGI PENELITIAN 3.1 Perancangan Perangkat Keras 3.1.1 Diagram Blok Sistem Adapun blok diagram sistem dari inkubator bakteri dilengkapi dengan suhu dan timer berbasis mikrokontroler ATMega8535,

Lebih terperinci

BAB IV PENGUJIAN ALAT DAN ANALISA

BAB IV PENGUJIAN ALAT DAN ANALISA BAB IV PENGUJIAN ALAT DAN ANALISA 4.1 Tujuan Tujuan dari pengujian alat pada tugas akhir ini adalah untuk mengetahui sejauh mana kinerja sistem yang telah dibuat dan untuk mengetahui penyebabpenyebab ketidaksempurnaan

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Software Instalasi merupakan hal yang sangat penting karena merupakan proses penginputan data dari komputer ke dalam mikrokontroler. Sebelum melakukan instalasi, hubungkan

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN III.1. Analisis Permasalahan Dalam Perancangan Alat Pengaduk Adonan Kue ini, terdapat beberapa masalah yang harus dipecahkan. Permasalahan-permasalahan tersebut antara

Lebih terperinci

BAB IV PENGUJIAN ALAT DAN ANALISA

BAB IV PENGUJIAN ALAT DAN ANALISA 37 BAB IV PENGUJIAN ALAT DAN ANALISA 4.1. Tujuan Setelah tahap perancangan hingga terciptanya sebuah alat maka tahap selanjutnya adalah pengukuran dan pengujian. Langkah ini ditempuh agar dapat diketahui

Lebih terperinci

STIKOM SURABAYA BAB IV PEMBAHASAN. 4.1 Perangkat Keras. Informasi waktu yang akan ditunjukkan oleh jarum dan motor power

STIKOM SURABAYA BAB IV PEMBAHASAN. 4.1 Perangkat Keras. Informasi waktu yang akan ditunjukkan oleh jarum dan motor power BAB IV PEMBAHASAN 4.1 Perangkat Keras Informasi waktu yang akan ditunjukkan oleh jarum dan motor power window yang telah dimodifikasi menggunakan gear akan digunakan sebagai penggerak jarum jam. Informasi

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Software Instalasi merupakan hal yang sangat penting karena merupakan proses penginputan data dari komputer ke dalam mikrokontroler. Sebelum melakukan instalasi, hubungkan

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Instalasi Interface Instalasi rangkaian seluruhnya merupakan hal yang sangat penting karena merupakan proses penginputan data dari komputer ke mikrokontroller. Sebelum melakukan

Lebih terperinci

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 6 Meter Cahaya Digital

I. Pendahuluan. II. Tujuan. III. Gambaran Disain. MODUL 6 Meter Cahaya Digital MODUL 6 Meter Cahaya Digital I. Pendahuluan Pada praktikum ini, anda akan mencoba memanfaatkan fasilitas masukan analog pada mikrokontroler AVR ATmega8535. ATmega8535 mempunyai ADC (Analog to Digital Converter)

Lebih terperinci

MODUL 8 Analog Digital Converter (ADC)

MODUL 8 Analog Digital Converter (ADC) MODUL 8 Analog Digital Converter (ADC) AVR ATMega16 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan resolusi 10 bit. Dalam mode operasinya, ADC dapatdi konfigurasi, baik single

Lebih terperinci

BAB III PEMBUATAN ALAT. 1. Alat yang dibuat berupa pengedali motor DC berupa miniatur konveyor.

BAB III PEMBUATAN ALAT. 1. Alat yang dibuat berupa pengedali motor DC berupa miniatur konveyor. BAB III PEMBUATAN ALAT 3.1 Spesifikasi Alat 1. Alat yang dibuat berupa pengedali motor DC berupa miniatur konveyor. 2. karena berupa miniatur maka motor DC yand dipakai hanya menggunakan motor DC dengan

Lebih terperinci

Tata letak konektor DT-AVR ATMEGA168 BMS adalah sebagai berikut: Persiapan hardware DT-AVR ATMEGA168 BMS adalah sebagai berikut:

Tata letak konektor DT-AVR ATMEGA168 BMS adalah sebagai berikut: Persiapan hardware DT-AVR ATMEGA168 BMS adalah sebagai berikut: DT-AVR ATMEGA168 BMS Application Note Oleh: Tim IE Application Note (AN) ini disusun untuk memberikan penjelasan tentang cara penggunaan DT-AVR ATMEGA168 Bootloader Micro System beserta software pendukungnya.

Lebih terperinci

BAB V PENUTUP. otomatis yang dapat terjadwal.

BAB V PENUTUP. otomatis yang dapat terjadwal. BAB V PENUTUP A. Kesimpulan Setelah dilakukan pengujian dan analisa program, maka dapat diperoleh kesimpulan : 1. RTC (Real Time Clock) ditambahkan sebagai pengatur waktu otomatis yang dapat terjadwal.

Lebih terperinci

BAB III METODOLOGI PENELITIAN. Berikut alat dan bahan yang digunakan. Bahan yang digunakan pada pembuatan dan penelitian ini adalah:

BAB III METODOLOGI PENELITIAN. Berikut alat dan bahan yang digunakan. Bahan yang digunakan pada pembuatan dan penelitian ini adalah: 25 BAB III METODOLOGI PENELITIAN 3.1. Perancangan Perangkat Keras 3.1.1. Alat dan Bahan Dalam pembuatan modul termometer digital dengan output suara berbasis ATmega 16 ini dalam pengerjaanya membutuhkan

Lebih terperinci

MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR (ADC DAN APLIKASI TERMOMETER) dins D E P O K I N S T R U M E N T S

MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR (ADC DAN APLIKASI TERMOMETER) dins D E P O K I N S T R U M E N T S MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR (ADC DAN APLIKASI TERMOMETER) dins D E P O K I N S T R U M E N T S ADC Konsep Dasar ADC ADC = Analog to Digital Converter Pengubah sinyal analog menjadi sinyal

Lebih terperinci

Listing Program Aquaponik

Listing Program Aquaponik Listing Program Aquaponik /******************************************************* Chip type : ATmega16 Program type : Application AVR Core Clock frequency : 12,000000 MHz Memory model : Small External

Lebih terperinci

BAB III METODE PENELITIAN

BAB III METODE PENELITIAN BAB III METODE PENELITIAN 3.1 Perancangan Perangkat Keras 3.1.1 Blok Diagram Diagram blok pengembangan breastpump elektrik berbasis mikrokontroler ATMega8535 dilengkapi dengan pengatur waktu dan tekanan

Lebih terperinci

BAB IV HASIL KERJA PRAKTEK. MMC (Multi Media Card) merupakan alat untuk menyimpan data digital. Memory card

BAB IV HASIL KERJA PRAKTEK. MMC (Multi Media Card) merupakan alat untuk menyimpan data digital. Memory card BAB IV HASIL KERJA PRAKTEK 4.1 Akses MMC dengan Microcontroller MMC (Multi Media Card) merupakan alat untuk menyimpan data digital. Memory card biasanya mempunyai kapasitas ukuran berdasarkan bit digital,

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Software Instalasi merupakan hal yang sangat penting karena merupakan proses penginputan data dari komputer ke dalam mikrokontroler. Sebelum melakukan instalasi, hubungkan

Lebih terperinci

PART 7. Void & Define. Dosen : Dwisnanto Putro, S.T, M.Eng

PART 7. Void & Define. Dosen : Dwisnanto Putro, S.T, M.Eng PART 7 Void & Define Dosen : Dwisnanto Putro, S.T, M.Eng LED (LIGHT EMITING DIODE) Untuk LED ANODA : Logika 0 = led menyala Logika 1 = led mati Untuk LED KATODA : Logika 0 = led mati Logika 1 = led menyala

Lebih terperinci

DAFTAR PUSTAKA.

DAFTAR PUSTAKA. DAFTAR PUSTAKA [1] Prabhu, J., P. Thanapal, and R. Vijay Anand. 2016. Home Intruder Detection System. www.ijptonline.com/wp-content/uploads/2016/10/15640-15650.pdf, diakses pada 5 September 2016. [2] Attia,

Lebih terperinci

BAB IV CARA KERJA DAN PERANCANGAN SISTEM. ketiga juri diarea pertandingan menekan keypad pada alat pencatat score, setelah

BAB IV CARA KERJA DAN PERANCANGAN SISTEM. ketiga juri diarea pertandingan menekan keypad pada alat pencatat score, setelah BAB IV CARA KERJA DAN PERANCANGAN SISTEM 4.1 Diagram Blok Sistem Blok diagram dibawah ini menjelaskan bahwa ketika juri dari salah satu bahkan ketiga juri diarea pertandingan menekan keypad pada alat pencatat

Lebih terperinci

LAMPIRAN 1 Perhitungan Hasil Pengukuran

LAMPIRAN 1 Perhitungan Hasil Pengukuran LAMPIRAN 1 Perhitungan Hasil Pengukuran 1. Hasil Pegujian Volume Cairan Infus pada 1 Menit a. Analisa perhitungan pada Pengaturan 0,50 ml/min 1) Nilai Rata-rata 2) Simpangan D= X s - D= 0,50-0,51 D= -0,01

Lebih terperinci

BAB IV HASIL KERJA PRAKTEK

BAB IV HASIL KERJA PRAKTEK BAB IV HASIL KERJA PRAKTEK 4.1 Merancang Rangkaian Remote Control Sesuai namanya remote control adalah alat pengendali jarak jauh yang berfungsi untuk mengendalikan sebuah benda (biasanya memiliki komponen

Lebih terperinci

BAB III PENGENDALIAN PENGGERAK PAHAT MESIN ROUTER CNC ARAH SUMBU X, SUMBU Y DAN SUMBU Z

BAB III PENGENDALIAN PENGGERAK PAHAT MESIN ROUTER CNC ARAH SUMBU X, SUMBU Y DAN SUMBU Z BAB III PENGENDALIAN PENGGERAK PAHAT MESIN ROUTER CNC ARAH SUMBU X, SUMBU Y DAN SUMBU Z Pada bab ini dibahas mengenai rangkaian elektronika yang akan digunakan untuk mengendalikan gerak pahat dan program

Lebih terperinci

JOBSHEET I ANTARMUKA MIKROKONTROLER DENGAN LED

JOBSHEET I ANTARMUKA MIKROKONTROLER DENGAN LED JOBSHEET I ANTARMUKA MIKROKONTROLER DENGAN LED 1 TUJUAN LED Menjelaskan rangkaian antarmuka mikrokontroler dengan LED. Mempraktekkan pemrograman mikrokontroler untuk menyalakan LED. Sebuah LED (Light Emitting

Lebih terperinci

LAMPIRAN A. Gambar A. Skematik Perancangan Solar Tracker Dual Axis. 54 Universitas Sumatera Utara

LAMPIRAN A. Gambar A. Skematik Perancangan Solar Tracker Dual Axis. 54 Universitas Sumatera Utara LAMPIRAN A Pada gambar A. di bawah ini menjelaskan tentang layout atau susunan komponen yang mencakup semuanya alat perancangan solar tracker dual axis selanjutnya dapat di lihat pada gambar sebagai berikut

Lebih terperinci

BAB IV PENGUJIAN DAN SIMULASI PENGENDALIAN SUHU RUANG PENETAS TELUR

BAB IV PENGUJIAN DAN SIMULASI PENGENDALIAN SUHU RUANG PENETAS TELUR 1 BAB IV PENGUJIAN DAN SIMULASI PENGENDALIAN SUHU RUANG PENETAS TELUR Dalam bab ini akan dibahas tentang pengujian berdasarkan perencanaan dari sistem yang dibuat. Pengujian ini dilakukan untuk mengetahui

Lebih terperinci

C. RUMUSAN MASALAH 1. Bagaimana cara membuat timbangan digital? 2. Apa tujuan pembuatan timbangan digital?

C. RUMUSAN MASALAH 1. Bagaimana cara membuat timbangan digital? 2. Apa tujuan pembuatan timbangan digital? A. PENDAHULUAN Perkembangan dunia digital akhir-akhir ini tampak semakin berkembang dan banyak sekali peminat dari berbagai kalangan baik itu sebagai pembuat atau programmer maupun sebagai user atau pemakainya.

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV. Hasil Dalam Bab ini akan dibahas tentang pengujian berdasarkan perencanaan dari sistem yang dibuat. Program pengujian disimulasikan di suatu sistem yang sesuai. Pengujian

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN BAB III ANALISIS DAN PERANCANGAN III.1. Analisis Permasalahan Dalam perancangan alat pendeteksi pelanggaran garis putih pada Traffict Light ini, terdapat beberapa masalah yang harus dipecahkan. Permasalahanpermasalahan

Lebih terperinci

BAB III PERANCANGAN SISTEM KONTROL TEST BED AUTOMATIC CRUISE CONTROL

BAB III PERANCANGAN SISTEM KONTROL TEST BED AUTOMATIC CRUISE CONTROL BAB III PERANCANGAN SISTEM KONTROL TEST BED AUTOMATIC CRUISE CONTROL III.1 Alur Perancangan Perancangan sistem kontrol test bed sistem Automatic Cruise Control dilakukan dengan menggunakan alur perancangan

Lebih terperinci

JOBSHEET II ANTARMUKA MIKROKONTROLER DENGAN TOGGLE SWITCH

JOBSHEET II ANTARMUKA MIKROKONTROLER DENGAN TOGGLE SWITCH JOBSHEET II ANTARMUKA MIKROKONTROLER DENGAN TOGGLE SWITCH 1 TUJUAN Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian input saklar toggle. Mengetahui dan memahami bagaimana memrogram

Lebih terperinci

Rancang Bangun Alat Pemberian Pakan Ikan Otomatis Berdasarkan Pilihan Waktu. DISUSUN OLEH : : Sagileorus Rahayu Alilludin NPM :

Rancang Bangun Alat Pemberian Pakan Ikan Otomatis Berdasarkan Pilihan Waktu. DISUSUN OLEH : : Sagileorus Rahayu Alilludin NPM : Rancang Bangun Alat Pemberian Pakan Ikan Otomatis Berdasarkan Pilihan Waktu DISUSUN OLEH : Nama : Sagileorus Rahayu Alilludin NPM : 42109739 Kelas : 3DC01 Latar Belakang Tidak teraturnya pemberian pakan

Lebih terperinci

BAB 3 PERANCANGAN ALAT DAN PEMBUATAN SISTEM PSA 5 V. Mikrokontroler ATMega8535

BAB 3 PERANCANGAN ALAT DAN PEMBUATAN SISTEM PSA 5 V. Mikrokontroler ATMega8535 27 BAB 3 PERANCANGAN ALAT DAN PEMBUATAN SISTEM 3.1 Perancangan Blok Diagram Sistem Adapun diagram blok dari system yang dirancang,seperti yang diperlihatkan pada gambar 3.1 di bawah ini: PSA 5 V DS18B20

Lebih terperinci

REMOTE CONTROL LAMPU KAMAR DENGAN FITUR PWM DAN SEVEN SEGMENT BERBASIS MIKROKONTROLER ATmega 8535

REMOTE CONTROL LAMPU KAMAR DENGAN FITUR PWM DAN SEVEN SEGMENT BERBASIS MIKROKONTROLER ATmega 8535 Jurnal KomTekInfo Fakultas Ilmu Komputer, Volume 1, No. 1, Juni 2014 ISSN : 2356-0010 REMOTE CONTROL LAMPU KAMAR DENGAN FITUR PWM DAN SEVEN SEGMENT BERBASIS MIKROKONTROLER ATmega 8535 Ruri Hartika Zain,

Lebih terperinci

BAB III METODOLOGI PENELITIAN. Gambar blok diagram dari sistem kerja alat dapat dilihat pada Gambar 3.1

BAB III METODOLOGI PENELITIAN. Gambar blok diagram dari sistem kerja alat dapat dilihat pada Gambar 3.1 BAB III METODOLOGI PENELITIAN 3.1 Diagram Blok Gambar blok diagram dari sistem kerja alat dapat dilihat pada Gambar 3.1 sebagai berikut. Sampel Air Sensor TDS Modul Sensor Program Mikrokontroller ATMega16

Lebih terperinci

TUGAS MATAKULIAH APLIKASI KOMPUTER DALAM SISTEM TENAGA LISTRIK FINAL REPORT : Pengendalian Motor DC menggunakan Komputer

TUGAS MATAKULIAH APLIKASI KOMPUTER DALAM SISTEM TENAGA LISTRIK FINAL REPORT : Pengendalian Motor DC menggunakan Komputer TUGAS MATAKULIAH APLIKASI KOMPUTER DALAM SISTEM TENAGA LISTRIK FINAL REPORT : Pengendalian Motor DC menggunakan Komputer disusun oleh : MERIZKY ALFAN ADHI HIDAYAT AZZA LAZUARDI JA FAR JUNAIDI 31780 31924

Lebih terperinci

BAB 3 PERANCANGAN ALAT. Sensor Utrasonik. Relay. Relay

BAB 3 PERANCANGAN ALAT. Sensor Utrasonik. Relay. Relay BAB 3 PERANCANGAN ALAT 3.1 Diagram Blok Berikut ini adalah diagram blok sistem rancang bangun alat pengontrol volume air dan aerator pada kolam budidaya udang menggunakan mikrokontroler. Sensor Utrasonik

Lebih terperinci

BAB IV HASIL DAN UJI COBA

BAB IV HASIL DAN UJI COBA BAB IV HASIL DAN UJI COBA IV.1. Tampilan Hasil Software Keseluruhan Berikut adalah tampilan dari Software CodeVisionAVR untuk pemerograman Alat Pengukur Kecepatan Kendaraan dijalan Tol Berbasis Mikrokontroler

Lebih terperinci

Gambar 3.1 Blok Diagram Timbangan Bayi

Gambar 3.1 Blok Diagram Timbangan Bayi 34 BAB III METODE PENELITIAN 3.1 Perancangan Perangkat Keras 3.1.1 Diagram Blok Sistem Diagram blok sistem merupakan salah satu bagian terpenting dalam perancangan dan pembuatan alat ini, karena dari diagram

Lebih terperinci

BAB III METODE PENELITIAN

BAB III METODE PENELITIAN BAB III METODE PENELITIAN 3.1. Jenis Metode Penelitian Sesuai dengan permasalahan yang telah dikemukakan sebelumnya, maka jenis penelitian ini adalah penelitian eksperimen. Penelitian eksperimen adalah

Lebih terperinci

Membuat Project dengan CodeVisionAVR.

Membuat Project dengan CodeVisionAVR. Membuat Project dengan CodeVisionAVR. Pada penjelasan berikutnya, sebagai contoh digunakan modul AVR yang mempunyai hubungan sebagai berikut: PortA terhubung dengan 8 buah LED dengan operasi aktif high

Lebih terperinci

PRAKTIKUM MIKROPROSESSOR PTE-408 PRODI S1 PENDIDIKAN TEKNIK ELEKTRO PETUNJUK PRAKTIKUM DYAH LESTARI

PRAKTIKUM MIKROPROSESSOR PTE-408 PRODI S1 PENDIDIKAN TEKNIK ELEKTRO PETUNJUK PRAKTIKUM DYAH LESTARI PRAKTIKUM MIKROPROSESSOR PTE-408 PRODI S1 PENDIDIKAN TEKNIK ELEKTRO PETUNJUK PRAKTIKUM DYAH LESTARI LABORATURIUM MIKROPROSESSOR JURUSAN TEKNIK ELEKTRO-FAKULTAS TEKNIK UNIVERSITAS NEGERI MALANG 2012 PRAKTIKUM

Lebih terperinci

BAB III PERANCANGAN DAN IMPLEMENTASI ALAT

BAB III PERANCANGAN DAN IMPLEMENTASI ALAT BAB III PERANCANGAN DAN IMPLEMENTASI ALAT A. Perancangan Konstruksi Robot Robot line follower yang akan dirancang ditunjukan pada gambar berikut ini : Gambar 3.1 Robot tampak dari bawah Gambar 3.2 Robot

Lebih terperinci