Upload
vothu
View
220
Download
0
Embed Size (px)
Citation preview
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 dan
semangatnya.
vi
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 PENDAHULUAN
1.1 Latar Belakang ....................................................................... 1
1.2 Tujuan Penelitian ................................................................... 1
1.3 Batasan Masalah..................................................................... 2
1.4 Sistematika Penulisan............................................................. 2
BAB II 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 ....................................... 14
viii
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
3.2 Perancangan Perangkat Lunak ........................................... 18
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 ........................ 29
4.2 Pengujian Alat dengan Melakukan Pengukuran
Terhadap suhu .................................................................... 31
BAB V 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
terhadap suhu. ....................................................................... 31
Gambar 4.4 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 ( analog
comparator ) pada mikrokontroler ATMEL ATmega8515.
1
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.
2
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 hal-
hal yang sudah dilakukan oleh penulis.
3
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
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.
5
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
6
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
7
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.
8
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
9
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,
10
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.
11
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.
12
VQC = ......................................................( 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.
dtdvCi= ...................................................................( 2.2 )
dengan mengintegralkan persamaan ( 2.2 ) maka diperoleh persamaan sebagai
berikut :
∫= idtC
V 1 atau CQV = ............................................( 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 .
13
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.
14
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 komponen-
komponen 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
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 Fungsi Port A PA0-PA2, PA4 – PA7 Output ke LCD
PB2 masukan ke bukan pembalik PB3 masukan ke pembalik
Port B
PB4 men-charg dan discharge kapasitor
16
ΩK27
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.
17
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 alamat-
alamat 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.
18
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. This program was produced by the 3. CodeWizardAVR V1.23.7a Standard 4. Automatic Program Generator 5. © Copyright 1998-2002 HP InfoTech s.r.l. 6. http://www.hpinfotech.ro 7. e-mail:[email protected] 8. 9. Project : PEMANFAATAN ANALOG COMPARATOR INTERNAL 10. MIKROKONTROLER SEBAGAI ANALOG DIGITAL CONVERTER 11. 12. Studi Kasus pada Mikrokontroler ATMEL ATmega8515 13. dengan Pengukuran terhadap Suhu 14. 15. Version : Terbaru 16. Date : 7/14/2006 17. Author : Nurdin Abdul Khafiz 18. Company : Electrical Engineering Diponegoro University 19. Comments: 20. 21. 22. Chip type : ATmega8515 23. Program type : Application 24. Clock frequency : 8.000000 MHz 25. Memory model : Small 26. Internal SRAM size : 512 27. External SRAM size : 0 28. Data Stack size : 128 29. *********************************************/ 30. 31. #include <mega8515.h> 32. #include <stdio.h> 33. #include <delay.h> 34. #include <math.h> 35. #asm 36. .equ __lcd_port=0x1B 37. #endasm 38. #include <lcd.h> 39. 40. // Declare your global variables here 41. char buf[33]; 42. unsigned int x; 43. float a,b,suhu,y,; 44. 45. void tampilan_awal (void); 46. void mulai (void);
19
47. void hit_teg (void); 48. void tamp_hasil (void); 49. void tamp_error (void); 50. 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 ke-
35 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.
20
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. void main(void) 66. 67. 68. lcd_init(16); 69. 70. tampilan_awal(); 71.
21
72. // deklarasi Global enable interrupts 73. #asm("sei") 74. 75. while (1) 76. 77. mulai(); 78. 79. 80. 81.
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
22
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 padaKapasitor
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. interrupt [ANA_COMP] 55. void ana_comp_isr(void) 56. 57. TCCR1B=0x00; 58. PORTB=0x00; 59. hit_teg(); 60. delay_ms(500); 61. 62.
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
23
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. void mulai (void) 101. 102. DDRB=0x10; 103. PORTB=0x00; 104. TCNT1=0x00; 105. delay_ms(50); 106. PORTB=0x10; 107. 108. ACSR=0x2F; 109. TCCR1B=0x01;
24
110. delay_us(100); 111. 112.
Fungsi mulai() dimulai dengan menentukan port keluaran ( output ) pada
salah satu pin pada port B yakni pin 4 dengan perintah DDRB=0x1 pada baris ke-
102. Kemudian untuk memastikan pengurasan muatan pada kapasitor digunakan
perintah PORTB=0x00 seperti terlihat pada baris ke-103. Pada baris ke-104,
TCNT1=0x00 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 :
25
12
1
12
1
xxxx
yyyy
−−
=−− ................................................................... ( 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. void tamp_hasil (void) 682. 683. lcd_clear(); 684. sprintf(buf,"Suhu=%3.1f%c",suhu,0xDF); 685. lcd_gotoxy(1,0); 686. lcd_puts(buf); 687. 688. sprintf(buf,"Teg(mv)=%4.0f",y); 689. lcd_gotoxy(1,1); 690. lcd_puts(buf); 691. delay_ms(500); 692. 693.
Pertama kali fungsi tamp_hasil () akan mengosongkan LCD dengan
perintah lcd_clear(). Pada baris ke-684 perintah
sprintf(buf,"Suhu=%3.1f%c",suhu,0xDF) merupakan intruksi untuk
menuliskan tiga digit angka dengan satu digit di belakang koma dan perintah
lcd_gotoxy(1,0) pada baris ke-685 merupakan intruksi agar karakter diletakkan
pada baris pertama dan kolom kedua. Demkian juga perintah
sprintf(buf,"Teg(mv)=%4.0f",y) pada baris ke-688 merupakan intruksi untuk
26
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 buf ke LCD. Perintah
delay_ms(500)merupakan intruksi waktu tunda selama 500 milidetik.
3.2.7 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. void tamp_error (void) 696. 697. lcd_clear(); 698. sprintf(buf,"Maaf Melebihi",); 699. lcd_gotoxy(2,0); 700. lcd_puts(buf); 701. 702. sprintf(buf,"Range Pengukuran",); 703. lcd_gotoxy(0,1); 704. lcd_puts(buf); 705. delay_ms(300); 706.
Pertama kali fungsi tamp_error () akan mengosongkan LCD dengan
perintah lcd_clear(). Pada baris ke-698 perintah sprintf(buf,"Maaf
Melebihi",) 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
27
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 berikut :
708. void (void) 709. 710. suhu=(float)y/10; 711.
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.
28
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
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)
Nilai Tegangan pada Multimeter
Digital (mV)
Nilai Tegangan pada LCD Mikrokontroler ATmega8515 (mV)
Selisih (mV)
50 50 50 0 100 100 110 10 150 150 150 0 200 200 210 10 250 250 260 10 300 300 320 20 350 350 370 20 400 400 420 20 450 450 470 20 500 500 530 30 550 550 580 30 600 600 630 30 650 650 690 40 700 700 740 40 750 750 790 40 800 800 840 40 850 850 890 40 900 900 950 50 950 950 990 40 1000 1000 1040 40 Rata-rata kesalahan 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.
30
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.
ΩK27
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.
31
Gambar 4.4 Hasil pengujian dengan pengukuran terhadap suhu
Tabel 4.2 Hasil pengukuran terhadap suhu
No. Suhu yang tampak pada Termometer ( 0C)
Suhu yang tampak pada LCD ( 0C )
Selisih ( 0C )
1 34 35 1 2 36 37 1 3 37 38 1 4 38,5 39 0,5 5 41 41 0 6 42 42 0 7 43 43 0 8 45 46 1 9 48 49 1 10 50 51 1 Rata – rata kesalahan 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.
32
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 padaKapasitor
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. This program was produced by the 3. CodeWizardAVR V1.23.7a Standard 4. Automatic Program Generator 5. © Copyright 1998-2002 HP InfoTech s.r.l. 6. http://www.hpinfotech.ro 7. e-mail:[email protected] 8. 9. Project : PEMANFAATAN ANALOG COMPARATOR INTERNAL
MIKROKONTROLER 10. SEBAGAI ANALOG DIGITAL CONVERTER 11. 12. Studi Kasus pada Mikrokontroler ATMEL ATmega8515 13. dengan Pengukuran terhadap Suhu 14. 15. Version : 16. Date : 7/14/2006 17. Author : Nurdin Abdul Khafiz 18. Company : Electrical Engineering Diponegoro University 19. Comments: 20. 21. 22. Chip type : ATmega8515 23. Program type : Application 24. Clock frequency : 8.000000 MHz 25. Memory model : Small 26. Internal SRAM size : 512 27. External SRAM size : 0 28. Data Stack size : 128 29. *********************************************/ 30. 31. #include <mega8515.h> 32. #include <stdio.h> 33. #include <delay.h> 34. #include <math.h> 35. #asm 36. .equ __lcd_port=0x1B 37. #endasm 38. #include <lcd.h> 39. 40. char buf[33]; 41. unsigned int x; 42. float a,b,suhu,y,; 43. 44. void tampilan_awal (void); 45. void mulai (void); 46. void hit_teg (void); 47. void tamp_hasil (void); 48. void tamp_error (void); 49. void temp (void); 50. 51.
B-1
52. 53. // deklarasi interupsi Analog Comparator 54. interrupt [ANA_COMP] void ana_comp_isr(void) 55. 56. TCCR1B=0x00; 57. PORTB=0x00; 58. hit_teg(); 59. delay_ms(500); 60. 61. 62. 63. void main(void) 64. 65. 66. lcd_init(16); 67. 68. tampilan_awal(); 69. // deklarasi Global enable interrupts 70. #asm("sei") 71. 72. 73. while (1) 74. 75. mulai(); 76. 77. 78. 79. 80. 81. 82. void tampilan_awal (void) 83. 84. lcd_gotoxy(0,0); 85. lcd_putsf("ANALOGtoDIGITAL"); 86. 87. lcd_gotoxy(3,1); 88. lcd_putsf("CONVERTER"); 89. 90. delay_ms(2000); 91. lcd_gotoxy(0,0); 92. lcd_clear(); 93. lcd_gotoxy(3,1); 94. lcd_clear(); 95. 96. 97. 98. 99. 100. void mulai (void) 101. 102. DDRB=0x10; 103. PORTB=0x00; 104. TCNT1=0x00; 105. delay_ms(50); 106. PORTB=0x10; 107.
B-2
108. ACSR=0x2F; 109. TCCR1B=0x01; 110. delay_us(100); 111. 112. 113. 114. void hit_teg (void) 115. 116. x=TCNT1; 117. 118. 119. 120. if (x<=67) 121. 122. a=5;b=205; 123. 124. y=(float)5*x-205; 125. temp(); 126. tamp_hasil(); 127. 128. 129. else 130. if (x<=91) 131. 132. a=5;b=215; 133. 134. y=(float)5*x-215; 135. temp(); 136. tamp_hasil(); 137. 138. 139. else 140. if (x<=111) 141. 142. a=5;b=225; 143. 144. y=(float)5*x-225; 145. temp(); 146. tamp_hasil(); 147. 148. 149. else 150. if (x<=125) 151. 152. a=5;b=235; 153. 154. y=(float)5*x-235; 155. temp(); 156. tamp_hasil(); 157. 158. else 159. if (x<=141) 160. 161. a=5;b=245; 162. 163. y=(float)5*x-245;
B-3
164. temp(); 165. tamp_hasil(); 166. 167. else 168. if (x<=153) 169. 170. a=5;b=255; 171. 172. y=(float)5*x-255; 173. temp(); 174. tamp_hasil(); 175. 176. else 177. if (x<=165) 178. 179. a=5;b=265; 180. 181. y=(float)5*x-265; 182. temp(); 183. tamp_hasil(); 184. 185. else 186. if(x<=177) 187. 188. a=5;b=275; 189. 190. y=(float)5*x-275; 191. temp(); 192. tamp_hasil(); 193. 194. else 195. if (x<=187) 196. 197. a=5;b=285; 198. 199. y=(float)5*x-285; 200. temp(); 201. tamp_hasil(); 202. 203. else 204. if (x<=197) 205. 206. a=5;b=295; 207. 208. y=(float)5*x-295; 209. temp(); 210. tamp_hasil(); 211. 212. else 213. if (x<=209) 214. 215. a=5;b=305; 216. 217. y=(float)5*x-305; 218. temp(); 219. tamp_hasil();
B-4
220. 221. else 222. if (x<=217) 223. 224. a=5;b=315; 225. 226. y=(float)5*x-315; 227. temp(); 228. tamp_hasil(); 229. 230. else 231. if (x<=227) 232. 233. a=5;b=325; 234. 235. y=(float)5*x-325; 236. temp(); 237. tamp_hasil(); 238. 239. else 240. if (x<=235) 241. 242. a=5;b=335; 243. 244. y=(float)5*x-335; 245. temp(); 246. tamp_hasil(); 247. 248. else 249. if (x<=245) 250. 251. a=5;b=345; 252. 253. y=(float)5*x-345; 254. temp(); 255. tamp_hasil(); 256. 257. else 258. if (x<=253) 259. 260. a=5;b=355; 261. 262. y=(float)5*x-355; 263. temp(); 264. tamp_hasil(); 265. 266. else 267. if (x<=261) 268. 269. a=5;b=365; 270. 271. y=(float)5*x-365; 272. temp(); 273. tamp_hasil(); 274. 275. else
B-5
276. if (x<=269) 277. 278. a=5;b=375; 279. 280. y=(float)5*x-375; 281. temp(); 282. tamp_hasil();; 283. 284. else 285. if (x<=279) 286. 287. a=5;b=385; 288. 289. y=(float)5*x-385; 290. temp(); 291. tamp_hasil(); 292. 293. else 294. if (x<=287) 295. 296. a=5;b=395; 297. 298. y=(float)5*x-395; 299. temp(); 300. tamp_hasil(); 301. 302. else 303. if (x<=293) 304. 305. a=5;b=405; 306. 307. y=(float)5*x-405; 308. temp(); 309. tamp_hasil(); 310. 311. else 312. if (x<=301) 313. 314. a=5;b=415; 315. 316. y=(float)5*x-415; 317. temp(); 318. tamp_hasil(); 319. 320. else 321. if (x<=307) 322. 323. a=5;b=425; 324. 325. y=(float)5*x-425; 326. temp(); 327. tamp_hasil(); 328. 329. else 330. if (x<=313) 331.
B-6
332. a=5;b=435; 333. 334. y=(float)5*x-435; 335. temp(); 336. tamp_hasil(); 337. 338. else 339. if (x<=319) 340. 341. a=5;b=445; 342. 343. y=(float)5*x-445; 344. temp(); 345. tamp_hasil(); 346. 347. else 348. if (x<=327) 349. 350. a=5;b=455; 351. 352. y=(float)5*x-455; 353. temp(); 354. tamp_hasil(); 355. 356. else 357. if (x<=333) 358. 359. a=5;b=465; 360. 361. y=(float)5*x-465; 362. temp(); 363. tamp_hasil(); 364. 365. else 366. if (x<=339) 367. 368. a=5;b=475; 369. 370. y=(float)5*x-475; 371. temp(); 372. tamp_hasil(); 373. 374. 375. else 376. if (x<=347) 377. 378. a=5;b=485; 379. 380. y=(float)5*x-485; 381. temp(); 382. tamp_hasil(); 383. 384. else 385. if (x<=355) 386. 387. a=5;b=495;
B-7
388. 389. y=(float)5*x-495; 390. temp(); 391. tamp_hasil(); 392. 393. else 394. if (x<=359) 395. 396. a=5;b=505; 397. 398. y=(float)5*x-505; 399. temp(); 400. tamp_hasil(); 401. 402. else 403. if (x<=365) 404. 405. a=5;b=515; 406. 407. y=(float)5*x-515; 408. temp(); 409. tamp_hasil(); 410. 411. else 412. if (x<=371) 413. 414. a=5;b=525; 415. 416. y=(float)5*x-525; 417. temp(); 418. tamp_hasil(); 419. 420. else 421. if (x<=377) 422. 423. a=5;b=535; 424. 425. y=(float)5*x-535; 426. temp(); 427. tamp_hasil(); 428. 429. else 430. if (x<=383) 431. 432. a=5;b=545; 433. 434. y=(float)5*x-545; 435. temp(); 436. tamp_hasil(); 437. 438. else 439. if (x<=389) 440. 441. a=5;b=555; 442. 443. y=(float)5*x-555;
B-8
444. temp(); 445. tamp_hasil(); 446. 447. else 448. if (x<=397) 449. 450. a=5;b=575; 451. 452. y=(float)5*x-575; 453. temp(); 454. tamp_hasil(); 455. 456. 457. else 458. if (x<=403) 459. 460. a=5;b=585; 461. 462. y=(float)5*x-585; 463. temp(); 464. tamp_hasil(); 465. 466. else 467. if (x<=409) 468. 469. a=5;b=595; 470. 471. y=(float)5*x-595; 472. temp(); 473. tamp_hasil(); 474. 475. else 476. if (x<=413) 477. 478. a=5;b=605; 479. 480. y=(float)5*x-605; 481. temp(); 482. tamp_hasil(); 483. 484. else 485. if (x<=419) 486. 487. a=5;b=615; 488. 489. y=(float)5*x-615; 490. temp(); 491. tamp_hasil(); 492. 493. else 494. if (x<=425) 495. 496. a=5;b=625; 497. 498. y=(float)5*x-625; 499. temp();
B-9
500. tamp_hasil(); 501. 502. else 503. if (x<=429) 504. 505. a=5;b=635; 506. 507. y=(float)5*x-635; 508. temp(); 509. tamp_hasil(); 510. 511. else 512. if (429<x<=435) 513. 514. a=5;b=645; 515. 516. y=(float)5*x-645; 517. temp(); 518. tamp_hasil(); 519. 520. else 521. if (x<=439) 522. 523. a=5;b=655; 524. 525. y=(float)5*x-655; 526. temp(); 527. tamp_hasil(); 528. 529. else 530. if (x<=445) 531. 532. a=5;b=665; 533. 534. y=(float)5*x-665; 535. temp(); 536. tamp_hasil(); 537. 538. else 539. if (x<=449) 540. 541. a=5;b=675; 542. 543. y=(float)5*x-675; 544. temp(); 545. tamp_hasil(); 546. 547. else 548. if (x<=455) 549. 550. a=5;b=685; 551. 552. y=(float)5*x-685; 553. temp(); 554. tamp_hasil(); 555.
B-10
556. else 557. if (x<=459) 558. 559. a=5;b=695; 560. 561. y=(float)5*x-695; 562. temp(); 563. tamp_hasil(); 564. 565. else 566. if (x<=465) 567. 568. a=5;b=705; 569. 570. y=(float)5*x-705; 571. temp(); 572. tamp_hasil(); 573. 574. else 575. if (x<=469) 576. 577. a=5;b=715; 578. 579. y=(float)5*x-715; 580. temp(); 581. tamp_hasil(); 582. 583. else 584. if (x<=475) 585. 586. a=5;b=725; 587. 588. y=(float)5*x-725; 589. temp(); 590. tamp_hasil(); 591. 592. else 593. if (x<=479) 594. 595. a=5;b=735; 596. 597. y=(float)5*x-735; 598. temp(); 599. tamp_hasil(); 600. 601. else 602. if (x<=485) 603. 604. a=5;b=745; 605. 606. y=(float)5*x-745; 607. temp(); 608. tamp_hasil(); 609. 610. else 611. if (x<=491)
B-11
612. 613. a=5;b=755; 614. 615. y=(float)5*x-755; 616. temp(); 617. tamp_hasil(); 618. 619. else 620. if (x<=503) 621. 622. a=2.5;b=-467.5; 623. 624. y=(float)(2.5*x)+467.5; 625. temp(); 626. tamp_hasil(); 627. 628. else 629. if (x<=523) 630. 631. a=2.5;b=-472.5; 632. 633. y=(float)(2.5*x)+472.5; 634. temp(); 635. tamp_hasil(); 636. 637. else 638. if (x<=541) 639. 640. a=2.5;b=-477.5; 641. 642. y=(float)(2.5*x)+477.5; 643. temp(); 644. tamp_hasil(); 645. 646. else 647. if (x<=563) 648. 649. a=2.5;b=-482.5; 650. 651. y=(float)(2.5*x)+482.5; 652. temp(); 653. tamp_hasil(); 654. 655. else 656. if (x<=589) 657. 658. a=2.5;b=-487.5; 659. 660. y=(float)(2.5*x)+487.5; 661. temp(); 662. tamp_hasil(); 663. 664. else 665. if (x<=603) 666. 667. a=2.5;b=-492.5;
B-12
668. 669. y=(float)(2.5*x)+492.5; 670. temp(); 671. tamp_hasil(); 672. 673. else 674. if (x>603) 675. 676. tamp_error(); 677. 678. 679. 680. 681. 682. void tamp_hasil (void) 683. 684. lcd_clear(); 685. sprintf(buf,"Suhu=%3.1f%c",suhu,0xDF); 686. lcd_gotoxy(1,0); 687. lcd_puts(buf); 688. 689. sprintf(buf,"Teg(mv)=%4.0f",y); 690. lcd_gotoxy(1,1); 691. lcd_puts(buf); 692. delay_ms(500); 693. 694. 695. 696. void tamp_error (void) 697. 698. lcd_clear(); 699. sprintf(buf,"Maaf Melebihi",); 700. lcd_gotoxy(2,0); 701. lcd_puts(buf); 702. 703. sprintf(buf,"Range Pengukuran",); 704. lcd_gotoxy(0,1); 705. lcd_puts(buf); 706. delay_ms(300); 707. 708. 709. void temp (void) 710. 711. suhu=(float)y/10; 712.
B-13
LAMPIRAN C
DIAGRAM SKEMATIK RANGKAIAN
Gambar C.1 Diagram blok sistem.
ΩK27
Gambar C.2 Bagan rangkaian sistem
ATmega8515
LCD
Vin
RangkaianResistor dan
Kapasitor
C-1
Gambar C.3 Rangkaian LCD M1632.
Gambar C.4 Skema rangkaian pengujian alat dengan pengukuran terhadap tegangan masukan.
C-2
ΩK27
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