PEMANFAATAN ANALOG COMPARATOR INTERNAL MIKROKONTROLER SEBAGAI ANALOG TO DIGITAL CONVERTER
TUGAS AKHIR Disusun Sebagai Syarat Akhir Menyelesaikan Pendidikan Program Sarjana Pada Jurusan Teknik Elektro Fakultas Teknik Universitas Diponegoro
oleh NURDIN ABDUL KHAFIZ
L2F099625
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO SEMARANG 2006
ii
iii
ABSTRAK
Perkembangan teknologi elektronika terutama dibidang mikrokontroler terjadi sangat pesat. Telah banyak penerapan dan pemanfaatan mokrokontroler yang berguna dalam kehidupan sehari-hari maupun dalam penelitian di laboratorium. Pada tugas akhir ini digunakan mikrokontroler ATmega8515 produk dari ATMEL sebagai Analog to Digital Converter Metode yang digunakan adalah dengan memanfaatkan fasilitas pembanding analog (analog comparator) yang telah tersedia pada mikrokontroler ATmega8515. Dimana sinyal yang akan diukur dihubungkan dengan masukan pembalik dan sinyal referensi dihubungkan dengan masukan bukan pembalik. Mikrokontroler ATMEL ATmega8515 memiliki kemampuan pencacah16-bit serta kemudahan pemrograman dengan menggunakan bahasa C sebagai bahasa pemrogramannya. Dari pengujian didapatkan hasil bahwa analog comparator yang tersedia pada Atmega8515 dapat dibuat sebagai analog to digital converter ( ADC ). Hasil pengukuran terhadap suhu menunjukan bahwa nilai suhu yang didapat melalui pengukuran dengan ADC rancangan mendekati hasil pengukuran dengan termometer. Kata Kunci : analog comparator, Mikrokontroler ATmega8515, Bahasa C
iv
ABSTRACT
The development of electrical technology especially in microcontroller growth very fast. Many application useful in our life used microcontroller based, and also in laboratory research. In this final task, we used microcontroller ATmega8515 from ATMEL as analog to digital converter. The Method that was used by exploiting analog comparator facility which have made available at ATmega8515 mikrokontroler. The signal to be measured is connected to the inverted input and a reference signal is connected to the non-inverting input , ATmega8515 mikrokontroler ability to counting in 16-bit, and easy to be programming with C language by using CodeVisionAVR. By experimentation, analog comparator which available at ATmega8515 mikrokontroler can be made analog to digital converter. Result of measurement to temperature shown that temperature value through measurement with ADC device come near result of measurement with thermometer. Keywords : analog comparator, ATmega8515 Microcontroller, C language
v
KATA PENGANTAR
ﺑﺴﻢ اﷲ اﻟ ّﺮ ﺣﻤﻦ اﻟ ّﺮ ﺣﻴﻢ Segala puji dan syukur hanya kepada Allah Subhanahu wa Ta'ala yang telah melimpahkan Rahmat, Taufik serta Hidayah-Nya kepada penulis sehingga penulis dapat menyelesaikan penyusunan laporan tugas akhir yang berjudul Pemanfaatan Analog Comparator Internal Mikrokontroler Sebagai Analog to Digital Converter : Studi Kasus pada Mikrokontroler ATMEL ATmega8515 dengan Pengukuran Terhadap Suhu. Dalam penyusunan laporan tugas akhir ini, penulis banyak mendapatkan bantuan dari berbagai pihak, oleh karena itu pada kesempatan kali ini penulis ingin menyampaikan ucapan terima kasih kepada : 1.
Bapak Ir. Sudjadi, MT. selaku Ketua Jurusan Teknik Elektro
2.
Bapak R. Rizal Isnanto, ST. MM. MT. selaku Koordinator Tugas Akhir.
3.
Bapak Sumardi, ST. MT. selaku Pembimbing I Tugas Akhir.
4.
Bapak Iwan Setiawan, ST. MT. selaku Pembimbing II Tugas Akhir.
5.
Bapak Susatyo Handoko ST. MT. selaku Dosen Wali.
6.
Seluruh staf pengajar, staf tata usaha dan staf laboratorium yang tidak dapat penulis sebutkan satu persatu.
7.
Ayah Ibu – semoga Allah menjaga dan mengampuninya - tercinta yang selalu mendoakan penulis, memberikan nasehat, dan dorongan semangat kepada penulis agar tetap berusaha, tawakal dan ikhlas dalam menjalani kehidupan.
8.
Saudara kembarku Nurdin Abdul Kholik, ST. yang selalu mendoakan penulis, memberikan motivasi, semangat dan nasehat agar terus berusaha sebagai bakti kepada kedua orang tua.
9.
Keluarga besar Bahowi Oesman di Bumiayu atas dorongan semangatnya.
vi
dan
10. Semua teman-teman Teknik Elektro angkatan ’99 khususnya Handoko ST, Prima Dasa ST, Utis Sutisna ST, Andes, Mustafa, brahim dan Syahid ST yang sudah banyak memberikan inspirasi, semangat dan motivasi. 11. Bapak dan Ibu Tawar Haryanto yang telah menyediakan tempat berteduh untuk penulis selama 7 tahun. 12. Teman-teman Tirtasari 121 : Ahmad Nurdin, Heru, Gandang, Taufik, Eli, Ari dan Anggit atas motivasi, bantuan dan kebersamaannya selama ini. 13. Semua pihak-pihak yang telah banyak membantu penulis, yang penulis tidak dapat sebutkan disini satu-per-satu. Penulis menyadari bahwa laporan Tugas Akhir ini masih jauh dari sempurna. Oleh karena itu, penulis sangat mengharapkan saran dan masukan untuk kesempurnaan laporan ini. Akhirnya penulis berharap semoga laporan tugas akhir ini dapat memberikan manfaat bagi kita semua dan khususnya bagi penulis sendiri.
ﷲ َو َﺑ َﺮ آَﺎ ُﺗ ُﻪ ِ ﺣﻤَﺔ ُ ا ْ ﻋَﻠ ْﻴ ُﻜ ْﻢ َو َر َ ﻼ ُم َ ﺴ َو اﻟ ﱠ
Semarang,
Agustus 2006
Penulis
vii
DAFTAR ISI
Halaman Judul ....................................................................................................
i
Halaman Pengesahan .........................................................................................
ii
Abstrak ............................................................................................................... iv Kata Pengantar ................................................................................................... vi Daftar Isi ............................................................................................................ viii Daftar Gambar ....................................................................................................
x
Daftar Tabel ....................................................................................................... xi BAB I
BAB II
PENDAHULUAN 1.1
Latar Belakang .......................................................................
1
1.2
Tujuan Penelitian ...................................................................
1
1.3
Batasan Masalah.....................................................................
2
1.4
Sistematika Penulisan.............................................................
2
LANDASAN TEORI 2.1
Analog to Digital Converter...................................................
4
2.2
Tinjauan Umum Perangkat Keras ........................................
4
2.2.1 Mikrokontroler ATmega8515 .......................................
4
2.2.1.1
Susunan Kaki Mikrokontroler ATmega8515 .
5
2.2.1.2
Blok Diagram Dan Arsitektur ATmega8515..
6
2.2.1.3
Pewaktuan CPU .............................................
7
2.2.1.4
Port A/B/C/D/E, DDR A/B/C/D/E, dan Pin A/B/C/D/E ...............................................
8
2.2.1.5
Pewaktu / Pencacah .......................................
9
2.2.1.6
Pembanding Analog (Analog Comparator ) ..
10
2.2.1.6.1 Sumber Interupsi Analog Comparator.....
12
2.2.2 Kapasitor .......................................................................
12
2.2.3 IC LM35 .......................................................................
13
2.3
Tinjauan Umum Perangkat Lunak .......................................
viii
14
2.3.1 Bahasa C .......................................................................
14
2.3.2 Bahasa Rakit (Assembly) ..............................................
14
BAB III PERANCANGAN ALAT 3.1
Perancangan Perangkat Keras ............................................
15
3.1.1 Rangkaian Sistem ..........................................................
16
3.1.2 Liquid Crystal Display (LCD) ......................................
17
Perancangan Perangkat Lunak ...........................................
18
3.2
3.2.1 Deklarasi Variabel, Fungsi, Dan File Judul (Header File) Program ................................................................
19
3.2.2 Program Utama .............................................................
21
3.2.3 Rutin Pelayanan Interupsi .............................................
22
3.2.4 Fungsi Mulai .................................................................
24
3.2.5 Fungsi Hit_Teg .............................................................
25
3.2.6 Fungsi Tamp_Hasil........................................................
26
3.2.7 Fungsi Tamp_Error........................................................
27
3.2.8 Fungsi Temp .................................................................
28
BAB IV PENGUJIAN DAN ANALISA ALAT 4.1
Pengujian Alat dengan masukan tegangan ........................
4.2
Pengujian Alat dengan Melakukan Pengukuran Terhadap suhu ....................................................................
BAB V
29 31
PENUTUP 5.1
Kesimpulan ........................................................................
33
5.2
Saran ..................................................................................
33
DAFTAR PUSTAKA ...................................................................................
34
BIODATA .....................................................................................................
35
LAMPIRAN A
DIAGRAM ALIR PROGRAM
LAMPIRAN B
SENARAI PROGRAM
LAMPIRAN C
DIAGRAM SKEMATIK RANGKAIAN
LAMPIRAN D
FOTO ALAT
LAMPIRAN E
DATA SHEET
ix
DAFTAR GAMBAR
Gambar 2.1
Susunan kaki pada ATmega8515..........................................
5
Gambar 2.2
Diagram blok Mikrokontroler ATmega8515 ........................
7
Gambar 2.3
Menggunakan osilator internal..............................................
8
Gambar 2.4
Menggunakan sumber detak eksternal ..................................
8
Gambar 2.5
Register TCCR1B ................................................................
9
Gambar 2.6
Register TCNT1 ....................................................................
10
Gambar 2.7
Pembanding Analog (Analog comparator)..........................
10
Gambar 2.8
Register ACSR ......................................................................
12
Gambar 3.1
Diagram blok sistem .............................................................
16
Gambar 3.2
Bagan Rangkaian Sistem ......................................................
17
Gambar 3.3
Rangkaian LCD M1632 ........................................................
18
Gambar 3.4
Diagram alir program utama .................................................
21
Gambar 3.8
Diagram alir rutin pelayanan interupsi..................................
22
Gambar 3.9
Diagram alir fungsi mulai()...................................................
24
Gambar 4.1
Skema rangkaian pengujian alat dengan pengukuran terhadap tegangan masukan ..................................................
29
Gambar 4.2
Hasil Pengujian dengan tegangan sebagai masukan .............
30
Gambar 4.3
Skema rangkaian pengujian alat dengan pengukuran
Gambar 4.4
terhadap suhu. .......................................................................
31
Hasil Pengujian dengan Pengukuran terhadap Suhu............
32
x
DAFTAR TABEL
Tabel 2.1
Kombinasi bit DDRA/B/C/D/En dan PORTA/B/C/D/En ........
9
Tabel 2.2
Clock 1 Prescale Select .............................................................
9
Tabel 2.3
Mode Interupsi ..........................................................................
11
Tabel 3.1
Penggunaan port-port pada ATmega8515 ................................
16
Tabel 4.1
Hasil pengujian dengan tegangan sebagai masukan ................
30
Tabel 4.2
Hasil pengukuran terhadap suhu ..............................................
32
xi
BAB I PENDAHULUAN 1.5
LATAR BELAKANG Perkembangan teknologi elektronika saat ini berkembang cukup pesat.
Semakin banyak kebutuhan manusia akan alat yang praktis dan serbaguna yang mengacu pada pemanfaatan teknologi elektronika dan mikrokontroler. Namun untuk saat ini, pemanfaatan mikrokontroler oleh pengguna biasa maupun mahasiswa dirasa masih sulit dalam hal bahasa pemrograman yang kebanyakan menggunakan bahasa tingkat rendah (assembly). Tetapi sekarang ini telah dikembangkan mikrokontroler yang dapat diprogram dengan menggunakan bahasa C, meskipun aplikasi yang ditawarkan masih belum banyak. Pada tugas akhir ini digunakan mikrokontroler ATMEL ATmega8515 produk
dari
ATMEL,
dan
perangkat
lunak
yang
digunakan
adalah
CodeVisionAVR, yang menggunakan bahasa C dalam pembuatan programnya. Penggunaan mikrokontroler ini dirasa cukup penting selain karena kemudahan dalam pemrograman yang diberikan, juga memiliki fitur-fitur yang berguna, salah satunya adalah pembanding analog ( analog comparator ). Dengan adanya pembanding analog pada mikrokontroler ATMEL ATmega8515 dan kemudahan pemrograman pada mikrokontroler ini karena menggunakan bahasa C sebagai bahasa pemrogramannya maka diharapkan dapat dibuat sebuah perancangan analog to digital converter dengan memanfaatkan fasilitas tersebut. 1.6
TUJUAN PENELITIAN Tujuan yang hendak dicapai pada Tugas Akhir ini, yaitu : 1. Membuat perangkat keras dan lunak untuk membuat analog to digital converter dengan memanfaatkan pembanding
analog
comparator ) pada mikrokontroler ATMEL ATmega8515.
1
( analog
2
1.7
BATASAN MASALAH Dalam Tugas Akhir ini, sistem yang akan dibuat dibatasi pada hal-hal
sebagai berikut : 1. Perangkat keras yang digunakan berbasis mikrokontroler ATMEL ATmega8515. 2. Range pengukuran adalah 0 – 2 V DC. 3. Sensor suhu yang digunakan adalah LM35. 4. Suhu yang diukur adalah berkisar 300 C – 50 0C. 5. Media yang digunakan untuk mengetahui perubahan suhu yang diukur adalah air yang dipanaskan dalam heater. 6. Tidak membahas tentang cara dan hasil kompilasi dari perangkat lunak CodeVisionAVR. 1.8
SISTEMATIKA PENULISAN
Sistematika penulisan yang digunakan dalam Tugas Akhir ini terbagi dalam beberapa pokok bahasan, yaitu: BAB I
PENDAHULUAN Bab ini berisi tentang uraian latar belakang masalah, tujuan pembuatan Tugas Akhir, metodologi, batasan masalah dan sistematika penulisan.
BAB II DASAR TEORI Bab ini berisi tentang landasan teori yang mendukung perancangan Tugas Akhir. BAB III PERANCANGAN PERANGKAT KERAS DAN PERANGKAT LUNAK Bab ini berisi tentang perancangan alat, baik perancangan perangkat keras maupun perangkat lunak.
3
BAB IV PENGUJIAN DAN ANALISA ALAT Berisi tentang hasil pengujian perangkat keras maupun perangkat lunak disertai analisanya terhadap perangkat keras dan perangkat lunak sistem. BAB V PENUTUP Berisi kesimpulan yang didapatkan selama pembuatan perangkat keras, perangkat lunak, serta pembuatan program, dan disertai saran-saran mengenai hal-hal yang dapat dilakukan dalam rangka memperbaiki halhal yang sudah dilakukan oleh penulis.
BAB II LANDASAN TEORI
2.3
ANALOG TO DIGITAL CONVERTER (ADC) Rangkaian pembanding ( comparator ) membentuk dasar dari semua
pengubah analog ke digital. Rangkaian ini membandingkan suatu tegangan yang tidak diketahui terhadap sebuah tegangan referensi dan menunjukkan yang mana dari kedua tergangan tersebut lebih besar. Pada dasarnya sebuah rangkaian pembanding adalah penguat selisih tingkat ganda berpenguatan tinggi, dimana keadaaan keluaran ditentukan oleh polaritas relatif dari kedua sinyal masukan. 2.4
TINJAUAN UMUM PERANGKAT KERAS
2.4.1
MIKROKONTROLER ATmega8515 Mikrokontroler adalah suatu kombinasi mikroprosesor, piranti I/O
(Input/Output), dan memori, yang terdiri atas ROM (Read Only Memory) dan RAM (Random Access Memory), dalam bentuk keping tunggal (single chip). Mikrokontroler ATmega8515 adalah mikrokontroler 8 bit buatan ATMEL dengan 8 KByte System Programable Flash dengan teknologi memori tak mudah hilang (nonvolatile), kepadatan tinggi, dan kompatibel dengan pin out dan set instruksi standar industri MCS51 INTEL. Arsitektur yang digunakan dengan RISC (Reduce Instruction set in singgle chip). Mikrokontroler ATmega8515 memiliki karakteristik sebagai berikut : 1. Kompatibel dengan produk keluarga MCS51. 2.
Dapat digunakannya bahasa C sebagai bahasa pemrogramannya.
3.
Programmable Flash Memory sebesar 8 K Byte.
4.
Memiliki 512 Bytes EEPROM yang dapat diprogram.
5.
Ketahanan (endurance) : 10.000 siklus tulis/hapus.
6.
Jangkauan operasi : 4,5 – 5,5 Volt.
7.
Fully Static Operation : 0 Hz – 16 MHz untuk ATmega8515.
4
5
8.
Dua level Program Memory Lock yaitu flash program dan EEPROM data security,
9.
RAM Internal 128 X 8 bit,
10. Memiliki 32 jalur I/O yang dapat diprogram, 11. Satu pencacah 8 bit dengan separate prescaler, 12. Satu pencacah16 bit dengan separate prescaler, 13. Sumber interupsi (interrupt source) eksternal dan internal, 14. Kanal pengirim-penerima tak serempak universal (UART-Universal Asynchronous Receiver-Transmitter) yang dapat diprogram, 15. Low-power Idle dan Power-down Mode. 2.4.1.1 SUSUNAN KAKI MIKROKONTROLER ATmega8515 Bentuk kemasan dan susunan kaki-kaki mikrokontroler dari ATmega8515 diperlihatkan seperti pada Gambar 2.1.
Gambar 2.1 Susunan kaki pada ATmega8515.
Penjelasan dari masing-masing kaki adalah sebagai berikut: 1.
VCC (kaki 40) dihubungkan ke Vcc
2.
GND (kaki 20) dihubungkan ke ground.
3.
PortA (PA7..PA0) (kaki 32-39) merupakan port
8 bit dua arah
(bidirectional) I/O. Port ini berfungsi sebagai port data/alamat I/O ketika menggunakan SRAM eksternal.
6
4.
Port B (PB7..PB0) (kaki 1-8) merupakan port 8 bit dua arah (bidirectional) I/O, untuk berbagai keperluan (multi purpose).
5.
Port C (PC7..PC0) (kaki 21-28) adalah port 8 bit dua arah I/O, dengan internal pull-up resistor. Port C ini juga berfungsi sebagai port alamat ketika menggunakan SRAM eksternal.
6.
Port D (PD7..PD0) (kaki 10-17) adalah port 8 bit dua arah I/O dengan resistor pull-up internal. Port D juga dapat berfungsi sebagai terminal khusus.
7.
Reset (kaki 9) ketika kondisi rendah rendah yang lebih lama dari 50 nS mikrokontroler akan reset walaupun detak tidak berjalan.
8.
XTAL1 (kaki 19) masukan bagi penguat osilator terbalik dan masukan bagi rangkaian operasi detak internal.
9.
XTAL2 (kaki 18) keluaran dari penguat osilator terbalik.
10. ICP (kaki 31)
adalah masukan bagi masukan fungsi Capture
Timer/counter1. 11. OC1B (kaki 29) adalah kaki keluaran bagi fungsi Output CompareB keluaran Timer/Counter1. 12. ALE (Address Latch Enable) (kaki 30) digunakan ketika menggunakan SRAM eksternal. Kaki ini digunakan untuk mengunci 8 bit alamat bawah pada saat siklus akses pertama, dan berfungsi sebagai port data pada siklus akses kedua. 2.4.1.2 BLOK DIAGRAM DAN ARSITEKTUR ATmega8515 ATmega8515 mempunyai 32 general purpose register (R0..R31) yang terhubung langsung dengan Arithmetic Logic Unit (ALU), sehingga register dapat diakses dan dieksekusi hanya dalam waktu satu siklus clock. ALU merupakan tempat dilakukannya operasi fungsi aritmetik, logika dan operasi bit. R30 disebut juga sebagai Z-Register, yang digunakan sebagai register penunjuk pada pengalamatan tak langsung. Didalam ALU terjadi operasi aritmetik dan logika antar register, antara register dan suatu konstanta, maupun operasi untuk register
7
tunggal (single register). Berikut arsitekturnya yang ditunjukkan blok diagram pada Gambar 2.2.
Gambar 2.2 Diagram blok Mikrokontroler ATmega8515.
2.4.1.3 PEWAKTUAN CPU Mikrokontroler ATmega8515 memiliki osilator internal (on chip osilator) yang dapat digunakan sebagai sumber detak bagi CPU. Untuk menggunakan osilator internal diperlukan sebuah kristal atau resonator keramik antara kaki
8
Xtal1 dan kaki Xtal2 dan dua buah kapasitor yang ditanahkan seperti terlihat pada Gambar 2.3.
Gambar 2.3 Menggunakan osilator internal.
Bila menggunakan detak eksternal rangkaiannya adalah seperti pada Gambar 2.4.
Gambar 2.4 Menggunakan sumber detak eksternal.
2.4.1.4 PORT A/B/C/D/E, DDR A/B/C/D/E, DAN PIN A/B/C/D/E PORTA/B/C/D/E dan DDRA/B/C/D/E merupakan register-register yang digunakan untuk mengatur PORTA/B/C/D/E, sedangkan PIN PORTA/B/C/D/E digunakan untuk mengakses pin pada port A,B,C,D,E secara individu. Hubungan antara PORT PORTA/B/C/D/E dan DDR PORTA/B/C/D/E diperlihatkan pada Tabel 2.1.
9
Tabel 2.1 Kombinasi bit DDRA/B/C/D/En dan PORTA/B/C/D/En .
DDRBn/ Dn
PORTBn/ Dn
I/O
Keterangan
0
0
Input
Tri-state (High-Z)
0
1
Input
PORTA/B/C/Dn akan menghasilkan arus jika eksternal pull-low
1
0
Output
Push-pull zero output
1
1
Output
Push-pull one output
2.4.1.5 PEWAKTU/PENCACAH Pencacah
pada
ATmega8515
diatur
oleh
register
TCCR1B
(Timer/Counter1 Control Register B). Register TCCR1B dijelaskan pada Gambar 2.5.
Gambar 2.5 Register TCCR1B.
Penjelasan dari masing-masing bit adalah sebagai berikut:
Bit 7 ICNC1 (Input Capture1 Noise Canceler (4 CKs) Bit ini berfungsi meng-enable/disable fungsi noise canceler
Bit 6 ICES1 (Input Capture1 Edge Select) Bit ini berfungsi memilih jenis tepian untuk memicu ICP
Bit 4:3 WGM13:2 (Waveform Generation Mode) Bit ini berfungsi mengaktifkan fungsi Waveform Generation.
Bit 2:0 CS12, CS11, CS10: Clock Select1, Bits 2, 1 dan 0 Kombinasi dari bit-bit ini menentukan sumber prescale dari Timer/Counter1 sebagaimana dijelaskan melalui Tabel 2.2.
Tabel 2.2 Clock 1 Prescale Select. CS12
CS11
CS10
Deskripsi
0
0
0
Stop, Timer/Counter1 dihentikan
0
0
1
CK
0
1
0
CK/8
10
0
1
1
CK/64
1
0
0
CK/256
1
0
1
CK/1024
1
1
0
Kaki Eksternal T1, tepian jatuh
1
1
1
Kaki Eksternal T1, tepian naik
Kondisi stop memberikan fungsi enable/disable. CK dan CK terbagi menentukan frekuensi detak yang digunakan Timer/Counter1. Register TCNT1 merupakan register yang berisi data 16-bit hasil perhitungan pencacah. Register ini memiliki fungsi akses langsung, baik untuk operasi menulis atau membaca data. Register TCNT1 terbagi atas 2 register 8-bit, yaitu TCNT1H dan TCNT1L seperti pada gambar 2.6.
Gambar 2.6 Register TCNT1
2.4.1.6 PEMBANDING ANALOG ( ANALOG COMPARATOR ) Perangkat keras dari pembanding analog (analog comparator) ini perlihatkan pada Gambar 2.7
Gambar 2.7 Pembanding Analog (Analog comparator)
Prinsip kerja dari perangkat keras di atas adalah membandingkan nilai tegangan analog pada masukan PB2 (AIN0) dan masukan negatif PB3 (AIN1). Ketika tegangan pada masukan positif lebih tinggi daripada masukan negatif,
11
maka keluaran ACO menjadi set. ACO (Analog comparator Output) merupakan bit 5 dari ACSR (Analog comparator and Status Register). Saklar ACD (Analog comparator disable) berfungsi mematihidupkan fungsi analog comparator. Pendisable-an bertujuan untuk menghemat konsumsi dari daya catu. ACD ini merupakan bit 7 dari ACSR. Ketika bit ini set, maka fungsi analog comparator menjadi disable. ACBG ( Analog Comparator Bandgap Select ) merupakan bit 6 dari register ACSR yang jika diset maka tegangan referensi
tetap bandgap akan
menggantikan masukan positif pada pembanding analog. Blok interrupt select berfungsi memilih jenis pemicuan yang akan menyebabkan interupsi. Jenis pemicuan ini ditentukan oleh ACIE1 dan ACIE0. ACIE1/ACIE0 (Analog comparator Interrupt Mode Select 1/0) merupakan bit 1 dan 0 dari ACSR. Tabel 2.3 Mode Interupsi ACIS1
ACIS0
Mode Interupsi
0
0
Interupsi comparator pada toggle keluaran
0
1
Tidak digunakan
1
0
Interupsi comparator pada tepian jatuh keluaran
1
1
Interupsi comparator pada tepian naik keluaran
Keluaran dari blok interrupt select dihubungkan ke bit ACI (Analog comparator Interrupt Flag) yaitu bit 4 dari ACSR. Bit ini akan menjadi set ketika ACO berada pada kondisi yang sesuai dengan seting dari ACIS1 dan ACIS0. ACIE (Analog comparator Interrupt Enable) merupakan bit peng-enable interupsi pada analog comparator. Bit ini ada pada bit 3 dari ACSR. Interupsi akan terjadi ketika ACI, ACIE, dan bit-I semuanya tinggi. ACI akan kembali rendah ketika program mengeksekusi vektor pelayanan interupsi. ACIC (Analog comparator Input Capture Enable) adalah bit 2 dari ACSR berfungsi meng-enable fungsi Input Capture pada Timer/Counter1 untuk dipicu oleh analog comparator ketika bit ini tinggi.
12
Pengontrolan perangkat keras ini dilakukan menggunakan register kontrol ACSR (Analog comparator Control and Status Register). Register ACSR tersebut perlihatkan pada Gambar 2.8
Gambar 2.8 Register ACSR
2.2.1.6.1 Sumber Interupsi Analog comparator Sumber Pembanding Analog ( Analog comparator ) akan menghasilkan interupsi pada vektor interupsi dengan alamat vektor $00C yang disebabkan kejadian pada keluaran komparator memicu interupsi.. Bit peng-enable-nya adalah bit ACIE (Analog comparator Interrupt Enable) dan juga bit ACD (Analog comparator disable). Bit pengatur modenya adalah bit ACIS1, dan ACIS0 (Analog comparator Interrupt Mode Select). Sedangkan bit flag yang akan menjadi set ketika terjadi interupsi adalah bit ACI (Analog comparator Interrupt Flag). Bit-bit tersebut terdapat pada register kontrol dan status ACSR (Analog comparator Control and Status Register). 2.2.2 KAPASITOR Kapasitor adalah komponen elektronika yang dapat menyimpan muatan listrik yang dibentuk dari dua pemukaan ( piringan ) yang berhubungan, tetapi dipisahkan oleh suatu penyekat. Bila elektron terpisah dari satu plat ke plat yang lain, akan terdapat muatan di antara keduanya pada medium penyekat tadi. Muatan ini disebabkan oleh muatan positif pada plat yang kehilangan elektron dan muatan negatif pada plat yang memperoleh elektron. Kemampuan kapasitor dalam menyimpan muatan disebut kapasitansi ( C ). Kapasitansi ini diukur berdasarkan besar muatan yang dapat disimpan dalam suatu kenaikan tegangan.
13
C=
Q V
......................................................( 2.1 )
Dengan , Q = muatan ( coulomb )
V = tegangan ( Volt ) C = kapasitansi ( Farad )
Secara kuantitatif, arus yang melalui kapasitor adalah sebanding dengan turunan tegangan melalui kapasitor.
i =C
dv dt
...................................................................( 2.2 )
dengan mengintegralkan persamaan ( 2.2 ) maka diperoleh persamaan sebagai berikut :
V=
1 Q idt atau V = ∫ C C
............................................( 2.3 )
Muatan mengalir dari potensial yang lebih tinggi ke potensial yang lebih rendah, yang menyatakan bahwa tenaga dapat dipindah dari rangkaian dan disimpan. Nilai tenaga yang disimpan dalam kapasitansi hanya bergantung pada besarnya tegangan dan tidak bergantung pada cara untuk mencapai besarnya tegangan tersebut. Tenaga yang tersimpan dikembalikan kepada rangkaian sewaktu tegangan direduksi ke nol.
2.2.3
IC LM35
Sensor suhu ini digunakan untuk mengetahui nilai besaran suhu. Pada tugas akhir ini alat sensor suhu yang digunakan adalah IC LM35. IC ini akan mengubah nilai suhu menjadi data analog berupa tegangan yang akan ditransferkan ke dalam mikrokontroler ATmega8515 sebagai data yang dicari. Cakupan (range) pengukuran yang bisa dilakukan oleh LM35 dengan nilai yang dihasilkan linear berkisar antara -550C sampai +1500C dengan tingkat ketelitian 0,750C .
14
2.3 TINJAUAN UMUM PERANGKAT LUNAK
Perangkat lunak adalah bagian dari sistem komputer yang berfungsi untuk mendukung perangkat keras (hardware). Perangkat lunak yang digunakan dalam Tugas Akhir ini merupakan bahasa pemrograman yang terdiri dari :
2.3.1
Bahasa C
Bahasa C merupakan bahasa tingkat menengah, yang memiliki kemampuan diatas bahasa assembly, serta memiliki kemudahan seperti bahasa tingkat tinggi lainnya.
Bahasa ini digunakan untuk mengatur kerja dari
Mikrokontroler ATmega8515. Bahasa C yang digunakan ini hampir semuanya sesuai dengan standar dari ANSI (American National Standards Institute) dengan penambahan beberapa fitur untuk menyesuaikan dengan arsitektur AVR dan sistem pada mikrokontroler. Program compiler C yang digunakan pada Tugas Akhir ini adalah CodeVisionAVR versi 1.23.7a Standar yang dapat diperoleh di website www.hpinfotech.ro.
2.3.2
Bahasa Rakitan (Assembly)
Bahasa lain yang digunakan adalah bahasa assembly. Bahasa assembly merupakan bahasa tingkat rendah yang berorientasi pada mesin. Prinsip mendasar pada bahasa assembly ialah dalam satu baris untuk satu perintah. Berbeda dengan bahasa mesin yang merupakan kumpulan kode biner, bahasa assembly menggunakan kode mnemonic (sesuatu yang memudahkan diingat) yang merupakan singkatan perintah untuk menggantikan kode biner. Program CodeVisionAVR juga mendukung bahasa assembly untuk menginisialisasikan port LCD dan global interupsi.
BAB III PERANCANGAN ALAT
Pembuatan rangkaian pengubah analog ke digital (analog to digital converter)
dilakukan
dengan
memanfaatkan
pembanding
analog
pada
mikrokontroler ATmega8515 dengan penambahan komponen eksternal resistor dan kapasitor. Kapasitor berfungsi sebagai penyimpan muatan dan dengan mengontrol salah satu pin pada port B untuk mencharg dan mendischarge kapsitor yakni untuk mengontrol kapasitor agar diberi muatan atau dikosongkan. Sinyal masukan yang akan diukur
dihubungkan dengan masukan pembalik
( AIN1 ) dan tegangan referensi dihubungkan dengan masukan bukan pembalik (AIN0). Nilai tegangan referensi diperoleh dengan mencharge kapasitor yang melalui resistor. Selama kapasitor sedang dicharge, tegangan yang melalui kapasitor tersebut akan mengikuti kurva exponensial, apabila range tegangan yang diukur terbatas sampai pada 2/5 dari Vcc ( 2/5*Vcc ) maka kurva tersebut akan mendekati garis lurus. Sedangkan nilai tegangan yang diukur diperoleh dengan menghitung waktu yang diperlukan oleh tegangan yang melalui kapasitor untuk mencapai tegangan yang digunakan. Perancangan tugas akhir ini pada dasarnya dibagi menjadi dua bagian, yaitu perancangan perangkat keras (hardware) dan perancangan perangkat lunak (software). Perancangan perangkat keras berupa penyusunan komponenkomponen sehingga menjadi satu kesatuan sistem rangkaian yang bisa bekerja sesuai dengan yang diharapkan. Perancangan perangkat lunak berupa bahasa pemrograman yang membuat sistem bisa bekerja sesuai dengan cara kerja alat. 3.3
PERANCANGAN PERANGKAT KERAS
Sistem perangkat keras “Pemanfaatan analog comparator internal Mikrokontroler sebagai analog digital converter” ini terdiri dari : 1.
Mikrokontroler ATmega8515, digunakan sebagai pengontrol dan pencacah waktu yang diperlukan untuk mencapai tegangan yang digunakan. 15
16
2.
Liquid Crystal Display (LCD), digunakan untuk menampilkan nilai suhu dan tegangan yang terukur .
3.
Rangkaian eksternal berupa resistor dan kapasitor sebagai rangkaian untuk membentuk rangkaian analog to digital converter.
Diagram blok sistem secara keseluruhan pada perancangan alat ini dapat dilihat pada Gambar 3.1 sebagai berikut :
Gambar 3.1 Diagram blok sistem.
3.3.1
RANGKAIAN SISTEM
Mikrokontroler ini dirancang sebagai suatu rangkaian single chip (Gambar 3.2), sehingga dalam perancangannya cukup dibutuhkan rangkaian eksternal berupa resistor dan kapasitor untuk membentuk rangkaian pengubah analog ke digital dan power supply. Penggunaan port-port untuk
rangkaian sistem pada Mikrokontroler
ATmega8515 adalah seperti ditunjukkan pada Tabel 3.1. Tabel 3.1 Penggunaan port-port pada ATmega8515.
Port ATmega8515 PA0-PA2, PA4 – PA7 Port A PB2 Port B PB3 PB4
Fungsi
Output ke LCD masukan ke bukan pembalik masukan ke pembalik men-charg dan discharge kapasitor
17
27 KΩ
Gambar 3.2 Bagan Rangkaian Sistem.
Rangkaian mikrokontroler ATmega8515 ini menggunakan osilator kristal eksternal sebagai pembangkit frekuensi internal (on chip osilator) sebesar 8 MHz yang dapat digunakan sebagai sumber detak bagi CPU. Untuk menggunakan osilator internal diperlukan sebuah kristal atau resonator keramik antara kaki Xtal1 dan kaki Xtal2 dan sebuah kapasitor ke ground. Pada port A pin 0-2, dan pin 4-7 diperuntukkan untuk tampilan LCD. Mode antarmuka LCD yang digunakan adalah mode 4 bit. Pada port B pin 2 dan 3 digunakan sebagai masukan ke pembanding analog yakni untuk tegangan referensi dan masukan nilai yang diukur
sedangkan pin 4 digunakan sebagai kontrol untuk men-charge dan
discharge muatan yang ke kapasitor.
3.3.2
LIQUID CRYSTAL DISPLAY (LCD)
Perangkat ini digunakan untuk menampilkan nilai hasil pengukuran terhadap tegangan masukan dan suhu yang berasal dari sensor IC LM35. Jenis LCD yang digunakan dalam perancangan Tugas Akhir ini adalah LCD matrix 2x16 seperti diperlihatkan pada Gambar 3.3.
18
Gambar 3.3 Rangkaian LCD M1632.
LCD ini dihubungkan pada port A mikrokontroler ATmega8515. Potensio 10 kΩ berfungsi untuk mengatur tegangan operasi LCD pada kaki VLCD. Besarnya tegangan pada kaki tersebut akan mempengaruhi ketajaman karakter yang tampak pada LCD.
3.4
PERANCANGAN PERANGKAT LUNAK
Pada tugas akhir ini bahasa pemrograman yang digunakan adalah bahasa C. Hal ini dikarenakan pemrograman mikrokontroler dengan menggunakan bahasa C akan lebih terstruktur dan mudah dipahami. Selain itu juga karena bahasa C merupakan gabungan dari bahasa tingkat tinggi dan juga tingkat rendah yang menyediakan kemampuan operasi-operasi bit, byte, pengaksesan alamatalamat memori, dan register. Bahasa C yang digunakan untuk memprogram mikrokontroler ini hampir semuanya sesuai dengan standar dari ANSI dengan penambahan beberapa fitur untuk menyesuaikan dengan arsitektur AVR dan sistem pada mikrokontroler.
19
3.4.1
DEKLARASI VARIABEL, FUNGSI, DAN FILE JUDUL (HEADER FILE) PROGRAM
Pada bagian ini berisi pendeklarasian variabel, fungsi, dan file judul (Header) dan juga definisi tipe variabel yang digunakan dalam pemrograman. Berikut senarai programnya: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
/********************************************* This program was produced by the CodeWizardAVR V1.23.7a Standard Automatic Program Generator © Copyright 1998-2002 HP InfoTech s.r.l. http://www.hpinfotech.ro e-mail:
[email protected] Project : PEMANFAATAN ANALOG COMPARATOR INTERNAL MIKROKONTROLER SEBAGAI ANALOG DIGITAL CONVERTER Studi Kasus pada Mikrokontroler ATMEL ATmega8515 dengan Pengukuran terhadap Suhu Version : Date : Author : Company : Comments:
Terbaru 7/14/2006 Nurdin Abdul Khafiz Electrical Engineering Diponegoro University
Chip type : ATmega8515 Program type : Application Clock frequency : 8.000000 MHz Memory model : Small Internal SRAM size : 512 External SRAM size : 0 Data Stack size : 128 *********************************************/ #include <mega8515.h> #include <stdio.h> #include <delay.h> #include <math.h> #asm .equ __lcd_port=0x1B #endasm #include
// Declare your global variables here char buf[33]; unsigned int x; float a,b,suhu,y,; void tampilan_awal (void); void mulai (void);
20
47. 48. 49. 50.
void void void void
hit_teg (void); tamp_hasil (void); tamp_error (void); temp (void);
Pada senarai program di atas baris ke-1 sampai 29 dan baris ke-40 merupakan suatu keterangan program atau dengan kata lain adalah suatu komentar. Fungsi dari komentar adalah untuk dokumentasi dengan maksud agar program mudah dipahami. Dalam C suatu komentar ditulis dengan diawali tanda /* ....
dan diakhiri dengan .... */ atau dengan cara lain ditulis dengan
tanda // untuk penggunaan komentar dalam satu baris. Pada saat proses kompilasi suatu komentar tidak akan diikutkan dalam proses kompilasi atau dengan kata lain tidak akan dikompile. Pada baris ke-31 #include <mega8515.h> berfungsi untuk memanggil header file mega8515.h. Header file atau dengan nama lain file judul adalah suatu file yang didalamnya berisi deklarasi fungsi dan definisi konstanta. Header file ini mempunyai ciri-ciri khusus yaitu pada akhir nama filenya diakhiri dengan extensi .h. Pada CodeVisionAVR versi 1.23.7a terdapat berbagai header file untuk keperluan pemrograman AVR. #include
merupakan suatu jenis pengarah
praprocecor yaitu pengarah yang digunakan untuk membaca suatu header file. Pada baris ke-35 #asm adalah suatu awal dari pengarah program assembly yang berfungsi untuk mengikutsertakan bahasa assembly dalam program C. Baris ke35 sampai baris ke-37 berfungsi memberitahukan bahwa PORTA digunakan untuk tampilan LCD. Variabel 0x1B memberitahukan kepada kompiler bahwa PORT yang digunakan untuk LCD adalah PORTA. Setelah menginisialisasi PORT yang digunakan untuk LCD, maka header file lcd.h dipanggil. Begitu pula pada baris ke-32 hingga 34 dan baris ke-38, yang berfungsi untuk memanggil header file lain. Baris ke-41 sampai baris ke-43 digunakan untuk deklarasi variabel yang digunakan. Baris ke-45 sampai baris ke-50 digunakan untuk inisialisasi suatu fungsi.
21
3.4.2
PROGRAM UTAMA
Bagian ini merupakan bagian utama dimana compiler akan melakukan inisialisasi dan pemanggilan fungsi-fungsi lain. Seperti pada Bahasa C yang biasa digunakan, fungsi main() merupakan fungsi istimewa. Hal ini karena fungsi ini merupakan titik awal dan titik akhir eksekusi program. Tanda { diawal fungsi merupakan awal tubuh fungsi dan sekaligus awal eksekusi program. Tanda } merupakan akhir tubuh fungsi dan juga akhir dari eksekusi program. Jika program terdiri dari lebih dari satu fungsi, maka fungsi
main()
biasanya ditempatkan
pada awal program. Hal ini merupakan sebuah kebiasaan dan bukan suatu keharusan dengan tujuan untuk memudahkan pencarian program utama. Diagram alir (flowchart) program utama ditunjukkan pada Gambar 3.4.
Gambar 3.4 Diagram alir program utama.
Implementasi diagram alir program utama sebagai berikut : 65. 66. 67. 68. 69. 70. 71.
void main(void) { lcd_init(16); tampilan_awal();
22
72. 73. 74. 75. 76. 77. 78. 79. 80. 81.
// deklarasi Global enable interrupts #asm("sei") while (1) { mulai(); } }
Pertama kali program akan menginisialisasi LCD yang ditempatkan di port A. Pada bagian sebelum ini, program telah mengikutkan file header yang bernama lcd.h.
Argumen 16 dimaksudkan agar LCD siap diberikan karakter sejumlah 16
kolom. Secara default fungsi ini memerintahkan lcd untuk menulis karakter dari baris pertama kolom pertama, dari kiri ke kanan, tanpa ada pergeseran karakter, dan tanpa blink. Fungsi tampilan_awal() berisi tentang tulisan ” ANALOG to DIGITAL CONVERTER ” yang berada pada fungsi tampilan_awal(). Pada baris ke-73 #asm(”sei”)
adalah suatu pengarah program assembly yang berfungsi untuk
mengikut sertakan bahasa assembly dalam program C yakni deklarasi adanya interupsi. Fungsi mulai() merupakan inti dari perancangan tugas akhir ini. Ketika fungsi mulai() dipanggil, maka mikrokontroler akan mengaktifkan register timer/counter1, untuk mereset waktu ke nol dan menghitung waktu yang diperlukan oleh tegangan yang kapasitor untuk mencapai nilai tegangan yang digunakan. Fungsi mulai() mengalami proses berulang (looping) selama sistem masih dalam keadaan on. Hal ini terjadi karena digunakan perintah while(1) pada baris ke-75. Nilai 1 diberikan agar mikrokontroler tetap menganggap bahwa kondisi selalu terpenuhi (1 berarti ya atau nyala). 3.4.3
RUTIN PELAYANAN INTERUPSI
Bagian ini merupakan bagian program dimana apabila terjadi interupsi maka bagian ini akan dikerjakan terlebih dahulu. Pada tugas akhir ini interupsi ini
23
digunakan untuk menghentikan proses pencacahan dan untuk menguras muatan pada kapasitor dengan mengontrol pin 4 port B dan melakukan penghitungan nilai tegangan input. Berikut diagram alir program rutin pelayanan interupsi pembanding analog .
Mulai
Hentikan Pencacah
Kuras Muatan pada Kapasitor
Hitung nilai tegangan
Delay 500 ms
Selesai
Gambar 3.5 Diagram alir rutin pelayanan interupsi.
Senarai program dari rutin pelayanan interupsi adalah sebagai berikut : 54. 55. 56. 57. 58. 59. 60. 61. 62.
interrupt [ANA_COMP] void ana_comp_isr(void) { TCCR1B=0x00; PORTB=0x00; hit_teg(); delay_ms(500); }
Ketika interupsi analog comparator terjadi maka program akan langsung melompat ke rutin pelayanan interupsi ini. Program rutin layanan interupsi ini diawali dengan penghentian pencacahan yakni dengan perintah TCCR1B=0x00 pada baris ke-57. kemudian dilanjutkan dengan pengurasan muatan pada kapasitor yakni dengan perintah
PORTB=0x00.
Perhitungan nilai tegangan
masukan
dilakukan dengan memanggil fungsi hit_teg(). Delay 500 ms digunakan agar
24
pengurasan muatan kapasitor benar-benar sempurna. Setelah mikrokontroler selesai mengerjakan perintah maka mikrokontroler akan kembali kepada program yang telah ditinggalkan sebelumnya karena adanya interupsi. 3.2.4
FUNGSI MULAI
Fungsi ini merupakan fungsi yang berfungsi untuk mulai melakukan kerja dari sistem ini yakni mulai untuk melakukan pengurasan muatan pada kapasitor, hal ini dilakukan untuk memastikan pengurasan muatan kapasitor, dan pegisian kapasitor dan menginisialisasi penggunaan pembanding analog serta pengaktifan fasilitas pencacah. Diagram alir fungsi mulai() ditunjukkan pada Gambar 3.6
. Gambar 3.6 Diagram alir fungsi mulai()
Senarai program dari fungsi mulai() adalah sebagai berikut : 100. 101. 102. 103. 104. 105. 106. 107. 108. 109.
void mulai (void) { DDRB=0x10; PORTB=0x00; TCNT1=0x00; delay_ms(50); PORTB=0x10; ACSR=0x2F; TCCR1B=0x01;
25
110. 111. 112.
delay_us(100); }
Fungsi mulai() dimulai dengan menentukan port keluaran ( output ) pada salah satu pin pada port B yakni pin 4 dengan perintah DDRB=0x1 pada baris ke102. Kemudian untuk memastikan pengurasan muatan pada kapasitor digunakan perintah PORTB=0x00 seperti terlihat pada baris TCNT1=0x00
ke-103. Pada baris ke-104,
merupakan perintah penghentian Timer/Counter.
Setelah proses
pengurasan muatan kapasitor selasai dilanjutkan dengan proses pengisian muatan kapsitor yakni dengan perintah PORTB=0x10 pada baris ke-106. Pengaktifan dan inisialisai pembanding analog ( analog comparator ) dilakukan dengan perintah ACSR=0x2F
pada baris ke-108. Pencacah diaktifkan dengan register TCCR1B=0x01
pada baris ke-109. Bit 0, 1 dan 2 pada TCCR1B merupakan bit untuk mengatur Clock Select. Pada baris ke-110, delay_us(100) merupakan lamanya waktu untuk melakukan pengisian pada kapsitor yakni selama 100 mikrodetik. 3.2.5
FUNGSI HIT_TEG
Fungsi hit_teg() berguna untuk menghitung nilai tegangan yang diukur. Fungsi hit_teg() merupakan fungsi hasil perumusan nilai tegangan referensi yang telah diperoleh melalui percobaan. Besarnya nilai tegangan yang diukur diperoleh berdasarkan waktu yang diperlukan oleh tegangan tersebut melalui kapasitor untuk mencapai tegangan yang digunakan. Diagram alir fungsi hit_teg()
diperlihatkan pada lampiran diagram alir halaman A-3 sampai dengan
A-6. Demikian pula senarai
program fungsi hit_teg() dapat dilihat pada
lampiran senarai program halaman B-2 sampai dengan halaman B-12. Awal program dimulai dengan inisialisasi x sebagai TCNT1 dan y merupakan permisalan nilai tegangan yang dihitung. Karena tegangan referensi yang diperoleh tidaklah benar-benar membentuk garis linear maka untuk menghitung tegangan terukur digunakan perumusan pendekatan dua titik yang masih linier ( interpolasi ). Persamaan umumnya adalah sebagai berikut :
26
y − y1 x − x1 = y 2 − y1 x 2 − x1
................................................................... ( 3.1 )
Pada persamaan yang telah diperoleh terdapat intruksi float yang berarti untuk dapat menampilkan bilangan real. Setelah proses penghitungan nilai tegangan yang diukur selesai maka program akan memanggil fungsi temp() dan fungsi tamp_hasil (). Fungsi temp () akan mengkonversi nilai tegangan yang diperoleh ke dalam besaran nilai suhu dan fungsi tamp_hasil akan menampilkan besarnya nilai suhu dan tegangan. Apabila tegangan yang diukur melebihi 2 Volt maka program akan memanggil fungsi error() yang akan menampilkan pada LCD tulisan ” Maaf Melebihi Range Pengukuran ” karena pengukuran yang diizinkan adalah 0 -2 Volt . 3.2.6
FUNGSI TAMP_HASIL
Fungsi tamp_hasil() berguna untuk menampilkan hasil dari setiap pengukuran yang dilakukan. Dalam bahasa C, senarai dari fungsi tamp_hasil() adalah sebagai berikut : 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693.
void tamp_hasil (void) { lcd_clear(); sprintf(buf,"Suhu=%3.1f%c",suhu,0xDF); lcd_gotoxy(1,0); lcd_puts(buf); sprintf(buf,"Teg(mv)=%4.0f",y); lcd_gotoxy(1,1); lcd_puts(buf); delay_ms(500); }
Pertama kali fungsi tamp_hasil () akan mengosongkan LCD dengan perintah
lcd_clear().
Pada
baris
sprintf(buf,"Suhu=%3.1f%c",suhu,0xDF)
ke-684
merupakan
intruksi
perintah untuk
menuliskan tiga digit angka dengan satu digit di belakang koma dan perintah lcd_gotoxy(1,0)
pada
baris
pada baris ke-685 merupakan intruksi agar karakter diletakkan
pertama
dan
kolom
sprintf(buf,"Teg(mv)=%4.0f",y)
kedua.
Demkian
juga
perintah
pada baris ke-688 merupakan intruksi untuk
27
menuliskan empat digit nilai tanpa dan perintah lcd_gotoxy(1,1) pada baris ke-689 merupakan intruksi agar karakter diletakkan pada baris kedua dan kolom kedua. Sedangkan pada baris ke- 686 dan 690 perintah perintah lcd_puts(buf) merupakan perintah untuk menuliskan isi variabel delay_ms(500)merupakan intruksi
3.2.7
buf
ke LCD. Perintah
waktu tunda selama 500 milidetik.
FUNGSI TAMP_ERROR
Fungsi tamp_error() berguna untuk menampilkan peringatan apabila pengukuran melebihi range maksimal yakni diatas 2 Volt. Dalam bahasa C, senarai dari fungsi tamp_error() adalah sebagai berikut : 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706.
void tamp_error (void) { lcd_clear(); sprintf(buf,"Maaf Melebihi",); lcd_gotoxy(2,0); lcd_puts(buf); sprintf(buf,"Range Pengukuran",); lcd_gotoxy(0,1); lcd_puts(buf); delay_ms(300); }
Pertama kali fungsi tamp_error () akan perintah lcd_clear(). Melebihi",)
mengosongkan LCD dengan
Pada baris ke-698 perintah sprintf(buf,"Maaf
merupakan intruksi untuk menuliskan kata ”Maaf Melebihi” dan
perintah lcd_gotoxy(2,0) pada baris ke-699 merupakan intruksi agar karakter diletakkan pada baris pertama dan kolom ketiga. Demkian juga perintah sprintf(buf,"Range Pengukuran",)
pada baris ke-702 merupakan intruksi
untuk menuliskan kata ”Range Pengukuran” dan
perintah lcd_gotoxy(0,1)
pada baris ke-703 merupakan intruksi agar karakter diletakkan pada baris kedua dan kolom pertama. Sedangkan pada baris ke-700 dan 704 perintah perintah lcd_puts(buf)
merupakan perintah untuk menuliskan isi variabel buf ke LCD.
Perintah delay_ms(300)merupakan intruksi waktu tunda selama 300 milidetik
28
3.2.8
FUNGSI TEMP
Fungsi temp()digunakan untuk melakukan konversi nilai tegangan yang diperoleh ke dalam nilai derajat suhu. Dalam bahasa C, senarai dari fungsi temp () adalah sebagai
708. 709. 710. 711.
berikut :
void (void) { suhu=(float)y/10; }
Pada baris ke-710 merupakan bentuk konversi nilai tegangan yang diperoleh untuk menjadi nilai derajat suhu. Pembagi 10 digunakan karena pada IC LM35 kenaikan suhu satu derajat ( 10 C) adalah setiap 10 mVolt.
BAB IV PENGUJIAN DAN ANALISA ALAT
Pada bab pengujian dan analisa alat ini dilakukan dua pengujian, pertama dengan masukan berupa tegangan dan kedua dengan melakukan pengukuran terhadap suhu dan hasilnya akan dibandingkan melalui
pengukuran dengan
menggunakan termometer biasa. 4.1
PENGUJIAN ALAT DENGAN MASUKAN TEGANGAN
Pada pengujian ini, rangkaian
analog to digital converter ( ADC )
rancangan digunakan untuk melakukan pengukuran tegangan masukan. Kemudian hasil dari pengukuran ini dibandingkan dengan hasil pengukuran dengan menggunakan multimeter digital. Skema rangkaian pengujian seperti pada gambar 4.1
. Gambar 4.1 Skema rangkaian pengujian alat dengan pengukuran terhadap tegangan masukan
Gambar 4.2 merupakan hasil pengujian ADC rancangan dengan masukan berupa tegangan dari rangkaian pembanding tegangan. Hasil pengujian rangkaian
29
30
ADC rancangan dengan tegangan sebagai masukan diperlihatkan seperti pada Tabel 4.1.
Gambar 4.2 Hasil pengujian dengan tegangan sebagai masukan Tabel 4.1 Hasil pengujian dengan tegangan sebagai masukan Tegangan Input (mV) 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000
Nilai Tegangan pada Multimeter Digital (mV) 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000
Nilai Tegangan pada LCD Mikrokontroler ATmega8515 (mV) 50 110 150 210 260 320 370 420 470 530 580 630 690 740 790 840 890 950 990 1040 Rata-rata kesalahan
Selisih (mV) 0 10 0 10 10 20 20 20 20 30 30 30 40 40 40 40 40 50 40 40 26,5
Dari data pengukuran nilai tegangan masukan dengan menggunakan rangkaian pembanding tegangan diperoleh adanya selisih antara pengukuran dengan menggunakan multimeter pabrikan dengan pengukuran ADC hasil rancangan.
31
Perbedaan nilai pengukuran ini terjadi karena tegangan referensi yang diperoleh pada kenyataannya tidak benar-benar linier sebagai mana yang diharapkan. Sehingga mempengaruhi pada hasil perhitungan nilai tegangan yang diukur. Faktor toleransi dari masing-masing komponen sehingga menyebabkan adanya sedikit penyimpangan dari kondisi idealnya. 4.2
PENGUJIAN ALAT DENGAN MELAKUKAN PENGUKURAN TERHADAP SUHU
Pada pengujian ini, sebagai media untuk mengetahui adanya perubahan suhu adalah dengan menggunakan air yang dipanaskan dengan heater. Rangkaian analog to digital converter ( ADC ) yang telah dibuat ini digunakan untuk
melakukan pengukuran terhadap suhu. Kemudian hasil dari pengukuran ini dibandingkan dengan hasil pengukuran dengan menggunakan termometer. Skema rangkaian pengujian seperti pada gambar 4.3.
27 KΩ
Gambar 4.3 Skema rangkaian pengujian alat dengan pengukuran terhadap suhu.
Gambar 4.4 merupakan hasil pengujian ADC rancangan dengan pengukuran terhadap suhu. Hasil pengukuran rangkaian ADC rancangan terhadap suhu diperlihatkan seperti pada Tabel 4.2.
32
Gambar 4.4 Hasil pengujian dengan pengukuran terhadap suhu Tabel 4.2 Hasil pengukuran terhadap suhu No.
Suhu yang tampak pada Termometer ( 0C)
1 2 3 4 5 6 7 8 9 10
34 36 37 38,5 41 42 43 45 48 50
Suhu yang tampak pada LCD ( 0C )
35 37 38 39 41 42 43 46 49 51 Rata – rata kesalahan
Selisih ( 0C ) 1 1 1 0,5 0 0 0 1 1 1 0,65
Dari data tersebut ternyata diperoleh nilai suhu yang terukur dengan ADC rancangan mendekati nilai suhu yang terukur pada termometer. Perbedaan nilai ini karena tegangan referensi yang diperoleh pada kenyataannya tidak benar-benar linier sebagai mana yang diharapkan. Sehingga berpengaruh pada perhitungan. Adanya faktor toleransi dari masing-masing komponen juga dapat menyebabkan adanya sedikit penyimpangan dari kondisi idealnya.
BAB V PENUTUP 5.1.
KESIMPULAN
Dari hasil perancangan dan pembuatan alat analog to digital converter menggunakan mikrokontroler ATmega8515 serta pengujian yang telah dilakukan dapat diambil kesimpulan sebagai berikut : 1.
Adanya
pembanding
analog
(
analog
comparator
)
pada
mikrokontroler ATmega8515 dapat dimanfaatkan sebagai analog to digital converter dengan penambahan komponen eksternal berupa
kapasitor dan resistor. 2.
Pada pengujian dengan tegangan sebagai masukan diperoleh nilai rata-rata kesalahan sebesar 26,5 mVolt. Dan
rata-rata kesalahan
pada pengujian dengan pengukuran terhadap suhu adalah sebesar 0,65 mVolt. 3.
Pada pengujian ADC rancangan diperoleh hasil pengukuran terhadap suhu mendekati suhu yang terukur pada termometer.
4.
Tegangan referensi yang tidak benar – benar linier dan toleransi harga dari suatu komponen berpengaruh pada ketelitian pengukuran.
5.2.
SARAN
Dari hasil perancangan dan pembuatan alat analog digital converter menggunakan mikrokontroler ATmega8515 serta pengujian yang telah dilakukan dapat diberikan saran-saran sebagai berikut : 1.
Karena ketelitian dari ADC yang dibuat masih kurang bagus maka disarankan dengan menggunakan metode lain tapi tetap dengan memanfaatkan pembanding analog yang ada pada mikroprosesor sehingga dapat dibuat ADC dengan ketelitian yang lebih bagus.
33
DAFTAR PUSTAKA
[1]
David Cooper, W, Instrumentasi Elektronik dan Teknik Pengukuran, Erlangga, Jakarta, 1994.
[2]
Kadir, A., Pemrograman Dasar Turbo C untuk IBM PC, ANDI Offset, Yogyakarta, 1997.
[3]
Malvino, A. P., Prinsip-prinsip Elektronik, Edisi Kedua, Erlangga, Jakarta, 1999.
[4]
Millman, Jacob, Mikroelektronika : Sistem Digital dan Rangkaian Analog, Jilid 2, Erlangga, Jakarta, 1992.
[5]
Wollard, Barry, Elektronika Praktis, Pradnya Paramitha, Jakarta, 1988.
[6]
---, 8-bit AVR Microcontroller instruction set , http://www.atmel.com, 2005.
[7]
---, 8-bit Microcontroller with 8 K Bytes Flash, ATmega8515 datasheet, http://www.atmel.com, 2005.
[8]
---, Application Notes, http://www.atmel.com/avr
[9]
---, CodeVisionAVR User Manual, Version 1.0.1.7, HP InfoTech, 2001.
[10]
---, Instruction Set, http://www.atmel.com.
34
BIODATA MAHASISWA
Nama Mahasiswa
: Nurdin Abdul Khafiz
NIM
: L2F099625
Konsentrasi
: Kontrol
Tempat / Tgl. Lahir : Brebes / 19 Agustus 1979 Alamat Sekarang
: Jl. Banjarsari Gg. Tirtasari No. 121 RT 02/II Tembalang Semarang 50275
No. Telepon / HP
: 081325189022
Alamat e-mail
: [email protected]
Nama Orang Tua
: Bahowi Oesman - Maemunah
Alamat Orang Tua : Jl. Daha No. 9 RT 03/VII Jatisawit - Bumiayu Brebes 52273 No. Telepon
: 0289– 432810
IP Kumulatif
: 2,78
Tanggal Lulus
: 28 Agustus 2006
Masa Studi
: 7 Tahun
Semarang, Agustus 2006
Nurdin Abdul Khafiz
35
LAMPIRAN A DIAGRAM ALIR PROGRAM
Gambar A.1 Diagram alir program utama.
Mulai
Hentikan Pencacah
Kuras Muatan pada Kapasitor
Hitung nilai tegangan
Delay 500 ms
Selesai
Gambar A.2 Diagram alir rutin pelayanan interupsi
A-1
Gambar A.3 Diagram alir fungsi mulai().
A-2
A-3
A-4
A-5
Gambar A.4 Diagram alir fungsi hit_teg().
A-6
LAMPIRAN B SENARAI PROGRAM
ALUR PROGRAM PERANCANGAN ANALOG TO DIGITAL CONVERTER
1. 2. 3. 4. 5. 6. 7. 8. 9.
/********************************************* This program was produced by the CodeWizardAVR V1.23.7a Standard Automatic Program Generator © Copyright 1998-2002 HP InfoTech s.r.l. http://www.hpinfotech.ro e-mail:[email protected] Project
:
PEMANFAATAN
ANALOG
COMPARATOR
INTERNAL
MIKROKONTROLER
10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51.
SEBAGAI ANALOG DIGITAL CONVERTER
Studi Kasus pada Mikrokontroler ATMEL ATmega8515 dengan Pengukuran terhadap Suhu Version : Date : 7/14/2006 Author : Nurdin Abdul Khafiz Company : Electrical Engineering Diponegoro University Comments:
Chip type : ATmega8515 Program type : Application Clock frequency : 8.000000 MHz Memory model : Small Internal SRAM size : 512 External SRAM size : 0 Data Stack size : 128 *********************************************/ #include <mega8515.h> #include <stdio.h> #include <delay.h> #include <math.h> #asm .equ __lcd_port=0x1B #endasm #include char buf[33]; unsigned int x; float a,b,suhu,y,; void void void void void void
tampilan_awal (void); mulai (void); hit_teg (void); tamp_hasil (void); tamp_error (void); temp (void);
B-1
52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107.
// deklarasi interupsi Analog Comparator interrupt [ANA_COMP] void ana_comp_isr(void) { TCCR1B=0x00; PORTB=0x00; hit_teg(); delay_ms(500); } void main(void) { lcd_init(16); tampilan_awal(); // deklarasi Global enable interrupts #asm("sei")
while (1) { mulai(); } }
void tampilan_awal (void) { lcd_gotoxy(0,0); lcd_putsf("ANALOGtoDIGITAL"); lcd_gotoxy(3,1); lcd_putsf("CONVERTER"); delay_ms(2000); lcd_gotoxy(0,0); lcd_clear(); lcd_gotoxy(3,1); lcd_clear();
} void mulai (void) { DDRB=0x10; PORTB=0x00; TCNT1=0x00; delay_ms(50); PORTB=0x10;
B-2
108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163.
ACSR=0x2F; TCCR1B=0x01; delay_us(100);
} void hit_teg (void) { x=TCNT1;
if (x<=67) { a=5;b=205; y=(float)5*x-205; temp(); tamp_hasil(); } else if (x<=91) { a=5;b=215; y=(float)5*x-215; temp(); tamp_hasil(); } else if (x<=111) { a=5;b=225; y=(float)5*x-225; temp(); tamp_hasil(); } else if (x<=125) { a=5;b=235; y=(float)5*x-235; temp(); tamp_hasil(); } else if (x<=141) { a=5;b=245; y=(float)5*x-245;
B-3
164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219.
temp(); tamp_hasil(); } else if (x<=153) { a=5;b=255; y=(float)5*x-255; temp(); tamp_hasil(); } else if (x<=165) { a=5;b=265; y=(float)5*x-265; temp(); tamp_hasil(); } else if(x<=177) { a=5;b=275; y=(float)5*x-275; temp(); tamp_hasil(); } else if (x<=187) { a=5;b=285; y=(float)5*x-285; temp(); tamp_hasil(); } else if (x<=197) { a=5;b=295; y=(float)5*x-295; temp(); tamp_hasil(); } else if (x<=209) { a=5;b=305; y=(float)5*x-305; temp(); tamp_hasil();
B-4
220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275.
} else if (x<=217) { a=5;b=315; y=(float)5*x-315; temp(); tamp_hasil(); } else if (x<=227) { a=5;b=325; y=(float)5*x-325; temp(); tamp_hasil(); } else if (x<=235) { a=5;b=335; y=(float)5*x-335; temp(); tamp_hasil(); } else if (x<=245) { a=5;b=345; y=(float)5*x-345; temp(); tamp_hasil(); } else if (x<=253) { a=5;b=355; y=(float)5*x-355; temp(); tamp_hasil(); } else if (x<=261) { a=5;b=365; y=(float)5*x-365; temp(); tamp_hasil(); } else
B-5
276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331.
if (x<=269) { a=5;b=375; y=(float)5*x-375; temp(); tamp_hasil();; } else if (x<=279) { a=5;b=385; y=(float)5*x-385; temp(); tamp_hasil(); } else if (x<=287) { a=5;b=395; y=(float)5*x-395; temp(); tamp_hasil(); } else if (x<=293) { a=5;b=405; y=(float)5*x-405; temp(); tamp_hasil(); } else if (x<=301) { a=5;b=415; y=(float)5*x-415; temp(); tamp_hasil(); } else if (x<=307) { a=5;b=425; y=(float)5*x-425; temp(); tamp_hasil(); } else if (x<=313) {
B-6
332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387.
a=5;b=435; y=(float)5*x-435; temp(); tamp_hasil(); } else if (x<=319) { a=5;b=445; y=(float)5*x-445; temp(); tamp_hasil(); } else if (x<=327) { a=5;b=455; y=(float)5*x-455; temp(); tamp_hasil(); } else if (x<=333) { a=5;b=465; y=(float)5*x-465; temp(); tamp_hasil(); } else if (x<=339) { a=5;b=475; y=(float)5*x-475; temp(); tamp_hasil(); } else if (x<=347) { a=5;b=485; y=(float)5*x-485; temp(); tamp_hasil(); } else if (x<=355) { a=5;b=495;
B-7
388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443.
y=(float)5*x-495; temp(); tamp_hasil(); } else if (x<=359) { a=5;b=505; y=(float)5*x-505; temp(); tamp_hasil(); } else if (x<=365) { a=5;b=515; y=(float)5*x-515; temp(); tamp_hasil(); } else if (x<=371) { a=5;b=525; y=(float)5*x-525; temp(); tamp_hasil(); } else if (x<=377) { a=5;b=535; y=(float)5*x-535; temp(); tamp_hasil(); } else if (x<=383) { a=5;b=545; y=(float)5*x-545; temp(); tamp_hasil(); } else if (x<=389) { a=5;b=555; y=(float)5*x-555;
B-8
444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499.
temp(); tamp_hasil(); } else if (x<=397) { a=5;b=575; y=(float)5*x-575; temp(); tamp_hasil(); } else if (x<=403) { a=5;b=585; y=(float)5*x-585; temp(); tamp_hasil(); } else if (x<=409) { a=5;b=595; y=(float)5*x-595; temp(); tamp_hasil(); } else if (x<=413) { a=5;b=605; y=(float)5*x-605; temp(); tamp_hasil(); } else if (x<=419) { a=5;b=615; y=(float)5*x-615; temp(); tamp_hasil(); } else if (x<=425) { a=5;b=625; y=(float)5*x-625; temp();
B-9
500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555.
tamp_hasil(); } else if (x<=429) { a=5;b=635; y=(float)5*x-635; temp(); tamp_hasil(); } else if (429<x<=435) { a=5;b=645; y=(float)5*x-645; temp(); tamp_hasil(); } else if (x<=439) { a=5;b=655; y=(float)5*x-655; temp(); tamp_hasil(); } else if (x<=445) { a=5;b=665; y=(float)5*x-665; temp(); tamp_hasil(); } else if (x<=449) { a=5;b=675; y=(float)5*x-675; temp(); tamp_hasil(); } else if (x<=455) { a=5;b=685; y=(float)5*x-685; temp(); tamp_hasil(); }
B-10
556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611.
else if (x<=459) { a=5;b=695; y=(float)5*x-695; temp(); tamp_hasil(); } else if (x<=465) { a=5;b=705; y=(float)5*x-705; temp(); tamp_hasil(); } else if (x<=469) { a=5;b=715; y=(float)5*x-715; temp(); tamp_hasil(); } else if (x<=475) { a=5;b=725; y=(float)5*x-725; temp(); tamp_hasil(); } else if (x<=479) { a=5;b=735; y=(float)5*x-735; temp(); tamp_hasil(); } else if (x<=485) { a=5;b=745; y=(float)5*x-745; temp(); tamp_hasil(); } else if (x<=491)
B-11
612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. 657. 658. 659. 660. 661. 662. 663. 664. 665. 666. 667.
{ a=5;b=755; y=(float)5*x-755; temp(); tamp_hasil(); } else if (x<=503) { a=2.5;b=-467.5; y=(float)(2.5*x)+467.5; temp(); tamp_hasil(); } else if (x<=523) { a=2.5;b=-472.5; y=(float)(2.5*x)+472.5; temp(); tamp_hasil(); } else if (x<=541) { a=2.5;b=-477.5; y=(float)(2.5*x)+477.5; temp(); tamp_hasil(); } else if (x<=563) { a=2.5;b=-482.5; y=(float)(2.5*x)+482.5; temp(); tamp_hasil(); } else if (x<=589) { a=2.5;b=-487.5; y=(float)(2.5*x)+487.5; temp(); tamp_hasil(); } else if (x<=603) { a=2.5;b=-492.5;
B-12
668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679. 680. 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712.
y=(float)(2.5*x)+492.5; temp(); tamp_hasil(); } else if (x>603) { tamp_error(); } }
void tamp_hasil (void) { lcd_clear(); sprintf(buf,"Suhu=%3.1f%c",suhu,0xDF); lcd_gotoxy(1,0); lcd_puts(buf); sprintf(buf,"Teg(mv)=%4.0f",y); lcd_gotoxy(1,1); lcd_puts(buf); delay_ms(500); } void tamp_error (void) { lcd_clear(); sprintf(buf,"Maaf Melebihi",); lcd_gotoxy(2,0); lcd_puts(buf); sprintf(buf,"Range Pengukuran",); lcd_gotoxy(0,1); lcd_puts(buf); delay_ms(300); } void temp (void) { suhu=(float)y/10; }
B-13
LAMPIRAN C DIAGRAM SKEMATIK RANGKAIAN
Rangkaian Resistor dan Kapasitor
LCD ATmega 8515
Vin
Gambar C.1 Diagram blok sistem.
27 KΩ
Gambar C.2 Bagan rangkaian sistem
C-1
Gambar C.3 Rangkaian LCD M1632.
Gambar C.4 Skema rangkaian pengujian alat dengan pengukuran terhadap tegangan masukan.
C-2
27 KΩ
Gambar C.5 Skema rangkaian pengujian alat dengan pengukuran terhadap suhu.
C-3
LAMPIRAN D FOTO ALAT
Gambar D-1 Tampak depan alat analog to digital converter
Gambar D-2 Tampak atas alat analog to digital converter
Gambar D-3 Tampilan alat dan pemanas air ( heater )
D-1
Gambar D-4 Tampilan nilai tegangan masukan 50 mV
Gambar D-5 Tampilan nilai tegangan masukan 100 mV
Gambar D-6 Tampilan nilai tegangan masukan 400 mV
Gambar D-7 Tampilan nilai tegangan masukan 500 mV
D-2
Gambar D-8 Tampilan pengukuran suhu 330 C
Gambar D-9 Tampilan pengukuran suhu 360 C
Gambar D-10 Tampilan pengukuran suhu 420 C
Gambar D-11 Tampilan pengukuran suhu 480 C
D-3
LAMPIRAN E DATA SHEET Atmega 8515 IC LM35