pengendalian spektrofotometer berbasis … · spectrophotometer controlling based microcontroller...
TRANSCRIPT
i
i
TUGAS AKHIR
PENGENDALIAN SPEKTROFOTOMETER BERBASIS
MIKROKONTROLER ATMEGA8535
Diajukan untuk Memenuhi Salah Satu Syarat
Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Elektro
Oleh :
DAVID ROBINSON
NIM : 075114002
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2011
ii
ii
FINAL PROJECT
SPECTROPHOTOMETER CONTROLLING BASED
MICROCONTROLLER ATMEGA8535
Presented as Partial Fulfillment of the Requirements
to Obtain the SARJANA TEKNIK Degree
in Electrical Engineering Study Program
DAVID ROBINSON
NIM: 075114002
ELECTRICAL ENGINEERING STUDY PROGRAM
SCIENCE AND TECHNOLOGY FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2011
iii
iii
iv
iv
v
v
vi
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
Motto :
Practice, Practice and Practice
Skripsi ini kupersembahkan untuk...... Tuhan Yang Maha Esa
Papa dan Mama tercinta Orang yang selalu menemaniku
vii
vii
viii
viii
INTISARI
Pengukuran konsentrasi senyawa di dalam suatu sampel banyak dilakukan di berbagai
bidang. Untuk keperluan tersebut diperlukan instrumen yang sesuai, seperti spektrofotometer.
Namun, belum ada yang meneliti aplikasi spektrofotometer untuk mengukur konsentrasi
senyawa di bidang obat-obatan, sekaligus membuat otomasinya. Hal ini membuat para peneliti
di bidang obat-obatan harus memiliki suatu sistem spektrofotometer yang sudah diotomasi.
Pengendalian spektrofotometer berbasis ATMega8535 bisa mengukur lima konsentrasi
senyawa sekaligus secara otomatis dan melakukan komunikasi data dengan PC (personal
computer). Penelitian ini memberikan solusi untuk memudahkan dan menghemat waktu user
dalam mengukur beberapa sampel karena sudah dikendalikan secara otomatis.
Pengendalian spektrofotometer berbasis ATMega8535 terdiri dari dua sistem
pengendalian, yaitu sistem lokal dan sistem remote. Sistem lokal adalah sistem yang
penyetelan set point dan pengendalian dilakukan oleh mikrokontroler tanpa melakukan
komunikasi dengan peralatan lain. Sistem remote adalah sistem yang penyetelan set point
dilakukan dari PC yang dihubungkan secara serial ke mikrokontroler. Untuk sistem lokal
pengolahan data akan dilakukan di dalam mikrokontroler dan akan ditampilkan pada LCD
grafik. Untuk sistem remote, diperlukan komunikasi serial antara mikrokontroler dan PC.
Mikrokontroler juga akan mengirim data hasil scanning ke PC. Data ini akan ditampilkan
dalam bentuk grafik pada PC dan mikrokontroler akan menampilkan data pada LCD grafik.
Pengendalian spektrofotometer berbasis ATMega8535 sudah berhasil dibuat dan dapat
bekerja dengan baik. Sistem pengendalian lokal dan remote dapat menjalankan proses
pengukuran dengan baik sesuai dengan perancangan dan dapat menampilkan data-data yang
diinginkan. LCD grafik dapat menampilkan grafik hasil pengukuran dengan benar.
Kata kunci : pengendalian spektrofotometer, LCD grafik, mikrokontroler
ix
ix
ABSTRACT
Measurement of the concentration of compounds in a sample is mostly done in various
fields. For this purpose a suitable instrument is needed, such as the spectrophotometer.
However, no one has examined the application spectrophotometer to measure the
concentration of compounds in the field of medicine, while making automation. This makes the
researchers in the field of medicine should have a system to an automatic spectrophotometer.
Spectrophotometer controlling based microcontroller ATMega8535 can measure the five
concentrations of compounds at once automatically and perform data communication with a
PC. This research provides a solution to simplify and save time user in measuring some of the
samples because it is controlled automatically.
Spectrophotometer controlling based microcontroller ATMega8535 consists of two
control systems, which are the local system and remote system. Local system is a system set
point adjustment and control carried out by the microcontroller without any communication
with other equipment. Remote system is a system set point adjustment is done from a PC
serially connected to the microcontroller. For the local system of data processing will be done
in the microcontroller and the will be displayed on LCD graphic. For remote systems, serial
communication is required between the microcontroller and PC. Microcontroller will send
data scanning to PC. This data will be displayed graphically on PC and microcontroller will
display data on LCD graphic.
Spectrophotometer controlling based microcontroller ATMega8535 has been
successfully established and can work well. Local and remote system can perform
measurements process well according to the plan and can display data. Graphic LCD can
display graphs of measurement results correctly.
Keyword : spectrophotometer controlling, graphic LCD, microcontroller.
x
x
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas rahmat dan
anugerah-Nya sehingga penulis dapat menyelesaikan tugas akhir yang berjudul “Pengontrolan
Spektrofotometer Berbasis ATMEGA8535”
Tugas akhir ini disusun sebagai salah satu syarat untuk memperoleh gelar Sarjana
Teknik Elektro di Fakultas Sains dan Teknologi Universitas Sanata Dharma sekaligus sebagai
upaya untuk memperdalam dan memperkaya wawasan berpikir serta menambah wacana di
bidang elektronika khususnya sains dan teknologi pada umumnya.
Pembuatan tugas akhir ini tidak terlepas dari bantuan dan bimbingan berbagai pihak,
untuk itu penulis ingin mengucapkan terima kasih kepada :
1. Kedua orang tua yang tercinta atas doa dan materi yang telah diberikan.
2. Bernadeta Wuri Harini, S.T., M,T. selaku Ketua Jurusan Teknik Elektro dan dosen
pembimbing yang telah memberikan bimbingan, masukan, waktu dan perhatiannya
selama penyusunan tugas akhir ini.
3. Segenap dosen dan laboran Teknik Elektro Universitas Sanata Dharma.
4. Segenap karyawan sekretariat Fakultas Sains dan Teknologi.
5. Teman-teman TE angkatan 2007 terima kasih atas dukungan dan kekompakannya.
6. Semua pihak yang telah membantu dan tidak dapat disebutkan satu persatu sehingga
skripsi ini dapat diselesaikan.
Penulis dengan penuh kesadaran memahami dalam pembuatan tugas akhir ini masih
banyak terdapat kekurangannya. Oleh karenanya sumbang saran yang bersifat membangun
dari pembaca sangat diharapkan. Akhirnya penulis berharap semoga tugas akhir ini dapat
bermanfaat bagi pembaca khususnya dan dunia elektronika umumnya.
Yogyakarta, 23 Januari 2011
Penulis
David Robinson
xi
xi
DAFTAR ISI
Halaman
HALAMAN JUDUL DALAM BAHASA INDONESIA ......................... .....................i
HALAMAN JUDUL DALAM BAHASA INGGRIS .............................. .....................ii
HALAMAN PERSETUJUAN ................................................................. .....................iii
HALAMAN PENGESAHAN .................................................................. .....................iv
HALAMAN PERNYATAAN KEASLIAN KARYA .............................. .....................v
HALAMAN PERSEMBAHAN DAN MOTTO ...................................... .....................vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA
ILMIAH UNTUK KEPENTINGAN AKADEMIS ................................. .....................vii
INTISARI ................................................................................................. .....................viii
ABSTRAK ................................................................................................ .....................ix
KATA PENGANTAR .............................................................................. .....................x
DAFTAR ISI ............................................................................................ .....................xi
DAFTAR GAMBAR ................................................................................ .....................xiv
DAFTAR TABEL .................................................................................... .....................xvi
BAB I: PENDAHULUAN ........................................................................ .....................1
1.1. Latar Belakang Masalah ........................................................ .....................1
1.2. Tujuan dan Manfaat .............................................................. .....................2
1.3. Batasan Masalah ................................................................... .....................2
1.4. Metodologi Penelitian ........................................................... .....................3
1.4.1. Variabel Penelitian............................................................................3
1.4.2. Prosedur Penelitian...........................................................................3
1.5. Sistematika Penulisan ........................................................... .....................4
BAB II: DASAR TEORI .......................................................................... .....................6
2.1. Mikrokontroler ATMega8535 ............................................ .....................6
2.1.1. Arsitektur dan Konfigurasi Pin ATMega8535.. ...... .....................6
2.1.2. Fitur-fitur ATMega8535................................................................7
xii
xii
2.1.3. Peta Memori ATMega8535...........................................................8
2.1.4. Timer / Counter.............................................................................9
2.1.5. Komunikasi Serial dengan UART................................................14
2.1.6. Analog to Digital Converter (ADC).............................................16
2.2. Komunikasi Serial.............................................................. ....................17
2.2.1. Konektor DB9 ........................................................ ....................18
2.2.2. IC MAX232 ........................................................... ....................19
2.3. Penampil Grafik ................................................................ ....................20
2.4. Spektrum Cahaya dan Gelas Dydinium....................................................21
2.5. Sistem Pengendalian Lokal dan Remote....................................................23
BAB III: PERANCANGAN ..................................................................... ....................24
3.1. Arsitektur Sistem ............................................................... ....................24
3.2. Sistem Pengendalian .......................................................... ....................26
3.2.1. Sistem Lokal .......................................................... ....................26
3.2.2. Sistem Remote ....................................................... ....................27
3.3. Kalibrasi Panjang Gelombang Spektrofotometer ................ ....................29
3.4. Perancangan Subsistem Hardware............................................................29
3.4.1. Perancangan Minimum System Mikrokontroler ATMega8535.....29
3.4.2. Perancangan LCD Grafik.............................................................30
3.4.3. Perancangan RS232......................................................................31
3.5. Perancangan Subsistem Software..............................................................31
3.5.1. Perancangan Program Utama.......................................................31
3.5.2. Perancangan Program Sistem Lokal.............................................32
3.5.3. Perancangan Program Sistem Remote..........................................33
3.5.4. Perancangan Program Penampilan Kurva Baku...........................35
3.6. Perancangan Tampilan LCD Grafik..........................................................35
3.7. Perhitungan Nilai ADC.............................................................................36
BAB IV: HASIL DAN PEMBAHASAN ................................................. ....................38
4.1. Hasil Perancangan dan Tampilan Luar Alat........................ ....................38
4.2. Pengujian Hardware .......................................................... ....................39
xiii
xiii
4.2.1 Pengujian Rangkaian Minimum System Mikrokontroler
ATMega8535................................................................................39
4.2.2 Pengujian Rangkaian LCD Grafik..... ..................... ....................41
4.2.3 Pengujian Rangkaian RS232.........................................................42
4.2.4 Pengujian Pengiriman Data dari Mikrokontroler AVR
ATMega8535 ke Personal Computer (PC)...............................42
4.3. Pengujian Software...............................................................................43
4.3.1 Pengujian Program Utama........................................................43
4.3.2 Pengujian Tampilan LCD Grafik.............................................45
4.4 Pengujian Sistem Pengendalian............................................................47
4.4.1 Sistem Lokal.............................................................................48
4.4.2 Sistem Remote..........................................................................53
4.5 Pengujian Pengukuran Larutan Sampel................................................55
4.6 Pengujian Stabilitas Sistem...................................................................56
BAB V: KESIMPULAN DAN SARAN ................................................... ................58
5.1. Kesimpulan ........................................................................ ................58
5.2. Saran.................................................................................. ................58
DAFTAR PUSTAKA..................................................................................................60
LAMPIRAN
xiv
xiv
DAFTAR GAMBAR
Halaman
Gambar 1.1 Blok Model Perancangan ...................................................... ....................3
Gambar 2.1 Konfigurasi Pin ATMega8535 .............................................. ....................6
Gambar 2.2 Peta Memori ATMega8535 ................................................... ....................8
Gambar 2.3 Memori Data ATMega8535 .................................................. ....................9
Gambar 2.4 Register TCCR0 ................................................................... ....................10
Gambar 2.5 Register TCCR1A ................................................................. ....................11
Gambar 2.6 Register TCCR1B ................................................................. ....................12
Gambar 2.7 Register TCCR2.................................................................... ....................13
Gambar 2.8 Register USR ........................................................................ ....................14
Gambar 2.9 Register UCR ........................................................................ ....................15
Gambar 2.10 Konektor DB9....................................................................... ....................18
Gambar 2.11 IC MAX232 .......................................................................... ....................19
Gambar 2.12 LCD Grafik 240x64 pixel ..................................................... ....................20
Gambar 2.13 Spektrum Gelas Dydinium............................................................................22
Gambar 2.14 Proses Pemilihan Sistem Pengendalian........................................................23
Gambar 3.1 Arsitektur Umum .................................................................. ....................24
Gambar 3.2 Alur Komunikasi Mikrokontroler dan PC .............................. ....................28
Gambar 3.3 Rangkain Minimum System ................................................... ....................29
Gambar 3.4 Rangkaian LCD Grafik ......................................................... ....................30
Gambar 3.5 Rangkaian RS232 ................................................................. ....................31
Gambar 3.6 Flowchart Program Utama .................................................... ....................32
Gambar 3.7 Flowchart Program Sistem Lokal .......................................... ....................33
Gambar 3.8 Flowchart Program Sistem Remote ....................................... ....................34
Gambar 3.9 Flowchart Program Penampilan Kurva Baku ........................ ....................35
Gambar 3.10 Tampilan Kurva Baku pada LCD Grafik ............................... ....................36
Gambar 4.1 Hasil Perancangan................................................................. ....................38
xv
xv
Gambar 4.2 Tampilan Luar Alat ............................................................... ....................39
Gambar 4.3 Rangkaian LCD Character. .................................................. ....................40
Gambar 4.4 Hasil Pengujan pada LCD Character .................................... ....................40
Gambar 4.5 Hasil Pengujian Rangkaian LCD Grafik ................................ ....................41
Gambar 4.6 Hasil Pengujian Komunikasi dari Mikrokontroler #1 ke PC .. ....................43
Gambar 4.7 Tampilan Menu ..................................................................... ....................44
Gambar 4.8 Hasil Pengujian Program Tampilan LCD Grafik ................... ....................47
Gambar 4.9 Hasil Pengukuran Satu Kuvet Kosong Sebanyak 10 Kali ...... ....................48
Gambar 4.10 Hasil Pengukuran Sepuluh Kuvet Kosong yang Berbeda ....... ....................49
Gambar 4.11 Hasil Tampilan LCD Grafik Pengujian 1............................... ....................52
Gambar 4.12 Hasil Pengujian Sistem Remote pada Program Hyperterminal....................54
xvi
xvi
DAFTAR TABEL
Halaman
Tabel 2.1 Tabel Keterangan dan Fungsi Pin Konektor DB9 ........................ ....................18
Tabel 2.2 Keterangan Pin IC MAX232....................................................... ....................19
Tabel 2.3 Tabel Pin LCD Grafik WG24064c .............................................. ....................20
Tabel 2.4 Warna Cahaya Tampak............................................................... ....................22
Tabel 4.1 Hasil Pengujian Rangkaian RS232.............................................. ....................42
Tabel 4.2 Hasil Pengukuran Kuvet Referensi ............................................. ....................50
Tabel 4.3 Hasil Pengukuran Kuvet untuk Menghasilkan Kurva Baku ......... ....................51
Tabel 4.4 Hasil Pengukuran Larutan Sampel .............................................. ....................55
Tabel 4.5 Hasil Pengujian Panjang Gelombang Maksimum untuk Stabilitas Sistem........57
Tabel 4.6 Hasil Pengujian Nilai Serapan untuk Stabilitas Sistem......................................57
1
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pengukuran konsentrasi senyawa di dalam suatu sampel banyak dilakukan di dalam
berbagai bidang seperti fisika, kimia, farmasi, kedokteran, biologi, pertanian, teknik dan
lingkungan. Untuk keperluan tersebut diperlukan instrumen yang sesuai, seperti
spektrofotometer.
Banyak penelitian yang memanfaatkan spektrofotometer ini untuk pengujian logam,
namun belum ada yang meneliti aplikasi spektrofotometer untuk mengukur konsentrasi
senyawa di bidang obat-obatan, sekaligus membuat otomasinya. Beberapa penelitian yang
sudah ada adalah Diawati, C. dalam penelitian berjudul ”Penentuan logam besi dan seng
dalam alga coklat sorgasum duplicatum di perairan Pantai Gading secara spektrofotometer
serapan atom” dan “Studi penentuan logam berat Pb (II) dan Cu (II) dalam alga merah
eucheuma Sp di perairan Pantai Gading secara spektrofotometer atom”, dan Supriyanto, R.
dalam penelitian berjudul “Studi analisis spesial fe(II) dan (III) menggunakan (Asam Tanat)
ekstrak getah gambir dengan spektrofotometer ultra ungu- tampak” [ 1 ].
Berdasarkan hal di atas, penulis ingin membuat suatu otomasi sistem spektrofotometer
dan melakukan komunikasi data dengan sebuah PC (Personal Computer). Sistem ini
dikembangkan dari sistem yang telah ada sebelumnya, yaitu spektrofotometer Vis manual.
Pada perancangan tugas akhir ini, kuvet dan monokromator pada sistem akan dijalankan
secara otomatis, dengan memasukkan input yang diinginkan. Penambahan lain yang akan
diberikan adalah LCD ( Liquid Cell Display ) grafik yang akan menampilkan grafik hasil
pengukuran sampel.
Sistem ini akan bekerja dengan dua pilihan pengendalian yaitu sistem lokal dan sistem
remote. User bisa memilih salah satu dari 2 pilihan tersebut. Sistem lokal ini akan bekerja
setelah user menekan keypad 1. Kuvet dan monokromator akan dikendalikan secara otomatis
oleh mikrokontroler. Kuvet yang berisi sampel akan di-scan satu per satu. Data yang
2
2
dihasilkan akan diolah dalam mikrokontroler. Hasil pengolahan data akan ditampilkan dalam
bentuk kurva pada LCD grafik.
Untuk sistem remote, sistem akan bekerja seperti sistem lokal, hanya saja sistem akan
berjalan apabila mikrokontroler memberikan instruksi / tanda terlebih dahulu ke PC melalui
komunikasi serial. Kemudian, mikrokontroler akan mendapatkan instruksi / tanda dari PC.
Setelah itu, mikrokontroler mengendalikan kuvet dan monokromator secara otomatis. Kuvet
akan di-scan dan akan diperoleh data. Data hasil pengukuran untuk sistem ini akan dikirim
kembali oleh mikrokontroler ke PC untuk diolah di dalam PC melalui program visual. Di
program ini hasil pengukuran akan ditampilkan dalam bentuk grafik dan beberapa tampilan
besaran yang ingin ditampilkan. Data hasil scanning selain di kirim ke PC juga akan diolah
oleh mikrokontroler. Data akan diolah dan ditampilkan pada LCD grafik. Ini dilakukan agar
bisa membandingkan grafik hasil pengolahan oleh PC dan grafik hasil pengolahan
mikrokontroler sehingga bisa didapatkan hasil yang diharapkan.
1.2 Tujuan dan Manfaat Penelitian
Tujuan penelitian ini adalah mengendalikan suatu sistem spektrofotometer yang
mampu mengukur lima sampel secara otomatis. Manfaat dari penelitian ini adalah untuk
memudahkan dan menghemat waktu user dalam mengukur beberapa sampel karena sudah
dikendalikan secara otomatis.
1.3 Batasan Masalah
Untuk membatasi cakupan serta menghindari melebarnya pembahasan dalam
pembuatan tugas akhir ini maka dilakukan pembatasan masalah sebagai berikut :
1. Pengukuran untuk dua senyawa, masing-masing senyawa mempunyai lima
konsentrasi yang berbeda.
2. Sistem spektrofotometer ini bisa mengukur lima sampel sekaligus.
3. Pemograman mikrokontroler AVR ATMega8535 menggunakan bahasa basic.
4. Sensor yang digunakan adalah phototransistor untuk pengukuran konsentrasi
yang menggunakan sumber cahaya tampak (Visible).
3
3
5. Menggunakan LCD character sebagai tampilan pilihan.
6. Menggunakan LCD grafik sebagai tampilan hasil pengukuran sampel.
7. Menggunakan motor stepper untuk mengendalikan dan menjalankan kuvet dan
monokromator.
1.4 Metodologi Penelitian
1.4.1 Variabel Penelitian
Variabel terikat adalah variabel yang menjadi titik pusat penelitian. Variabel bebas
adalah variabel yang diselidiki pengaruhnya terhadap variabel terikat. Variabel terikat pada
penelitian ini adalah sistem spektrofotometer dan bagian-bagiannya, sedangkan variabel bebas
yang digunakan adalah dua senyawa murni.
1.4.2 Prosedur Penelitian
Langkah – langkah dalam pengerjaan tugas akhir :
1. Pengumpulan bahan – bahan referensi berupa buku – buku dan artikel.
2. Perancangan sistem hardware dan software. Tahap ini bertujuan untuk mencari
suatu sistem yang akan dibuat dengan mempertimbangkan dari berbagai faktor-
faktor permasalahan dan kebutuhan yang telah ditentukan.
Gambar 1.1. Blok Model Perancangan
LCD
4
4
3. Pembuatan sistem hardware dan software. Berdasarkan gambar 1.1, untuk sistem
lokal pengolahan data akan dilakukan di dalam mikrokontroler dan akan
ditampilkan pada LCD grafik berbentuk kurva. Untuk sistem remote, diperlukan
komunikasi serial dengan PC. Mikrokontroler akan memberikan instruksi terlebih
dahulu. Ini menandakan mikrokontroler siap untuk melakukan komunikasi.
Mikrokontroler juga akan mengirim data hasil scanning dan data diolah pada PC
melalui program visual. Data ini akan ditampilkan dalam bentuk grafik pada
program visual tersebut dan mikrokontroler juga akan mengolah data hasil
scanning dan akan menampilkan pada LCD grafik.
4. Proses pengambilan data. Teknik pengambilan data dilakukan dengan cara
mengambil nilai ADC yang sudah diproses oleh mikrokontroler setelah
mendapatkan nilai tegangan yang dikeluarkan oleh sensor phototransistor. Data
tersebut digunakan untuk mengetahui besar perbedaan serapan yang terjadi. Dan,
dari data serapan tersebut dapat dibuat kurva baku suatu senyawa dengan
konsentrasi yang berbeda.
5. Analisa dan kesimpulan hasil perancangan. Analisa data dilakukan dengan
mengecek keakuratan data dengan cara membandingkan data hasil perhitungan
teori dan data hasil keluaran perancangan. Penyimpulan hasil perancangan
dilakukan dengan menghitung presentase error yang terjadi.
1.5 Sistematika Penulisan
BAB I PENDAHULUAN
Bab ini berisi tentang latar belakang masalah, tujuan dan manfaat penelitian,
batasan masalah, metodologi penelitian serta sistematika penulisan.
BAB II DASAR TEORI
Bab ini berisi dasar teori yang berkaitan dengan mikrokontroler, LCD grafik,
dan dasar teori lainnya.
5
5
BAB III PERANCANGAN
Bab ini berisi tentang perancangan hardware dan perancangan software
dalam perancangan tugas akhir ini.
BAB IV HASIL PENGAMATAN DAN PEMBAHASAN
Bab ini berisi hasil pengamatan dan pembahasan dari pengujian yang telah
dilakukan.
BAB V PENUTUP
Bab ini berisi tentang kesimpulan dan saran.
6
6
BAB II
DASAR TEORI
2.1 Mikrokontroler ATMega8535
2.1.1 Arsitektur dan Konfigurasi Pin ATMega8535 [2]
Mikrokontroler ATMega8535 adalah mikrokontroler berjenis RISC 8 bit dengan
delapan kilobyte flash memori, high performance dan low power. Piranti dapat diprogram
secara in-system programming (ISP) dan dapat diprogram berulang-ulang selama 10.000 kali
baca / tulis di dalam sistem. Gambar 2.1 menunjukkkan konfigurasi pin dan blok diagram
ATMega8535.
Gambar 2.1 Konfigurasi pin ATMega8535
Konfigurasi pin ATMega8535 dapat dijelaskan sebagai berikut :
1. VCC merupakan kaki masukan catu daya positif.
2. GND merupakan kaki masukan catu daya negatif (ground).
3. AVCC merupakan kaki masukan tegangan untuk ADC.
4. AREF merupakan kaki masukan tegangan untuk referensi ADC.
5. XTAL 1 dan XTAL 2 merupakan kaki masukan untuk kristal luar.
6. RESET merupakan kaki untuk me-reset mikrokontroler.
7
7
7. PORT A merupakan kaki saluran I/O dua arah dan kaki masukan ADC.
8. PORT B merupakan kaki saluran I/O dua arah dengan fungsi khusus seperti
komparator analog, timer / counter, dan SPI.
9. PORT C merupakan kaki saluran I/O dua arah dengan fungsi khusus seperti
komparator analog, timer oscillator, dan TWI.
10. PORT D merupakan kaki saluran I/O dua arah dengan fungsi khusus seperti
komparator analog, interupsi eksternal, dan komunikasi serial.
2.1.2 Fitur-fitur ATMega8535
1. Berperformen tinggi dan dengan konsumsi daya rendah (low power)
2. Fitur Peripheral
a. Dua Timer/Counter 8-bit dengan Separate Prescaler (sumber clock yang dapat diatur)
dan Mode pembanding
b. Satu Timer/Counter 16-bit dengan Separate Prescaler, Mode pembanding dan
Capture Mode
c. Real Time Counter dengan sumber osilator terpisah
d. Terdapat delapan saluran ADC dengan resolusi sepuluh bit ADC
e. Empat saluran Pulse Width Modulation (PWM)
f. Terdapat Two Serial Interface
g. Programmable serial USART
h. Master/Serial SPI Serial Interface
i. Programmable Watchdog Timer dengan On-Chip Oscillator
j. On-Chip Analog Comparator
3. I/O dan kemasan
a. 32 programmable saluran I/O
b. 40 pin PDIP, 44 pin TQFP, 44 PIN PLCC dan 44 pin MLF
4. Tegangan Kerja
a. 2,7 – 5,5V untuk ATmega8535L
b. 4,5 – 5,5V untuk ATmega8535
5. Kelas Kecepatan
a. 0 – 8 Mhz untuk ATmega8535L
b. 0 – 16 Mhz untuk ATmega8535
8
8
2.1.3 Peta Memori ATMega8535
ATMega8535 memilki ruang memori sebesar 8KByte. Karena seluruh instruksi yang
terdapat pada ATMega8535 memiliki lebar 16-bit atau 32-bit, Flash PEROM memori disusun
dengan konfigurasi 4KByte x 16-bit Flash PEROM dengan alamat mulai dari $000 sampai
$FFF. AVR tersebut memilki 12-bit Program Counter (PC) sehingga dapat mengalamati isi
Flash Memory, untuk menghindari kerusakan pada software, pada Flash memory ruang
memorinya dibagi menjadi dua bagian, yaitu Boot program dan Application program. Gambar
2.2 menunjukkan pembagian peta memori ATMega 8535.
Gambar 2.2 Peta memori ATMega 8535
ATMega8535 memiliki ruang memori data dan program yang terpisah. Pada
ATMega8535 memori data terbagi atas tiga bagian, yaitu terdapat 32 buah register umum dan
64 buah register I/O, dan 512 byte SRAM internal.
Register-register yang terdapat pada ATMega8535 tersebut menempati alamat yang
bebeda-beda, untuk register keperluan umum, register ini menempati alamat memori terbawah
dari $00 sampai $1F. Sementara itu, register yang digunakan untuk menangani I/O dan
9
9
kontrol terhadap peripheral mikrokontroler menempati 64 alamat berikutnya, dari $20 hingga
$5F, dan alamat berikutnya ditempati oleh SRAM 512 byte dari lokasi $60 sampai $25F.
Gambar 2.3 menunjukkan konfigurasi memori data ATMega8535.
Gambar 2.3 Memori data ATMega8535
2.1.4 Timer / Counter
AVR ATMega8535 memiliki tiga buah timer, yaitu Timer/Counter 0(8 bit),
Timer/Counter 1(16 bit), dan Timer/Counter 2(8 bit).
1. Timer/Counter 0
Timer/Counter 0 adalah 8 bit Timer/Counter yang multi fungsi. Deskripsi untuk
Timer/Counter 0 pada ATMega8535 adalah sebagai berikut:
a. Sebagai Counter 1 kanal
10
10
b. Timer dinolkan saat match compare (auto reload)
c. Dapat menghasilkan gelombang PWM dengan glitch-free
d. Frekuensi Generator
e. Prescaler 10 bit untuk timer
f. Interupsi timer yang disebabkan timer overflow dan match compare
Pengaturan Timer/Counter 0 diatur oleh TCCR0 (Timer/Counter Control Register
0) yang dapat dilihat pada gambar 2.4 :
Bit 7 6 5 4 3 2 1 0
FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00 TCCR0
Read/Write W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Gambar 2.4 Register TCCR0
Penjelasan untuk tiap - tiap bit adalah sebagai berikut:
a. Bit 7 - FOC0 : Force Output Compare
b. Bit 6, 3 - WGM01, WGM00 : Waveform Generation Mode
Bit ini mengatur kenaikan dari counter, sumber dari nilai maksimum
counter, dan tipe dari jenis counter / timer yang dihasilkan, yaitu mode
normal, clear timer, compare match, dan dua tipe dari PWM (Pulse Width
Modulation).
c. Bit 5, 4 - COM01, COM00 : Compare Match Output Mode
Bit ini mengontrol pin OC0 (pin Output Compare). Apabila kedua bit ini
nol atau clear, maka pin OC0 berfungsi sebagai pin biasa. Bila salah satu
bit set, maka fungsi pin ini tergantung pada pengaturan bit WGM00 dan
WGM01.
d. Bit 2, 1, 0 - CS02, CS01, CS00 : Clock Select
Ketiga bit ini untuk memilih sumber clock yang akan digunakan oleh
Timer/Counter0.
11
11
2. Timer/Counter 1
Timer/Counter 1 adalah 16 bit Timer/Counter yang memungkinkan program
pewaktuan lebih akurat. Berbagai fitur dari Timer/Counter 1 adalah:
a. Desain 16 bit (juga memungkinkan 16 bit PWM)
b. Dua buah compare unit
c. Dua buah register pembanding
d. Satu buah input capture unit
e. Timer dinolkan saat match compare (auto reload)
f. Dapat menghasilkan gelombang PWM dengan glitch free
g. Periode PWM yang dapat diubah-ubah
h. Pembangkit frekuensi
i. Empat buah sumber interupsi (TOV1, OCF1A,OCF1B, dan ICF1)
Pengaturan pada Timer/Counter 1 diatur melalui TCCR1A yang dapat dilihat pada
gambar 2.5:
Bit 7 6 5 4 3 2 1 0
COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10 TCCR1A
Read/Write R/W R/W R/W R/W W W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Gambar 2.5 Register TCCR1A
Penjelasan untuk tiap - tiap bit adalah sebagai berikut:
a. Bit 7, 6 – COM1A1, COM1A0 : Compare Output Mode untuk kanal A.
Bit 5, 4 – COM1B1, COM1B0 : Compare Output Mode untuk kanal B.
Bit – bit ini mengatur pin pembanding keluaran (pin Output Compare),
yaitu pin OC1A dan OC1B.
b. Bit 3, 2 – FOC1A, FOC1B : Force Output Compare untuk kanal A dan B.
Bit ini harus diset 0 ketika TCRR1A dioperasikan sebagai fungsi PWM.
12
12
c. Bit 1, 0 – WGM11, WGM10 : Waveform Generation Mode
Bit ini mengatur urutan perhitungan dari counter, menentukan nilai
maksimal dari pengaturan counter dan menentukan pilihan tipe
pengoperasian Timer/Counter1.
Pengaturan Timer 1 juga dapat diatur melalui TCCR1B yang dapat dilihat pada
gambar 2.6:
Bit 7 6 5 4 3 2 1 0
ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10 TCCR1B
Read/Write R/W R/W R R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Gambar 2.6 Register TCCR1B
Penjelasan untuk tiap - tiap bit adalah sebagai berikut:
a. Bit 2, 1, 0 - CS12, CS11, CS10 : Clock Select
Ketiga bit ini untuk memilih sumber clock yang digunakan oleh
Timer/Counter1.
b. Bit 4, 3 - WGM13, WGM12 : Waveform Generation Mode
Bit ini mengatur urutan perhitungan dari counter, menentukan nilai
maksimal dari pengaturan counter dan menentukan pilihan tipe
pengoperasian Timer/Counter1.
3. Timer/Counter 2
Timer/Counter 2 adalah 8 bit Timer/Counter yang multifungsi. Deskripsi untuk
Timer/Counter 2 pada ATMega8535 adalah sebagai berikut:
a. Sebagai Counter 1 kanal
b. Timer dinolkan saat match compare (auto reload)
c. Dapat menghasilkan gelombang PWM dengan glitch-free
d. Frekuensi Generator
13
13
e. Prescaler 10 bit untuk timer
f. Interupsi timer yang disebabkan timer overflow dan match compare
Pengaturan Timer/Counter 2 diatur oleh TCCR2 (Timer/Counter Control Register
2) yang dapat dilihat pada gambar 2.7:
Bit 7 6 5 4 3 2 1 0
FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20 TCCR2
$ W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0
Gambar 2.7 Register TCCR2
Penjelasan untuk tiap - tiap bit adalah sebagai berikut:
a. Bit 7 - FOC2 : Force Output Compare
b. Bit 6, 3 - WGM21, WGM20 : Waveform Generation Mode
Bit ini mengatur kenaikan dari counter, sumber dari nilai maksimum
counter, dan tipe dari jenis counter / timer yang dihasilkan, yaitu mode
normal, clear timer, compare match, dan dua tipe dari PWM (Pulse Width
Modulation).
c. Bit 5, 4 - COM21, COM20 : Compare Match Output Mode
Bit ini mengontrol pin OC2 (pin Output Compare). Apabila kedua bit ini
nol atau clear, maka pin OC2 berfungsi sebagai pin biasa. Bila salah satu
bit set, maka fungsi pin ini tergantung pada pengaturan bit WGM20 dan
WGM21.
d. Bit 2, 1, 0 – CS22, CS21, CS20 : Clock Select
Ketiga bit ini untuk memilih sumber clock yang akan digunakan oleh
Timer/Counter2.
14
14
2.1.5 Komunikasi Serial dengan UART [3]
AVR ATMega8535 memiliki 4 buah register I/O yang berkaitan dengan komunikasi
UART, yaitu UART I/O Data Register (UDR), UART Baud Rate Register (UBRR), UART
Status Register (USR), dan UART Control Register (UCR).
1. UART I/O Data Register (UDR)
Proses pengiriman data secara serial dapat dimulai setelah UDR diberi karakter
data. Pada sisi penerima, UART memiliki buffer sehingga UDR dapat dibaca
ketika sebuah data baru sedang digeser masuk.
2. UART I/O Data Register (UDR)
UBRR digunakan untuk menentukan clock yang dibangkitkan oleh baud rate
generator. Nilai baud rate ditentukan dengan mengisi register UBRR sesuai
persamaan 2.1
(2.1)
Misal, diinginkan baud rate sebesar 9600 bps dengan kristal 11059200 Hz maka
register UBRR akan bernilai 71.
3. UART Status Register (USR)
USR menyimpan berbagai flag status seperti interupsi, overflow, dan framing
error. Susunan bit USR dapat dilihat pada gambar 2.8 :
Gambar 2.8 Register USR
Penjelasan bit – bit USR adalah sebagai berikut :
a. RXC (Receive Complete) ; bernilai 1 otomatis setelah UART menerima
sebuah karakter secara lengkap.
Bit 7 6 5 4 3 2 1 0
RXC TXC UDRE FE OR - - -
15
15
b. TXC (Transmit Complete) ; bernilai 1 jika sebuah karakter telah selesai
digeser keluar dari register geser kirim.
c. UDRE (UART Data Register Empty) ; bernilai 1 jika UDR kosong.
d. FE (Framing Error) ; bernilai 1 jika stop bit tidak diterima dengan benar,
yaitu stop bit terbaca 0.
e. OR (OverRun) ; bernilai 1 jika ada karakter yang dipindahkan dari register
geser terima ke UDR sebelum karakter yang diterima sebelumnya dibaca.
4. UART Control Register (UCR)
UCR mengendalikan berbagai fungsi penerima dan pengirim, serta interupsinya.
Susunan bit UCR dapat dilihat pada gambar 2.9:
Gambar 2.9 Register UCR
Penjelasan bit – bit USR adalah sebagai berikut :
a. RXCIE (Receive Complete Interrupt Enable) ; jika bernilai 1, UART akan
membangkitkan interupsi ketika sebuah karakter selesai diterima.
b. TXCIE (Transmit Complete Interrupt Enable) ; bernilai 1 setelah karakter
terkirim dan membangkitkan interupsi.
c. UDRIE (UART Data Register Empty Interrupt Enable) ; jika bernilai 1,
sebuah interupsi terjadi ketika UDR kosong.
d. REXN (Receiver Enable) ; jika bernilai 1 penerima UART diaktifkan dan
pin RxD menjadi pin input yang terhubung ke UART.
e. TEXN (Transmitter Enable) ; jika bernilai 1 pengirim UART diaktifkan
dan pin TxD menjadi pin output yang terhubung ke UART.
f. CHR9 (9-bit Characters) ; jika bernilai 1, ukuran karakter yang dikirim
menjadi 9-bit, dan bit ke 9 berada pada bit RXB8 dan TXB8.
Bit 7 6 5 4 3 2 1 0
RXCIE TXCIE UDRIE REXN TXEN CHR9 RXB8 TXB8
16
16
g. RXB8 (Receive Data Bit 8) ; jika CHR9, bernilai 1 bit ini adalah bit ke 9
dari data yang diterima.
h. TXB8 (Transmit Data Bit 8) ; jika CHR9, bernilai 1 bit ini adalah bit ke 9
dari data yang dikirim, jadi TXB8 harus diisi sebelum pengiriman.
2.1.6 Analog to Digital Converter (ADC) [3]
ADC pada AVR ATMega8535 merupakan ADC 10-bit tipe Successive Approximation,
yang terhubung ke sebuah multiplekser analog yang akan memilih satu dari delapan kanal.
Terdapat 8 kanal ADC masing – masing selebar 10 bit. ADC dapat digunakan dengan
memberikan masukan tegangan pada port ADC yaitu port A.0 sampai dengan portA.7. Ada 2
mode ADC yang dapat digunakan, yaitu single conversion dan free running. Pada mode single
conversion, pengguna harus mengaktifkan setiap kali ADC akan digunakan. Sedangkan pada
mode free running, pengguna cukup sekali mengaktifkan, sehimgga ADC akan terus
mengkonversi tanpa henti.
ADC mempunyai rangkaian untuk mengambil sampel dan hold (menahan) tegangan
input ADC sehingga dalam keadaan konstan selama proses konversi. ADC mempunyai catu
daya yang terpisah yaitu pin AVcc – AGND. AVcc tidak boleh berbeda ± 0.3 V dari Vcc.
Sinyal input ADC tidak boleh melebihi tegangan referensi. Nilai digital sinyal input :
a. Untuk resolusi 10 bit (1024) :
(2.2)
b. Untuk resolusi 8 bit (256) :
(2.3)
17
17
2.2 Komunikasi Serial RS-232
Standar RS232 ditetapkan oleh Electronic Industry Association and Telecomunication
Industry Association pada tahun 1962. Nama lengkapnya adalah EIA/TIA-232 Interface
Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing
Serial Binary Data Interchange. Meskipun namanya cukup panjang tetapi standar ini hanya
menyangkut komunikasi data antara PC dengan alat-alat pelengkap komputer.
Antar muka komunikasi serial menawarkan beberapa kelebihan dibandingkan dengan
komunikasi pararel, diantaranya:
a. Kabel untuk komunikasi serial bisa lebih panjang dibandingkan dengan pararel.
Data-data dalam komunikasi serial dikirimkan untuk logika „1‟ sebagai
tegangan -3 s/d -25 volt dan untuk logika „0‟ sebagai tegangan +3 s/d +25 volt,
dengan demikian tegangan dalam komunikasi serial memiliki ayunan tegangan
maksimum 50 volt, sedangkan pada komunikasi pararel hanya 5 volt. Hal ini
menyebabkan gangguan pada kabel-kabel panjang lebih mudah diatasi
dibanding dengan pararel.
b. Jumlah kabel serial lebih sedikit.
Dua perangkat komputer yang berjauhan dengan hanya tiga kabel untuk
konfigurasi null modem, yakni TxD (saluran kirim), RxD (saluran terima) dan
Ground, akan tetapi jika menggunakan komunikasi pararel akan terdapat dua
puluh hingga dua puluh lima kabel.
c. Komunikasi serial dapat menggunakan udara bebas sebagai media transmisi.
Pada komunikasi serial hanya satu bit yang ditransmisikan pada satu waktu
sehingga apabila transmisi menggunakan media udara bebas (free space) maka
dibagian penerima tidak akan muncul kesulitan untuk menyusun kembali bit-bit
yang ditransmisikan.
d. Komunikasi serial dapat diterapkan untuk berkomunikasi dengan
mikrokontroler.
Hanya dibutuhkan dua pin utama TxD dan RxD (diluar acuan ground).
18
18
2.2.1 Konektor DB9
Untuk menjalankan komunikasi serial antara PC dengan mikrokontroler dibutuhkan
sebuah konektor. Konektor yang biasanya digunakan untuk komunikasi serial adalah konektor
DB9, seperti ditujukkan pada gambar 2.10. Konektor ini mempunyai 9 pin yang memiliki
fungsi – fungsi yang berbeda. Untuk konfigurasi null modem yang digunakan hanya pin 2, 3
dan 5. Konektor ini mempunyai dua bentuk yaitu DB9 jantan(male) dan DB9 betina (female).
Tabel 2.1 menunjukkan keterangan dan fungsi dari pin konektor DB9.
Gambar 2.10 Konektor DB9
Tabel 2.1 Tabel Keterangan dan Fungsi Pin Konektor DB9
19
19
2.2.2 IC MAX232
Integrated Circuit (IC) ini digunakan sebagai driver dan berfungsi juga sebagai
penerima sebelum dilanjutkan ke mikrokontroler. Di dalam IC ini terdapat charge pump yang
akan membangkitkan +10 V dan -10 V dari sumber tegangan +5 V. IC ini memiliki 2 buah
transmitter dan 2 buah receiver. Gambar IC MAX232 ditunjukkan pada gambar 2.11 dan
untuk keterangan pin IC MAX232 ditunjukkan pada tabel 2.2.
Gambar 2.11 IC MAX232 [4]
Tabel 2.2 Tabel Keterangan Pin IC MAX232
Pin Simbol Keterangan Pin Simbol Keterangan
1 C1+ Pin positif kapasitor 1 9 R2out Keluaran receiver 2
2 V+ Keluaran tegangan +10V 10 T2in Masukan transmitter 2
3 C1- Pin negatif kapasitor 1 11 T1in Masukan transmitter 1
4 C2+ Pin positif kapasitor 2 12 R1out Keluaran receiver 1
5 C2- Pin negatif kapasitor 2 13 R1in Masukan receiver 1
6 V- Keluaran tegangan -10V 14 T1out Keluaran transmitter 1
7 T2out Keluaran transmitter 2 15 GND Masukan catu daya negatif
8 R2in Masukan receiver 2 16 VCC Masukan catu daya positif (+5V)
20
20
2.3 Penampil Grafik
Penampil grafik yang digunakan adalah sebuah LCD grafik (Graphical Liquid Cell
Display). LCD grafik adalah sebuah modul untuk menampilkan grafik atau karakter dengan
luas tampilan tertentu (misalnya: 128x64 pixel, 240x64 pixel, dll). LCD grafik ini memiliki
controller T6963 yang berfungsi sebagai driver pada LCD grafik ini.
Gambar 2.12 LCD Grafik 240x64 pixel
Tabel 2.3 Tabel Pin LCD Grafik WG24064c [5]
21
21
Penjelasan pin – pin LCD grafik WG24064c adalah sebagai berikut :
a. FG (Frame Ground ) - dihubungkan dengan catu daya negatif (GND).
b. Vss - tegangan 0 V (GND) LCD grafik.
c. Vdd - tegangan +5 V.untuk catu daya LCD grafik.
d. Vo - tegangan pengatur kontras layar LCD grafik.
e. WR(Data Write) - mode tulis LCD grafik.
f. RD(Data Read) - mode baca LCD grafik.
g. CE(Chip Enable) - mengaktifkan chip.
h. C/D(Command Data) - mengendalikan perintah tulis atau baca.
i. Vee - output tegangan negatif.
j. RESET - me-reset LCD grafik.
k. DB0 - DB7 - jalur data LCD grafik.
l. FS(Font Selection) -memilih ukuran font yang akan digunakan.
m. NC(No Connection) - tidak dihubungkan (NC).
LCD yang digunakan adalah LCD grafik WG24064c yang mempunyai luas tampilan
240x64 pixel, seperti terlihat pada gambar 2.12. LCD ini dapat menampilkan karakter dengan
dua pilihan pixel, yaitu 6x8 pixel dan 8x8 pixel. Pemilihan dapat dilakukan pada saat
pemograman software untuk LCD grafik. Keterangan dan letak pin dari LCD WG24064c
ditunjukkan pada tabel 2.3.
2.4 Spektrum Cahaya dan Gelas Dydinium [6]
Spektrum optik (cahaya atau spektrum terlihat atau spektrum tampak) adalah bagian
dari spektrum elektromagnetik yang tampak oleh mata manusia. Radiasi elektromagnetik
dalam rentang panjang gelombang ini disebut sebagai cahaya tampak atau cahaya saja
(visible). Tidak ada batasan yang tepat dari spektrum optik; mata normal manusia akan dapat
menerima panjang gelombang dari 400 sampai 700 nm, meskipun beberapa orang dapat
menerima panjang gelombang dari 380 sampai 780 nm (atau dalam frekuensi 790-400
terahertz). Mata yang telah beradaptasi dengan cahaya biasanya memiliki sensitivitas
22
22
maksimum di sekitar 555 nm, di wilayah hijau dari spektrum optik. Warna pencampuran
seperti pink atau ungu, tidak terdapat dalam spektrum ini karena warna-warna tersebut hanya
akan didapatkan dengan mencampurkan beberapa panjang gelombang.
Cahaya putih dipencarkan oleh sebuah prisma menjadi warna-warna dalam spektrum
optik. Meskipun spektrum optik adalah spektrum yang kontinyu sehingga tidak ada batas yang
jelas antara satu warna dengan warna lainnya, tabel 2.4 memberikan batas kira-kira untuk
warna-warna spektrum :
Tabel 2.4 Spektrum Warna Cahaya Tampak
Warna Panjang gelombang (nm)
Ungu 380 – 450
Biru 450 – 495
Hijau 495 – 570
Kuning 570 – 590
Jingga 590 – 620
Merah 620 – 750
Gelas Dydinium banyak digunakan untuk menguji panjang gelombang cahaya tampak.
Spektrum gelas dydinium standar ditunjukkan pada gambar 2.13.
Gambar 2.13 Spektrum Gelas Dydinium
23
23
2.5 Sistem Pengendalian Lokal dan Remote
Pada perancangan sistem spektrofotometer ini, terdapat dua sistem pengendalian yaitu
sistem lokal dan sistem remote. Sistem lokal adalah sistem yang penyetelan set point dan
pengendalian dilakukan oleh mikrokontroler tanpa melakukan komunikasi dengan peralatan
lain. Sistem remote adalah sistem yang penyetelan set point dilakukan dari PC yang
dihubungkan secara serial ke mikrokontroler. Masing-masing sistem memiliki set point yang
nilainya berbeda dan berfungsi sebagai nilai yang harus dimasukkan agar sistem bisa
dijalankan / diproses. Proses pemilihan sistem pengendalian ini ditunjukkan pada gambar
2.14.
Gambar 2.14 Proses Pemilihan Sistem Pengendalian
24
24
BAB III
PERANCANGAN
3.1 Arsitektur Sistem
Perancangan ini terdiri dari dua sistem, yaitu subsistem hardware dan subsistem
software. Subsistem hardware terdiri dari minimum system untuk mikrokontroler AVR
ATMega8535, LCD grafik, dan RS232, sedangkan untuk subsistem software, berhubungan
dengan program yang akan digunakan untuk menjalankan sistem ini. Arsitektur umum dari
sistem ini ditunjukkan pada Gambar 3.1.
Keterangan:
Hardware yang telah ada.
Hardware yang akan ditambahkan dalam perancangan.
Hardware pendukung.
Gambar 3.1 Arsitektur Umum
Sumber
Cahaya
Polikromatis
Monokromator Kuvet Photodetektor
Mikrokontroler #1 Mikrokontroler #2
PC
RS232 LCD Grafik
Keypad
LCD
Motor
Stepper #1
Motor
Stepper #2
25
25
Penjelasan Sistem
Terdapat dua sistem pengendalian untuk menjalankan sistem spektrofotometer pada
perancangan ini, yaitu sistem lokal dan sistem remote. Sistem ini akan dikendalikan oleh dua
mikrokontroler. Untuk memilih sistem pengendaliannya digunakan keypad yang terhubung
dengan mikrokontroler #1. Pertama-tama, posisi kuvet dan monokromator akan diposisikan ke
posisi awal. Kuvet dan monokromator akan digerakkan oleh dua motor stepper yang diatur
oleh mikrokontroler #1, motor stepper #1 akan menggerakkan monokromator dan motor
stepper #2 akan menggerakkan kuvet. Sumber cahaya polikromatis berupa lampu halogen
akan memancarkan berkas cahaya ke optik penerima monokromator. Di dalam monokromator
cahaya tersebut akan dipantulkan oleh cermin hingga mencapai optik pemancar. Cahaya yang
dikeluarkan dari optik pemancar berupa cahaya monokromatis. Monokromator akan
digerakkan untuk memilih panjang gelombang yang diinginkan (antara 380 nm sampai 750
nm). Cahaya monokromatis akan mengenai senyawa yang terletak di dalam kuvet. Selanjunya,
cahaya yang menembus senyawa dalam kuvet akan mengenai photodetektor. Keluaran
photodetektor berupa tegangan yang akan masuk ke ADC mikrokontroler #1. Data-data hasil
pengukuran akan ditampilkan pada LCD. Mikrokontroler #1 juga akan mengirimkan data ke
mikrokontroler #2 untuk menampilkan kurva baku pada LCD grafik. Jika user memilih sistem
remote, mikrokontroler #1 akan melakukan komunikasi data secara serial dengan PC melalui
RS232.
Proses Pengukuran
Proses pengukuran mempunyai beberapa tahap, yaitu :
a. Pembuatan senyawa-senyawa yang akan diukur. Senyawa akan dibuat dengan kadar
ppm yang berbeda.
b. Pengukuran kuvet kosong. Tahap ini berfungsi untuk mendapatkan serapan / absorban
terbesar karena kuvet belum diisi oleh senyawa.
c. Pengukuran kuvet referensi. Tahap ini brerfungsi untuk mendapatkan panjang
gelombang maksimal yang digunakan untuk tahap selanjutnya. Nilai serapan yang
didapatkan pada tahap ini akan dikurangi dengan serapan terbesar pada pengukuran
kuvet kosong.
26
26
d. Pengukuran kuvet untuk menghasilkan kurva baku. Kurva baku dibutuhkan untuk
mendapatkan persamaan kurva baku yang nantinya digunakan untuk mendapatkan
nilai konsentrasi senyawa 1 dan senyawa 2 di dalam larutan. (Untuk sistem lokal,
proses pengukuran akan berhenti pada saat kurva baku ditampilkan dan tidak
menghitung persamaan kurva baku)
e. Pengukuran larutan. Tahap ini merupakan tahap terakhir dari proses pengukuran.
Tahap ini akan mendapatkan nilai serapan dari sebuah larutan sehingga akan
didapatkan nilai konsentrasi senyawa 1 dan senyawa 2 dengan menggunakan
persamaan kurva baku yang didapat dari tahap sebelumnya.
3.2 Sistem Pengendalian
Sistem spektrofotometer yang akan dirancang akan memudahkan user untuk
melakukan pengukuran larutan dan menghemat waktu karena sistem ini akan diotomasi.
Sistem ini memiliki dua pilihan pengendalian, yaitu sistem lokal dan sistem remote. User
tinggal memilih menu yang akan ditampilkan pada LCD dengan menekan keypad yang
tersedia.
3.2.1 Sistem Lokal
Sistem lokal akan bekerja apabila user telah menekan keypad 1. Selanjutnya, kuvet dan
monokromator akan dikendalikan secara otomatis oleh dua buah motor stepper yang
dihubungkan dengan mikrokontroler #1. Hal itu dilakukan untuk mengecek apakan kuvet dan
monokromator berada pada posisi awal pergerakan. Kuvet akan dijalankan dan di-scan untuk
semua panjang gelombang. Jika telah selesai monokromator akan dikembalikan ke posisi
awal, untuk melakukan scanning untuk kuvet berikutnya. Proses ini berlangsung sampai
semua kuvet telah di-scan dengan panjang gelombang yang bermacam-macam (dari 380 nm
sampai 750 nm). Sensor phototransistor akan mengirim data secara terus menerus ke ADC
mikrokontroler #1. Langkah ini dilakukan pada kuvet kosong dan kuvet yang berisi senyawa
referensi. Data-data tersebut akan dibandingkan untuk mendapatkan panjang gelombang
maksimum di mana serapan terbesar terjadi.
27
27
Setelah didapatkan dua panjang gelombang maksimum (panjang gelombang dimana
terjadi serapan terbesar) untuk dua jenis senyawa yang akan diukur (masing-masing senyawa
memiliki satu panjang gelombang maksimum), posisi monokromator akan diposisikan pada
panjang gelombang tersebut oleh mikrokontroler #1 untuk mengukur senyawa dengan
beberapa konsentrasi yang berbeda. Setiap satu jenis senyawa dengan konsentrasi yang
berbeda akan diberikan dua panjang gelombang maksimum untuk mengukur absorban /
serapan. Hal ini dilakukan untuk dua jenis senyawa berbeda. Mikrokontroler #1 akan
menampilkan data-data yang diukur pada LCD dan akan dikirim ke mikrokontroler #2.
Mikrokontroler #2 akan menampilkan kurva baku pengukuran melalui LCD grafik.
3.2.2 Sistem Remote
Sistem remote hampir sama dengan sistem lokal. Perbedaannya terletak pada
komunikasi data antara mikrokontroler #1 dengan sebuah PC. Alur komunikasi data ini
ditunjukkan pada gambar 3.2.Sebelum melakukan scanning, mikrokontroler #1 akan
memberikan sinyal / tanda siap untuk melakukan scanning kepada PC. Kemudian, PC melalui
program visual akan mengirim tanda / sinyal mulai ke mikrokontroler #1 untuk memulai
proses scanning senyawa. Mikrokontroler #1 akan menjalankan motor stepper #1 dan motor
stepper #2 untuk mengecek kuvet dan monokromator berada pada posisi awal atau tidak. Jika
tidak berada pada posisi awal, maka mikrokontroler #1 akan menjalankan program untuk
mengembalikan kuvet dan monokromator ke posisi awal pergerakan. Proses scanning sama
seperti sistem lokal, data dari sensor akan diolah oleh ADC mikrokontroler #1. Data yang
telah diolah menjadi serapan oleh mikrokontroler #1 akan dikirim ke PC. Setelah selesai
melakukan proses scanning untuk kuvet berisi senyawa referensi dan kuvet kosong,
mikrokontroler #1 akan mengirimkan sinyal / tanda selesai ke PC.
Setelah mendapatkan dua panjang gelombang maksimum untuk dua jenis senyawa
(masing-masing senyawa memiliki satu panjang gelombang maksimum) dari perbandingan
serapan terbesar antara proses scanning kuvet kosong dan proses scanning kuvet yang berisi
senyawa referensi, mikrokontroler #1 akan mengirim sinyal / tanda siap untuk melakukan
proses scanning beberapa kuvet yang berisi senyawa dengan konsentrasi yang berbeda ke PC.
PC akan mengirim sinyal untuk melakukan proses scanning kuvet berisi senyawa dengan
28
28
beberapa konsentrasi yang berbeda. Mikrokontroler #1 akan menggerakkan motor stepper #1
untuk menempatkan monokromator pada panjang gelombang yang didapat. Proses ini
dilakukan untuk dua senyawa. Masing-masing senyawa akan di-scan dengan dua panjang
gelombang tersebut. Mikrokontroler #1 akan mengirim data yang telah diolah berupa serapan
ke PC dan mikrokontroler #2. Setelah melakukan proses ini, data yang diterima oleh PC dan
mikrokontroler #1 akan diolah untuk dijadikan kurva baku sehingga terdapat dua kurva baku,
yaitu kurva baku pada program visual dan kurva baku pada hardware spektrofotometer yang
akan ditampilkan pada LCD grafik oleh mikrokontroler #2.
Gambar 3.2 Alur Komunikasi Mikrokontroler dan PC
Mikrokontroler #1 akan mengirim tanda / sinyal siap untuk proses scanning obat atau
larutan yang mengandung dua senyawa tersebut ke PC. Kemudian PC akan mengirim tanda /
sinyal mulai proses scanning dan mikrokontroler #1 akan mulai melakukan proses scanning
dan mengirim data sensor ke PC dan akan diolah juga di dalam mikrokontroler #1. Setelah
29
29
selesai melakukan proses tersebut mikrokontroler #1 akan mengirim sinyal / tanda ke PC
bahwa proses telah selesai. PC juga akan mengirim tanda / sinyal selesai ke mikrokontroler.
3.3 Kalibrasi Panjang Gelombang Spektrofotometer
Pengkalibrasian panjang gelombang spektrofotometer dilakukan dengan menggunakan
gelas dydinium. Gelas ini merupakan alat yang digunakan untuk menguji panjang gelombang
cahaya tampak (visible). Panjang gelombang spektrofotometer ditentukan dengan cara
menguji penyerapan gelas dydinium. Hasil dari pengujian ini dibandingkan dengan
penyerapan gelas dydinium pada alat standar yang dijelaskan pada bab II. Dari hasil
perbandingan, akan didapatkan jumlah step yang harus dilakukan motor stepper untuk
mencapai satu lambda.
3.4 Perancangan Subsistem Hardware
3.4.1 Perancangan Minimum System Mikrokontroler ATMega8535
Minimum system adalah suatu perangkat dimana chip mikrokontroler dapat bekerja
setelah men-download program dari software ke mikrokontroler. Mikrokontroler
ATMega8535 telah dilengkapi dengan osilator internal (1 MHz, 2 MHz, 4 MHz, dan 8 MHz).
Osilator digunakan sebagai sumber clock CPU. Pada perancangan minimum system ini, akan
ditambahkan sebuah kristal / resonator eksternal sebesar 12 MHz. Kristal ini ditambahkan
untuk mengantisipasi jika suatu program membutuhkan kristal yang tidak terdapat pada
Atmega 8535. ATMega8535 juga telah memiliki pin Reset internal. Push button berfungsi
untuk meng-reset mikrokontroler sehingga tidak perlu mematikan sumber daya untuk
mengulang program yang akan dijalankan. Mikrokontroler ini memiliki empat port yang
masing-masing port memiliki delapan pin. Port A berfungsi untuk ADC (Analog to Digital
Converter). Sedangkan Port D.0 (Receiver = Rx) dan Port D.1 (Transmitter = Tx) berfungsi
untuk komunikasi serial.
30
30
Rangkaian ini perlu ditambahkan pada perancangan ini karena port rangkaian
mikrokontroler #1 tidak cukup digunakan untuk hardware yang memerlukan banyak port
karena telah digunakan untuk beberapa hardware. Hardware yang dihubungkan dengan port
mikrokontroler #1 antara lain: sensor (port A), motor stepper (port B) , keypad (port C), LCD
character (port D), dan komunikasi serial RS232 (port D) .Gambar 3.3 menunjukkan
rangkaian minimum system ATMega 8535.
GND
GND
+5 V
GND
J1
ATMEGA 8535
1234567891011121314151617181920
4039383736353433323130292827262524232221
30 pF
+5 V
SW1
30 pF
R1
+5 V
CRYSTAL 12MHz10 uF
Gambar 3.3 Rangkaian Minimum System [7]
3.4.2 Perancangan LCD Grafik
Pada perancangan tugas akhir ini LCD grafik akan digunakan untuk menampilkan
kurva baku senyawa yang telah di-scan. Rangkaian LCD grafik akan dihubungkan dengan
rangkaian mikrokontroler #2 karena port pada rangkaian mikrokontroler #1 tidak cukup untuk
dihubungkan dengan rangkaian ini. Ramgkaian LCD grafik ini ditunjukkan pada gambar 3.4.
Tegangan yang diperlukan untuk mengaktifkan rangkaian ini adalah sebesar 5 V. Untuk
pengaturan kontras digunakan potensiometer sebesar 10 kΩ. Pemilihan potensiometer 10kΩ
ini dilakukan berdasarkan percobaan yang telah dilakukan.
31
31
J113579
1113151719
2468101214161820
++++++++++
++++++++++
J18
12
123456 12345678
+5V GND
J17
1 2
LCD_Grafik
ATMEGA8535
1 3
2
POT 10K
PORTB.0 - PORTB.5 PORTC.0 - PORTC.7
Gambar 3.4 Rangkaian LCD Grafik [5]
3.4.3 Perancangan RS232
RS232 digunakan sebagai interface komunikasi serial antara mikrokontroler dengan
program visual di PC. Rangkaian RS232 ditunjukkan oleh gambar 3.5. Nilai kapasitor masing-
masing sebesar 1 uF didapat dari datasheet. IC yang digunakan pada rangkaian ini adalah
MAX232. Pin 11 dari MAX232 akan dihubungkan dengan port D.0 mikrokontroler #1 dan pin
12akan dihubungkan dengan port D.1 mikrokontroler #1.
32
32
1uF
+5 V
1uF
1uF
J2
12
1uF
PD 1 (Tx D)1uF
PD 0 (Rx D)
P1
DB9
594837261
GND
ATMEGA 8535
J1
MAX 232
12345678
161514131211109
Gambar 3.5 Rangkaian RS232
3.5 Perancangan Subsistem Software
3.5.1 Perancangan Program Utama
Progran utams sistem ini akan dirancang untuk memilih salah satu sistem yang akan
dijalankan. Pada perancangan ini terdapat dua sistem yang bisa dipilih, yaitu sistem lokal dan
sistem remote. LCD akan menampilkan menu berisi pilihan sistem perancangan ini. Proses
pemilihan menggunakan keypad untuk memilih sistem mana yang akan dipilih untuk
melakukan proses scanning. Setelah melakukan proses pemilihan sistem ini, proses akan
dilanjutkan tergantung sistem yang telah dipilih. Gambar 3.6 menunjukkan flowchart dari
program utama.
33
33
Gambar 3.6 Flowchart Program Utama
3.5.2 Perancangan Program Sistem Lokal
Program ini akan dijalankan setelah user menekan angka 1 pada keypad. Jika tidak ada
penekanan maka program akan menunggu sampai keypad ditekan. Gambar 3.7 menunjukkan
flowchart dari sistem lokal.
34
34
Gambar 3.7 Flowchart Program Sistem Lokal
3.5.3 Perancangan Program Sistem Remote
Program ini akan dijalankan setelah user menekan angka 2 pada keypad. Jika tidak ada
penekanan maka program akan menunggu sampai keypad ditekan. Mikrokontroler #1 akan
melakukan komunikasi serial pada sistem ini. Gambar 3.8 menunjukkan flowchart dari sistem
remote.
35
35
Gambar 3.8 Flowchart Program Sistem Remote
36
36
3.5.4 Perancangan Program Penampilan Kurva Baku
Kurva baku akan ditampilkan oleh mikrokontroler #2 setelah menerima data yang
dikirimkan oleh mikrokontroler #1. Gambar 3.9 menunjukkan flowchart dari program
penampilan kurva baku pada mikrokontroler #2..
Gambar 3.9 Flowchart Program Penampilan Kurva Baku
3.6 Perancangan Tampilan LCD Grafik
Kurva baku yang dihasilkan setelah proses scanning beberapa kuvet berisi senyawa
dengan konsentrasi berbeda akan ditampilkan pada LCD grafik. Kurva tersebut akan
ditampilkan sekaligus pada LCD tersebut. Terdapat empat kurva baku untuk perancangan ini,
dua kurva untuk senyawa pertama dan dua lagi untuk senyawa kedua, seprti ditunjukkan pada
gambar 3.10. Konsentrasi dalam ppm akan dinyatakan pada sumbu x dari kurva baku. Untuk
absorbansinya akan dinyatakan pada sumbu y.
37
37
Gambar 3.10 Tampilan Kurva Baku pada LCD Grafik
3.7 Perhitungan Nilai ADC
Mikrokontroler ATMega8535 memiliki 8 kanal ADC masing-masing mempunyai
resolusi 10 bit. ADC mikrokontroler ATMega 8535 terletak di PORTA. ADC yang digunakan
pada perancangan ini memiliki tegangan masukan +5 V yang diambil dari pin AVCC dan
tegangan referensi +5 V yang diambil dari pin AREF. Resolusi yang digunakan pada
perancangan ini adalah 8 bit. Pemilihan resolusi 8 bit lebih dikarenakan akan dilakukan
komunikasi data secara serial dengan PC.
Contoh : Tegangan masukan dari sensor sebesar 2.5 V, tegangan referensi sebesar 5 V dan
resolusi yang digunakan 8 bit. Nilai ADC yang akan dihasilkan adalah 128.
38
38
BAB IV
HASIL DAN PEMBAHASAN
Untuk mengetahui suatu alat atau program dapat bekerja dengan baik diperlukan
pengujian terhadap alat atau program tersebut. Melalui pengujian-pengujian tersebut, maka
akan diperoleh hasil berupa data-data yang dapat memperlihatkan bahwa hardware atau
software yang dirancang telah bekerja dengan baik atau tidak. Dari data-data tersebut dapat
dilakukan analisis terhadap proses kerja alat yang kemudian dapat digunakan untuk menarik
kesimpulan dari apa yang disajikan dalam tugas akhir ini.
4.1 HASIL PERANCANGAN DAN TAMPILAN LUAR ALAT
Perancangan terdiri dari tiga blok rangkaian, yaitu rangkaian minimum system
mikrokontroler #2, rangkaian LCD grafik, dan rangkaian RS232. Pada alat ini juga terdapat
beberapa blok rangkaian yang telah ada pada perancangan sebelumnya, yaitu rangkaian driver
motor stepper, rangkaian minimum system mikrokontroler #1 dan rangkaian keypad 3x4.
Gambar hasil perancangan ditunjukkan pada gambar 4.1.
Gambar 4.1 Hasil Perancangan
39
39
Tampilan luar sistem spektofotometer visibel ini berbentuk sebuah kotak dengan
beberapa perangkat yang diletakkan di luar kotak, seperti penampil LCD character, keypad
3x4, dan LCD grafik. Hal ini dikarenakan perangkat-perangkat tersebut berfungsi sebagai
input (keypad 3x4) dan output (penampil LCD character dan LCD grafik) untuk user alat ini.
Gambar tampilan luar alat ditunjukkan oleh gambar 4.2.
Gambar 4.2 Tampilan Luar Alat
4.2 PENGUJIAN HARDWARE
4.2.1 PENGUJIAN RANGKAIAN MINIMUM SYSTEM
MIKROKONTROLER ATMega8535
Pengujian rangkaian minimum system mikrokontroler ini dilakukan untuk mengetahui
apakah rangkaian ini bekerja dengan fungsi semestinya yang telah dibahas pada bab III.
Pengujian yang dilakukan adalah dengan membuat program dan men-download program
tersebut pada mikrokontroler AVR ATMega8535. Untuk mengetahui apakah rangkaian
minimum system ini bekerja dengan benar maka hasil penulisan program yang telah dibuat
akan ditampilkan pada LCD character. Gambar rangkaian LCD character ditunjukkan pada
gambar 4.3. Program yang dituliskan pada software dengan bahasa basic adalah sebagai
berikut :
$regfile = "m8535.dat" ' Mikrokontroler yang digunakan
40
40
$crystal = 8000000 ' Frekuensi kristal yang digunakan - internal
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 =
Portd.7 , E = Portd.3 , Rs = Portd.2
Cls 'clear LCD
Lcd " SPEKTROFOTOMETER " 'Tampilkan tulisan SPEKTROFOTOMETER
Lowerline 'Pilih baris bawah
Lcd " VISIBLE " 'Tampilkan tulisan VISIBLE
Wait 3 'Tunggu tiga detik
Cls 'clear LCD
5K
LCD 2x16
1 2 3 4 5 6 7 8 9 10
11
12
13
14
15
16
Vcc Gnd
123456
R1POT1
3
2
12
PORTD.2 - PORTD.7
Gambar 4.3 Rangkaian LCD Character
Program ini juga telah diuji pada PORT.A, PORT.B, dan PORT.C rangkaian minimum
system ini dengan cara mengganti pengaturan letak pin pada program. Hal ini dilakukan untuk
memastikan semua PORT pada minimum system ini telah berfungsi dengan baik. Gambar hasil
pengujian ditunjukkan pada gambar 4.4.
Gambar 4.4 Hasil Pengujian pada LCD Character
41
41
Dari pengujian rangkaian minimum system ini maka dapat disimpulkan bahwa
rangkaian ini bekerja dengan benar, karena rangkaian ini berhasil menampilkan tulisan pada
LCD character sesuai dengan yang dituliskan pada program.
4.2.2 PENGUJIAN RANGKAIAN LCD GRAFIK
Pengujian rangkaian LCD grafik ini bertujuan untuk mengetahui apakah rangkaian ini
dapat digunakan untuk menjalankan LCD grafik WG24064c. Pengujian dilakukan dengan
menghubungkan rangkaian ini dengan minimum system mikrokontroler #2 dan LCD grafik
WG24064c. Kemudian, program dibuat dan di-download ke mikrokontroler AVR
ATMega8535. Gambar hasil pengujian rangkaian LCD grafik ditunjukkan pada gambar 4.5.
Program yang ditulis pada software dengan bahasa basic adalah sebagai berikut :
$regfile = "m8535.dat" 'Mikrokontroler yang digunakan
$crystal = 8000000 ' Frekuensi kristal yang digunakan - internal
Config Graphlcd = 240 * 64 , Dataport = Portb , Controlport = Portc , Ce = 2 , Cd =
3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
Cls 'clear LCD
Cursor Off 'Matikan kursor
Locate 1 , 2 : Lcd "Grafik Spektrofotometer Vis" 'Tampilkan tulisan
Locate 2 , 13 : Lcd "Oleh :" 'Tampilkan tulisan
Locate 3 , 3 : Lcd "David Robinson 07 5114 002" 'Tampilkan tulisan
Locate 4 , 6 : Lcd "Teknik Elektro 2007" 'Tampilkan tulisan
Locate 5 , 4 : Lcd "Universitas Sanata Dharma" 'Tampilkan tulisan
Locate 6 , 11 : Lcd "Yogyakarta" 'Tampilkan tulisan
Locate 7 , 2 : Lcd "Senyawa1 = 2 gambar di kiri" 'Tampilkan tulisan
Locate 8 , 2 : Lcd "Senyawa2 = 2 gambar di kanan" 'Tampilkan tulisan
Wait 10 'Tunggu 10 detik
Gambar 4.5 Hasil Pengujian Rangkaian LCD Grafik
42
42
Dari pengujian rangkaian LCD grafik ini maka dapat disimpulkan bahwa rangkaian ini
bekerja dengan benar, karena rangkaian ini berhasil menampilkan tulisan pada LCD grafik
sesuai dengan yang dituliskan pada program.
4.2.3 PENGUJIAN RANGKAIAN RS232
Pengujian dilakukan dengan cara membandingkan nilai tegangan keluaran pada V+
(pin 2) dan V- (pin 6) pada rangkaian dengan nilai tegangan pada datasheet pada saat
dihubungkan dengan catu daya +5 V dan pada saat keadaan tanpa beban. Hal ini dilakukan
untuk mengetahui apakah rangkaian ini dapat mengubah level tegangan TTL menjadi level
tegangan RS232. Hasil pengujian rangkaian RS232 ditunjukkan pada tabel 4.1.
Tabel 4.1 Hasil Pengujian Rangkaian RS232
Titik Uji Data Pengamatan Datasheet % Galat
V+ + 9.26 V +10 V 7.4 %
V- - 8.84 V -10 V 11.6 %
Dari tabel 4.1, tampak bahwa rangkaian RS232 ini dapat berfungsi dengan baik karena nilai
tegangan keluaran pada V+ dan V- dapat mendekati + 10 V dan -10 V.
4.2.4 PENGUJIAN PENGIRIMAN DATA DARI
MIKROKONTROLER AVR ATMega8535 KE PERSONAL
COMPUTER (PC)
Pengujian komunikasi ini bertujuan untuk mengetahui dan memastikan komunikasi
dari mikrokontroler #1 ke PC dapat bekerja dengan baik. Pengujian dilakukan dengan
menggunakan program yang terdapat pada PC yaitu Hyperterminal yang berfungsi sebagai
terminal untuk menerima data dari mikokontroler. Jika pengiriman berhasil dilakukan maka
pada tampilan Hyperterminal akan ditampilkan tulisan “rd1”. Gambar pengujian komunikasi
dari mikrokontroler #1 ke PC ditunjukkan pada gambar 4.6. Program yang ditulis pada
software dengan bahasa basic adalah sebagai berikut :
$regfile = "8535def.dat" 'Mikrokontroler yang digunakan
43
43
$crystal = 8000000 'Frekuensi yang digunakan
$baud = 9600 'Baud rate yang digunakan
Print "rd1" 'Mengirim tulisan “rd1” ke port serial
End „Selesai.
Gambar 4.6 Hasil Pengujian Komunikasi Dari Mikrokontroler #1 ke PC
Dari pengujian ini maka dapat disimpulkan bahwa pengiriman data dari mikokontroler
#1 ke PC dapat berjalan dengan baik.
4.3 PENGUJIAN SOFTWARE
Pengujian software ini bertujuan untuk memastikan program-program yang telah
dibuat dapat bekerja sesuai dengan yang telah direncanakan pada bab sebelumnya.
4.3.1 PENGUJIAN PROGRAM UTAMA
Program utama berisi program untuk pemilihan menu sistem pengendalian dan
penekanan keypad yang disediakan untuk user pada perancangan ini. Dalam program ini juga
terdapat program pemilihan rutin program yang akan dijalankan berdasarkan penekanan
keypad. User dapat memilih sistem pengendalian yang diinginkan menggunakan keypad.
Tampilan menu sistem pengendalian akan ditampilkan pada LCD character. Gambar tampilan
menu ditunjukkan pada gambar 4.6. Program di bawah adalah program untuk menampilkan
pilihan menu pada LCD character :
44
44
Menu: 'Label
Lcd "Pilih menu" 'Tampilkan tulisan
Lowerline 'Pindah baris dibawah
Lcd "1:Lokal" 'Tampilkan tulisan
Wait 2 'Tunggu 2 detik
Cls 'Clear LCD
Lcd "2:Remote" 'Tampilkan tulisan
Lowerline 'Pindah baris dibawah
Lcd " Pilih 1 / 2?" 'Tampilkan tulisan
Gambar 4.7 Tampilan Menu
Program dibawah adalah program untuk penekanan keypad dan pemilihan rutin
program yang dipilih melalui keypad. Sistem akan dijalankan apabila user menekan keypad
angka 1 atau angka 2. Jika angka 1 yang ditekan maka mikrokontroler #1 akan memilih rutin
program GOSUB LOKAL untuk dijalankan dan jika angka 2 yang ditekan maka
mikrokontroler #1 akan memilih rutin program GOSUB REMOTE untuk dijalankan. Apabila
angka yang ditekan pada keypad tidak sesuai maka mikrokontroler #1 akan memilih rutin
program GOSUB ERROR untuk dijalankan.
Loopkeypad: 'Label
B = 0
B = Getkbd() 'Fungsi Keyboard
If B = 16 Then 'Jika nilai B=16, lompat ke label
Goto Loopkeypad Loopkeypad
End If
Cls 'Clear LCD
If B > 16 Then 'Jika nilai B >16, lompat ke label
45
45
Goto Loopkeypad Loopkeypad
End If
B1 = Lookup(b , Keytable) 'Mengambil data pada label
Keytable sesuai angka yang ditekan
Lcd "Menu=" ; B1 'Tampilkan tulisan
Wait 2 'Tunggu 2 detik
Menu1: 'Label
Select Case B1 'Memilih rutin berdasarkan angka
yang ditekan
Case 1 : Gosub Lokal 'Rutin 1
Case 2 : Gosub Remote 'Rutin 2
Case Else : Gosub Error 'Rutin 3
End Select 'Selesai memilih
End 'Selesai
Keytable: 'Label
Data 1 , 2 , 3 , 0 , 4 , 5 , 6 , 0 , 7 , 8 , 9 , 0 , 11 , 0 , 12 , 0 , 16
Dari pengujian program utama ini maka dapat disimpulkan bahwa program ini dapat
berjalan dengan baik karena program ini berjalan sesuai dengan perancangan pada bab III.
4.3.2 PENGUJIAN TAMPILAN LCD GRAFIK
Pengujian tampilan LCD grafik ini bertujuan untuk mengetahui apakah tampilan LCD
grafik sesuai dengan perancangan. Pengujian dilakukan dengan menggunakan program di
bawah ini. Program ini menggunakan perulangan DO – LOOP agar dapat menampilkan grafik
secara terus-menerus pada LCD grafik. Fungsi LINE digunakan untuk membuat gari lurus
secara horizontal maupun vertikal tergantung nilai yang dimasukkan pada program.
Do 'Perulangan
Line(1 , 50) -(52 , 50) , 255 'Garis horizontal grafik1
Line(1 , 1) -(1 , 50) , 255 'Garis vertical grafik1
Line(60 , 50) -(112 , 50) , 255 'Garis horizontal grafik 2
Line(60 , 1) -(60 , 50) , 255 'Garis vertical grafik 2
Line(120 , 50) -(172 , 50) , 255 'Garis horizontal grafik 3
Line(120 , 1) -(120 , 50) , 255 'Garis vertical grafik 3
Line(180 , 50) -(232 , 50) , 255 'Garis horizontal grafik 4
Line(180 , 1) -(180 , 50) , 255 'Garis vertical grafik 4
46
46
Wait 1 'Tunggu 1 detik
Locate 3 , 30 : Lcd "A" 'Tampilkan tulisan
Locate 4 , 30 : Lcd "b" 'Tampilkan tulisan
Locate 5 , 30 : Lcd "s" 'Tampilkan tulisan
Locate 8 , 6 : Lcd "KONSENTRASI (ppm)" 'Tampilkan tulisan
Program dibawah ini berfungsi untuk menampilkan garis batas pada masing-masing grafik.
Fungsi PSET sendiri berfungsi untuk menge-set pixel pada LCD grafik. Gambar hasil
pengujian ditunjukkan pada gambar 4.8.
'Fungsi Menampilkan Garis Batas Pada Grafik 1 – 4
For Z = 1 To 5
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 7 To 11
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 13 To 17
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 19 To 23
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
Pset 0 , Y , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
47
47
Pset 59 , Y , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
Pset 119 , Y , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
Pset 179 , Y , 255
Next Z
Wait 1
Loop 'Ulang terus
Gambar 4.8 Hasil Pengujian Program Tampilan LCD Grafik
Berdasarkan gambar 4.8 maka dapat disimpulkan bahwa perancangan tampilan LCD
grafik berhasil karena sesuai dengan tampilan pada perancangan.
4.4 PENGUJIAN SISTEM PENGENDALIAN
Pengujian sistem pengendalian bertujuan untuk mengetahui apakah sistem dapat
mengendalikan spektrofotometer sesuai dengan perancangan pada bab III. Pengujian
dilakukan dengan cara menjalankan sistem dan mengikuti langkah-langkah proses
pengukuran.
48
48
4.4.1 SISTEM LOKAL
Pengujian sistem lokal ini dilakukan dengan cara menjalankan program yang telah
dibuat sesuai perancangan. Pengujian dilakukan sebanyak tiga kali dan menggunakan senyawa
yang mempunyai kondisi yang berbeda. Program ini terdiri dari beberapa rutin program yang
digunakan untuk beberapa proses dalam pengukuran sampel. Pengukuran ini terdiri dari
beberapa langkah pengukuran :
1. Pengukuran Kuvet Kosong
Pengukuran dilakukan dengan cara meletakkan kuvet kosong (tidak ada isi)
ke dalam tempat peletakkan kuvet. Kemudian, monokromator akan dijalankan per
satu nm (dari 380 nm-750 nm). Cahaya monokromatis yang ditembakan
monokromator akan menembus kuvet karena tidak ada senyawa yang menyerap
cahaya ini. Cahaya akan diterima oleh sensor phototransistor dan dikirim ke
mikrokontroler #1. Data akan ditampilkan pada LCD character berupa nilai ADC
yang sudah dikonversi ke desimal. Nilai ADC tersebut akan digunakan pada proses
selanjutnya. Pengukuran dilakukan sebanyak sepuluh kali dengan menggunakan
kuvet yang sama dan dengan menggunakan sepuluh kuvet yang berbeda. Hal ini
dilakukan untuk mendapatkan kestabilan pengukuran karena tidak adanya data
pembanding yang menjadi acuan. Hasil pengukuran kuvet kosong ditunjukkan
pada gambar 4.9 dan gambar 4.10.
Gambar 4.9 Hasil Pengukuran Satu Kuvet Kosong Sebanyak 10 Kali
49
49
Gambar 4.10. Hasil Pengukuran Sepuluh Kuvet Kosong yang Berbeda
Dari gambar 4.9, dapat dilihat bahwa nilai ADC terbesar terjadi pada saat
monokromator berada pada panjang gelombang antara 600 nm-620 nm dengan
nilai ADC-nya berkisar antara 54 – 58 selama sepuluh kali pengujian dengan kuvet
yang sama. Pada gambar 4.10 nilai ADC terbesar terjadi pada panjang gelombang
antara 600 nm-620 nm dengan nilai ADC berkisar antara 54-62 selama sepuluh kali
pengujian dengan sepuluh kuvet yang berbeda.
Berdasarkan hasil-hasil tersebut dapat disimpulkan bahwa nilai ADC
pengukuran kuvet kosong dapat dipengaruhi oleh kuvet yang digunakan untuk
pengukuran.
2. Pengukuran Kuvet Referensi
Pengukuran kuvet referensi ini dilakukan dengan cara meletakkan dua kuvet
yang berisi dua senyawa yang berbeda dengan konsentrasi apa saja pada tempat
peletakkan kuvet. Selanjutnya, monokromator akan dijalankan per satu nm (380
nm-750 nm) untuk mendapatkan panjang gelombang dimana terjadi serapan
terbesar dengan cara mengurangi nilai ADC pengukuran kuvet kosong dengan
nilai ADC pada pengukuran kuvet referensi ini. Dari pengukuran ini akan
didapatkan dua panjang gelombang yang digunakan pada proses selanjutnya. Hasil
pengukuran ditunjukkan pada tabel 4.2.
50
50
Tabel 4.2 Hasil Pengukuran Kuvet Referensi
Senyawa Konsentrasi Pengujian
1
Pengujian
2
% Galat
PGM PGM
KMnO4 30 ppm 526 nm 525.4 nm 0.1142 %
K2Cr2O7 100 ppm 383 nm 351.2 nm 9.054 %
Keterangan : PGM = Panjang Gelombang Maksimum
Pengujian 1 dilakukan menggunakan spektrofotometer hasil perancangan,
sedangkan pengujian 2 menggunakan spektrofotometer buatan pabrik. Hal ini
dilakukan agar hasil pengujian 2 dapat menjadi acuan dalam menentukan apakah
pengukuran ini sudah benar atau belum. Pengukuran dilakukan secara bersamaan
dan dengan senyawa yang baru selesai dibuat. Senyawa yang digunakan adalah
KMnO4 dengan konsentrasi 30 ppm dan K2Cr2O7 dengan konsentrasi 100 ppm.
Dari tabel 4.2, dapat dilihat perbedaan panjang gelombang maksimum yang
diukur dengan spektrofotometer hasil perancangan dengan spektrofotometer buatan
pabrik. Persen galat yang terjadi mencapai 9.054 % untuk senyawa K2Cr2O7.
Untuk pengukuran senyawa KMnO4 yang secara teori memiliki panjang
gelombang maksimum 525 nm [8], perbedaan terjadi karena spektrofotometer hasil
perancangan hanya bisa menghasilkan panjang gelombang maksimum dengan
skala perubahan terkecil yaitu 1, sedangkan pada spektrofotometer buatan pabrik
dapat menghasilkan panjang gelombang maksimum dengan skala perubahan
terkecil yaitu 0.1. Untuk pengukuran senyawa K2Cr2O7 yang secara teori memiliki
panjang gelombang maksimum 350 nm [8], tidak bisa mendapatkan panjang
gelombang maksimumnya karena spektrofotometer hasil perancangan hanya bisa
mengukur dari panjang gelombang 380 nm–750 nm (disebabkan karena sumber
cahaya dan monokromator yang digunakan), sedangkan menurut pengukuran
menggunakan spektrofotometer buatan pabrik panjang gelombang maksimum
senyawa K2Cr2O7 berada pada panjang gelombang antara 350 nm-352 nm.
51
51
3. Pengukuran Kuvet untuk Menghasilkan Kurva Baku
Pengukuran ini dilakukan dengan menggunakan dua senyawa berbeda yang
mempunyai lima konsentrasi yang berbeda. Masing-masing senyawa akan diukur
dengan dua panjang gelombang maksimum yang telah didapatkan pada proses
pengukuran kuvet referensi. Nilai serapan atau absorban akan ditampilkan pada
LCD character dan nilai tersebut akan ditampilkan dengan bentuk grafik pada
LCD grafik. Pengukuran ini dilakukan untuk mendapatkan kurva baku hasil
pengukuran senyawa-senyawa tersebut. Hasil pengukuran ini ditunjukkan pada
tabel 4.3.
Tabel 4.3. Hasil Pengukuran Kuvet untuk Menghasilkan Kurva Baku
Keterangan : PGM -> Panjang Gelombang Maksimum
Abs -> Absorban
Senyawa Konsentrasi Pengujian 1 Pengujian 2 %Galat
PGM Abs PGM Abs
KMnO4 10 ppm 383 nm 0.02 351.2 nm 0.017 17.64 %
20 ppm 0.02 0.112 82.14 %
30 ppm 0.02 0.08 75 %
40 ppm 0.02 0.249 91.96 %
50 ppm 0.04 0.227 82.37 %
10 ppm 526 nm 0.06 525.4 nm 0.166 63.85 %
20 ppm 0.32 0.313 2.23 %
30 ppm 0.5 0.455 9.9 %
40 ppm 0.6 0.542 10.7 %
50 ppm 0.72 0.742 2.96 %
K2Cr2O7 20 ppm 383 nm 0 351.2 nm 0.246 100 %
40 ppm 0.04 0.459 91.28 %
60 ppm 0.04 0.717 94.42 %
80 ppm 0.04 0.897 95.54 %
100 ppm 0.06 1.14 94.73 %
20 ppm 526 nm 0 525.4 nm -0.04 0 %
40 ppm 0 -0.018 0 %
60 ppm 0 -0.018 0 %
80 ppm 0 -0.038 0 %
100 ppm 0 -0.018 0 %
52
52
Nilai serapan atau absorban yang didapatkan dari proses pengukuran ini akan
langsung dikirim ke mikrokontroler #2 oleh mikrokontroler #1 tiap kali
pengukuran satu kuvet selesai dilakukan. Pengukuran menggunakan pengendalian
sistem lokal akan berakhir setelah kuvet baku ditampilkan pada LCD grafik.
Tampilan nilai absorban pada LCD grafik ditunjukkan pada gambar 4.10.
Gambar 4.11 Hasil Tampilan LCD Grafik Pengujian 1
Pengujian 1 dilakukan menggunakan spektrofotometer hasil perancangan,
sedangkan pengujian 2 menggunakan spektrofotometer buatan pabrik. Hal ini
dilakukan agar hasil pengujian 2 dapat menjadi acuan dalam menentukan apakah
pengukuran ini sudah benar atau belum. Pengukuran dilakukan secara bersamaan
dan dengan senyawa yang baru selesai dibuat. Senyawa yang digunakan adalah
KMnO4 dan K2Cr2O7 dengan lima konsentrasi yang berbeda.
53
53
Dari tabel 4.3, dapat dilihat perbedaan hasil pengukuran menggunakan
spektrofotometer hasil perancangan dan spektrofotometer buatan pabrik. Perbedaan
terjadi karena panjang gelombang maksimum yang didapatkan pada pengukuran
kuvet referensi untuk senyawa K2Cr2O7 berbeda jauh dengan hasil pengukuran
spektrofotometer hasil perancangan. Hal ini membuat pengukuran yang
menggunakan panjang gelombang 383 nm tidak maksimal dan menyebabkan
persen galat yang sangat besar antara pengujian 1 dan pengujian 2. Perbedaan juga
terjadi karena skala perubahan terkecil dari spektrofotometer hasil perancangan
adalah sebesar 0.02 (pengaruh dari resolusi ADC yang digunakan), sedangkan
skala perubahan untuk spektrofotometer buatan pabrik bisa mencapai 0.001.
Pengukuran senyawa K2Cr2O7 pada pengujian 2 dengan panjang gelombang
526 nm menampilkan hasil negatif, karena pada spektrofometer hasil perancangan
tidak dapat menampilkan hasil negatif maka hasil yang ditampilkan adalah 0.
Berdasarkan analisa hasil pengujian sistem lokal ini, maka dapat disimpulkan bahwa
pengendalian sistem lokal berhasil dijalankan sesuai dengan perancangan yang telah dibuat
karena sudah bisa melakukan semua proses pengukuran secara berurutan sesuai dengan
langkah-langkah proses pengukuran, akan tetapi spektrofotometer ini belum bisa
menghasilkan data yang presisi seperti alat buatan pabrik dan tidak bisa mengukur senyawa
yang panjang gelombang maksimumnya berada pada panjang gelombang dibawah 380 nm
karena spektrofotometer ini mempunyai rentang panjang gelombang untuk melakukan
pengukuran antara 380 nm-750 nm.
4.4.2 SISTEM REMOTE
Pengujian sistem remote ini bertujuan untuk memastikan bahwa program yang dibuat
sesuai dengan perancangan dan komunikasi yang terjadi juga sesuai dengan alur komunikasi
yang telah dirancang pada gambar 3.2. Pengujian sistem remote dilakukan dengan
menggunakan program Hyperterminal yang terdapat pada PC sebagai terminal untuk
menerima data dari mikrokontroler #1. Untuk mengirim sinyal start masih menggunakan
54
54
keypad, karena belum dibuatnya komunikasi dari PC ke mikrokontroler #1. Hasil pengujian
sistem remote pada program hyperterminal ditunjukkan pada gambar 4.12.
Gambar 4.12 Hasil Pengujian Sistem Remote pada Program Hyperterminal
55
55
Berdasarkan gambar 4.12, dapat disimpulkan bahwa sistem remote sudah berjalan
sesuai dengan perancangan karena dapat mengendalikan dan menjalankan semua langkah-
langkah proses pengukuran dengan benar. Sistem ini juga dapat mengirimkan data hasil
pengukuran ke PC, dalam hal ini ke Hyperterminal. Alur komunikasi yang dirancang juga
dapat dijalankan dengan baik.
4.5 PENGUJIAN PENGUKURAN LARUTAN SAMPEL
Pengujian pengukuran larutan sampel dilakukan untuk mengetahui apakah pengukuran
ini sudah dapat berjalan sesuai perancangan, yaitu bisa mengukur lima sampel sekaligus dan
dapat menghasilkan perbedaan data apabila diukur dengan dua panjang gelombang yang
berbeda. Panjang gelombang maksimum yang digunakan adalah panjang gelombang
maksimum dari pengujian sistem lokal tersebut. Pengujian ini hanya sebagai pembuktian
sehingga tidak dapat melanjutkan ke proses mencari nilai konsentarsi dua senyawa pada
larutan sampel.
Pengujian dilakukan dengan cara meletakkan lima kuvet berisi larutan sampel yang
berisi campuran dua jenis senyawa (KMnO4 dan K2Cr2O7) sekaligus pada tempat peletakkan
kuvet. Kelima sampel ini akan diukur dengan dua panjang gelombang maksimum yang telah
didapatkan. Nilai serapan yang dihasilkan akan ditampilkan pada LCD character. Hasil
pengujian ditunjukkan pada tabel 4.4.
Tabel 4.4 Hasil Pengujian Pengukuran Larutan Sampel
Sampel Pengujian 1 Pengujian 2 %Galat
PGM Abs PGM Abs
1 383 nm 0.02 351.2 nm 0.118 83.05 %
526 nm 0 525.4 nm 0.089 100 %
2 383 nm 0.02 351.2 nm 0.235 91.49 %
526 nm 0.08 525.4 nm 0.17 52.94 %
3 383 nm 0.04 351.2 nm 0.335 88.06 %
526 nm 0.22 525.4 nm 0.246 10.57 %
4 383 nm 0.04 351.2 nm 0.428 90.65 %
526 nm 0.34 525.4 nm 0.322 5.6 %
5 383 nm 0.04 351.2 nm 0.508 92.12 %
526 nm 0.48 525.4 nm 0.41 17.07 %
56
56
Keterangan : PGM -> Panjang Gelombang Maksimum
Abs -> Absorban
Pengujian 1 dilakukan menggunakan spektrofotometer hasil perancangan, sedangkan
pengujian 2 menggunakan spektrofotometer buatan pabrik. Hal ini dilakukan agar hasil
pengujian 2 dapat menjadi acuan dalam menentukan apakah pengukuran ini sudah benar atau
belum. Pengukuran dilakukan secara bersamaan dan dengan larutan sampel yang baru dibuat.
Larutan sampel yang digunakan adalah larutan sampel 1 ml, 2 ml, 3 ml, 4 ml dan 5 ml.
Dari tabel 4.4, dapat dilihat perbedaan hasil pengukuran menggunakan
spektrofotometer hasil perancangan dan spektrofotometer buatan pabrik. Perbedaan terjadi
karena panjang gelombang maksimum yang didapatkan pada pengukuran kuvet referensi
untuk senyawa K2Cr2O7 berbeda jauh dengan hasil pengukuran spektrofotometer hasil
perancangan. Hal ini membuat pengukuran yang menggunakan panjang gelombang 383 nm
tidak maksimal dan menyebabkan perbedaan yang sangat besar antara pengujian 1 dan
pengujian 2. Perbedaan juga terjadi karena skala perubahan terkecil dari spektrofotometer
hasil perancangan adalah sebesar 0.02, sedangkan skala perubahan untuk spektrofotometer
buatan pabrik bisa mencapai 0.001. Berdasarkan hasil analisa, pengujian larutan sampel ini
dapat dinyatakan berhasil karena nilai serapan yang dihasilkan berbeda untuk dua panjang
gelombang maksimum tetapi nilai serapan yang dihasilkan belum bisa menghasilkan data
yang presisi seperti hasil pengukuran menggunakan spektrofotometer buatan pabrik.
4.6 PENGUJIAN STABILITAS SISTEM
Pengujian stabilitas sistem ini bertujuan untuk mengetahui apakah sistem ini dapat
menghasilkan hasil pengukuran yang sama jika dilakukan pengukuran menggunakan senyawa
dengan keadaan yang sama secara terus menerus. Pengujian ini menggunakan senyawa
KMnO4. Untuk mendapatkan dua panjang gelombang maksimum digunakan senyawa
KMnO4 dengan konsentrasi 30 ppm dan 40 ppm. Selanjutnya, senyawa KMnO4 yang
57
57
memiliki konsentrasi 10 ppm, 20 ppm, 30 ppm, 40 ppm, dan 50 ppm akan di ukur pada dua
panjang gelombang maksimum tersebut untuk mendapatkan nilai serapan atau absorban.
Pengukuran ini dilakukan secara terus menerus dengan keadaan yang sama. Hasil pengujian
stabilitas sistem ini ditunjukkan pada tabel 4.5 dan tabel 4.6.
Tabel 4.5 Hasil Pengujian Panjang Gelombang Maksimum Untuk Stabilitas Sistem
Senyawa Konsentrasi
Pengujian 1 Pengujian 2 Pengujian 3
PGM PGM PGM
KMnO4 30 ppm 514 515 514
40 ppm 515 514 515
Keterangan : PGM -> Panjang Gelombang Maksimum
Tabel 4.6 Hasil Pengujian Nilai Serapan Untuk Stabilitas Sistem
Senyawa Konsentrasi Panjang Gelombang Maksimum
Pengujian
1 2 3
KMnO4 10 ppm 514 nm 0.08 0.06 0.06
20 ppm
0.2 0.2 0.18
30 ppm
0.24 0.26 0.26
40 ppm
0.32 0.32 0.32
50 ppm
0.2 0.18 0.2
10 ppm 515 nm 0.08 0.1 0.08
20 ppm
0.2 0.22 0.2
30 ppm
0.28 0.26 0.26
40 ppm
0.34 0.34 0.32
50 ppm
0.24 0.22 0.22
Dari tabel 4.5, dapat dilihat panjang gelombang maksimum yang dihasilkan dari
pengujian 1, pengujian 2 dan pengujian 3 terdapat perbedaan yaitu sebesar 1 nm. Dari tabel
4.6, nilai serapan dari pengujian 1, pengujian 2 dan pengujian 3 terdapat perbedaan sebesar
0.02 yang jika dikonversi ke nilai ADC adalah 1. Dari hasil analisa, dapat disimpulkan bahwa
sistem ini sudah stabil dengan kemungkinan terjadi kesalahan yang sangat kecil yang
disebabkan karena mikrokontroler mempunyai skala perubahan terkecil dalam perhitungan
yaitu sebesar 0.02.
58
58
BAB V
KESIMPULAN DAN SARAN
5.1 KESIMPULAN
Berdasarkan analisis terhadap data yang diperoleh dari hasil penelitian dan setelah
dilakukan pembahasan, maka dapat disimpulkan :
1. Sistem spektrofotometer hanya dapat melakukan proses pengukuran pada panjang
gelombang antara 380 nm – 750 nm. Oleh karena itu, spektrofotometer ini dapat
melakukan pengukuran secara maksimal apabila senyawa yang digunakan berada pada
rentang panjang gelombang tersebut.
2. Sistem spektrofotometer bisa mengendalikan dan mengukur lima sampel sekaligus,
mikrokontroler dapat menerima data dari sensor dan dapat menjalankan motor stepper
sesuai dengan program yang dibuat.
3. Sistem lokal telah bekerja dengan baik karena dapat menjalankan semua proses
pengukuran sampel, hasil dari pengukuran dapat dibuktikan dalam bentuk tampilan
grafik pada LCD grafik.
4. Sistem remote telah bekerja dengan baik, hanya saja pengiriman sinyal “start” masih
menggunakan keypad karena komunikasi dari PC ke mikrokontroler #1 belum dibuat.
5. Sistem spektrofotometer yang dihasilkan belum dapat menghasilkan data yang presisi
seperti spektrofotometer buatan pabrik yang sudah diuji karena pengaruh resolusi ADC
yang digunakan pada mikrokontroler.
5.2 SARAN
Dengan ketidaksempurnaan pembuatan alat ini, maka untuk pengembangan lebih
lanjut diperlukan beberapa saran agar lebih baik, meliputi:
1. Penutup alat dibuat lebih rapat sehingga pengukuran tidak terpengaruh dengan sumber
cahaya luar.
59
59
2. Tempat peletakkan kuvet dibuat fleksibel agar bisa digunakan untuk berbagai bentuk
kuvet.
3. Tempat peletakkan kuvet diberi lapisan yang halus agar tidak merusak kuvet karena
dapat menggangu proses pengukuran.
4. Sistem dikembangkan dengan penambahan sumber cahaya ultraviolet dan sensornya
agar dapat melakukan pengukuran senyawa yang memiliki panjang gelombang yang
lebih kecil dari 380 nm.
2
2
DAFTAR PUSTAKA
[1] http://lemlit.unila.ac.id, diakses 20 Juli 2010
[2] -----, 2006, Data Sheet Microcontroler ATMEGA8535, ATMEL
[3] Iswanto, 2008, Design dan Implementasi Sistem Embedded Mikrokontroler
ATMEGA8535 dengan Bahasa basic, Gava Media, Yogyakarta.
[4] -----, 2003, Data Sheet MAX232, MAXIM
[5] -----, 2001, Data Sheet WG24064c, WINSTAR
[6] Harini, B.W., Priantoro, A.T., Utomo, A.B.S., 2009, Aplikasi Spektrofotometer Untuk
Pengukuran Konsentrasi Caffeine Dan Paracetamol
[7] Winoto, A., 2008, Mikrokontroler AVR ATMEGA8/ 16/ 32/ 8535 dan Pemogramannya
dengan Bahasa C pada WINAVR, Informatika, Bandung.
[8] Ewing, G.W., 1960, Instrumental Methods of Chemical Analysis, McGraw-Hill Book
Company, INC, New York.
[9] Budavari, S., O‟neil, M.J., Smith A., Heckelman, P.Z., 1989. The Merck Index, Merck
& Co., INC, New York.
60
2
2
LAMPIRAN
3
3
Pengujian Pengaruh Cahaya Terhadap Pengukuran Senyawa KMnO4 dan
K2Cr2O7
Pengujian ini dilakukan untuk mengetahui apakah terdapat perbedaan hasil pengukuran
jika senyawa yang akan diukur telah terkena sumber cahaya di luar dalam waktu tertentu. Dua
panjang gelombang maksimum yang dipakai tetap untuk pengujian 1, pengujian 2, dan
pengujian 3. Pengujian ini dilakukan sebanyak tiga kali pada proses pengukuran kuvet untuk
menampilkan kurva baku. Pengujian dilakukan dengan menggunakan senyawa (KMnO4 dan
K2Cr2O7) yang telah dibuat dua hari sebelumnya, senyawa yang telah diukur akan diletakkan
di luar kuvet dan terkena cahaya sampai pengujian selanjutnya dilakukan. Jadi, setiap senyawa
maupun sampel akan terkena cahaya dalam waktu yang sama sehingga pengujian 1, pengujian
2, dan pengujian 3 menggunakan senyawa yang berbeda kondisinya karena terkena cahaya
dalam waktu yang berbeda. Pengujian ini terdiri dari beberapa proses pengukuran yaitu :
1. Pengukuran Kuvet Kosong
Pengukuran dilakukan dengan cara meletakkan kuvet kosong (tidak ada isi) ke
dalam tempat peletakkan kuvet. Kemudian, monokromator akan dijalankan per satu
nm (dari 380 nm-750 nm). Cahaya monokromatis yang ditembakan monokromator
akan menembus kuvet karena tidak ada senyawa yang menyerap cahaya ini. Cahaya
akan diterima oleh sensor phototransistor dan dikirim ke mikrokontroler #1. Hasil
pengukuran ini akan digunakan pada proses selanjutnya.
2. Pengukuran Kuvet Referensi
Pengukuran kuvet referensi ini dilakukan dengan cara meletakkan dua kuvet
yang berisi dua senyawa yang berbeda dengan konsentrasi apa saja pada tempat
peletakkan kuvet. Selanjutnya, monokromator akan dijalankan per satu nm (380 nm-
750 nm) untuk mendapatkan panjang gelombang dimana terjadi serapan terbesar
dengan cara mengurangi nilai ADC pengukuran kuvet kosong dengan nilai ADC pada
pengukuran kuvet referensi ini. Dari pengukuran ini akan didapatkan dua panjang
gelombang yang digunakan pada proses selanjutnya. Hasil pengukuran ditunjukkan
pada tabel 1.
4
4
Tabel 1 Hasil Pengukuran Kuvet Referensi
Senyawa Konsentrasi Panjang Gelombang Maksimum
KMnO4 30 ppm 524 nm
K2Cr2O7 100 ppm 383 nm
Keterangan : PGM = Panjang Gelombang Maksimum
3. Pengukuran Kuvet untuk Menghasilkan Kurva Baku
Pengukuran ini dilakukan dengan menggunakan dua senyawa berbeda yang
mempunyai lima konsentrasi yang berbeda. Masing-masing senyawa akan diukur
dengan dua panjang gelombang maksimum yang telah didapatkan pada proses
pengukuran kuvet referensi. Pengukuran ini dilakukan untuk mendapatkan kurva baku
hasil pengukuran senyawa-senyawa tersebut. Proses pengukuran ini dilakukan
sebanyak tiga kali. Hasil pengukuran ini ditunjukkan pada tabel 2.
Tabel 2. Hasil Pengukuran Kuvet untuk Menghasilkan Kurva Baku
Keterangan : PGM -> Panjang Gelombang Maksimum
Senyawa Konsentrasi PGM Pengujian 1 Pengujian 2 Pengujian 3
KMnO4 10 ppm 383nm 0 0 0.02
20 ppm 0.04 0.04 0.06
30 ppm 0.04 0.06 0.08
40 ppm 0.06 0.08 0.12
50 ppm 0.08 0.1 0.14
10 ppm 524nm 0.22 0.22 0.28
20 ppm 0.5 0.54 0.56
30 ppm 0.72 0.72 0.78
40 ppm 0.82 0.86 0.88
50 ppm 0.92 0.94 0.96
K2Cr2O7 20 ppm 383nm 0 0 0
40 ppm 0 0 0
60 ppm 0 0 0
80 ppm 0.02 0.02 0.02
100 ppm 0.04 0.04 0.04
20 ppm 524nm 0 0 0
40 ppm 0 0 0
60 ppm 0 0 0
80 ppm 0 0 0
100 ppm 0 0 0
5
5
Dari hasil pengamatan pada tabel 2, terdapat kenaikan nilai serapan senyawa
KMnO4 dari pengujian 1 sampai pengujian 3. Hal ini disebabkan karena senyawa
KMnO4 memiliki fotosensitivitas yang tinggi sehingga bila senyawa ini terkena cahaya
dalam waktu yang lama akan mengubah kadar konsentrasi senyawa dan warna
senyawa akan semakin pekat sehingga nilai serapan akan semakin meningkat. Oleh
karena itu, setiap kali pembuatan senyawa ini dilakukan, senyawa akan dimasukkan ke
tabung yang ditutup dengan kertas aluminium foil untuk mencegah terjadinya kontak
langsung dengan cahaya [9]. Untuk senyawa K2Cr2O7 tidak mengalami perubahan
nilai serapan karena senyawa ini tidak memiliki fotosensitivitas yang tinggi seperti
KMnO4 sehingga cahaya tidak mempengaruhi perubahan kadar konsentrasi dan warna
senyawa ini.
Berdasarkan analisa hasil pengujian ini, maka dapat disimpulkan bahwa
senyawa yang terkena cahaya dalam waktu tertentu dapat menyebabkan perbedaan
nilai serapan yang dihasilkan oleh spektrofotometer jika senyawa tersebut digunakan
lagi untuk pengujian selanjutnya.
6
6
RANGKAIAN LENGKAP PERANCANGAN SISTEM
SPEKTROFOTOMETER
Mikrokontroler #1
1uF
10 uF
GND
J1
MAX 232
12345678
161514131211109
Optocoupler 1
VCC
SW1
R1
J1
ATMEGA 8535
1234567891011121314151617181920
4039383736353433323130292827262524232221
VCC
GND
VCC
30 pF
1uF
VCC
PhototransistorP1
DB9
594837261
1uF
Optocoupler 2
VCC
30 pF
VCC
GND
PD 0 (Rx D)
1uF
PD 1 (Tx D)
GND
123
GND
GND
GND
VCC
123
1uF
123
7
7
RANGKAIAN LENGKAP PERANCANGAN SISTEM
SPEKTROFOTOMETER
Mikrokontroler #2
CRYSTAL 12MHz
GND
12345678
GND
VCC
GND
VCC
PORTC.0 - PORTC.7
GND A
VCC
1 2 3 4 5 6
LCD_Grafik
30 pF
30 pF
SW1
PORTB.0 - PORTB.5
POT 10K
PORTC.0 - PORTC.7
123456
K
J113579
1113151719
2468101214161820
++++++++++
++++++++++
10 uF
J21
1
12345678
VCC
J22
1
GND
PORTB.0 - PORTB.5
J1
ATMEGA 8535
1234567891011121314151617181920
4039383736353433323130292827262524232221
VCC
1 3
2
R1
8
8
LISTING PROGRAM MIKROKONTROLER #1
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600
Dim W_adc As Word , Tenkuv As Word
Dim B As Byte , B1 As Byte , S As Byte
Dim A As Byte , B_adc As Byte , Des As Byte
Dim Adc_channel As Byte , Step_no As Byte , Tengrat As Byte
Dim Adckosong(370) As Byte , Adcisi As Byte , Z As Byte
Dim Gratings As Bit , Kuvets As Bit
Dim Gratstep As Integer , Gratstepmax As Integer , Gratstepmax2 As Integer , Kuvstep As
Integer
Dim Lambda As Integer , Lambdahome As Integer , Lambdamax As Integer
Dim Scan As Byte , Scanlagi As Byte
Dim Serapan As Single , Serapanmax1 As Single , Serapanmax2 As Single
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E =
Portd.3 , Rs = Portd.2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Kbd = Portc
Config Portb = Output
Cursor Off
Declare Sub Lokal
Declare Sub Remote
Declare Sub Keypadinput
Declare Sub Cek_kuvet
Declare Sub Cek_grating
Declare Sub Kuvet
Declare Sub Grating
Declare Sub Adece
Declare Sub Sensor
Declare Sub Sensor_limit
Declare Sub Unhome_full_1
Declare Sub Home_full_1
Declare Sub Unhome_full_2
Declare Sub Home_full_2
Declare Sub Error
'----------------------------------
'Tampilan Awal
'----------------------------------
Cls
Lcd "Spektrofotometer"
9
9
Lowerline
Lcd " Visible "
Wait 3
Cls
Lcd " Oleh:"
Lowerline
Lcd " David Robinson "
Cls
Lambdahome = 380
'----------------------------------
'Pilihan Menu
'----------------------------------
Menu:
Lcd "Pilih menu"
Lowerline
Lcd "1:Lokal"
Wait 2
Cls
Lcd "2:Remote"
Lowerline
Lcd " Pilih 1 / 2?"
Main:
Portb = &B00000000
'----------------------------------
'Input Keypad
'----------------------------------
Loopkeypad:
B = 0
B = Getkbd()
If B = 16 Then
Goto Loopkeypad
End If
Cls
If B > 16 Then
Goto Loopkeypad
End If
B1 = Lookup(b , Keytable)
Lcd "Menu=" ; B1
Wait 2
Menu1:
Select Case B1
Case 1 : Gosub Lokal
Case 2 : Gosub Remote
Case Else : Gosub Error
End Select
10
10
Goto Main
End
Keytable:
Data 1 , 2 , 3 , 0 , 4 , 5 , 6 , 0 , 7 , 8 , 9 , 0 , 11 , 0 , 12 , 0 , 16
'-----------------------------------
'ADC
'-----------------------------------
'Rutin pengolahan data ADC
Sub Adece:
Start Adc
W_adc = Getadc(adc_channel)
Shift W_adc , Right , 2
B_adc = Low(w_adc)
Des = B_adc
Cls
Lcd "ADC=" ; Des
Stop Adc
End Sub
'Sensor Phototransistor
Sub Sensor:
Adc_channel = 0
Gosub Adece
End Sub
'-----------------------------------
'Stepper
'-----------------------------------
'Motor stepper 1 mendekati home
Sub Home_full_1:
Step_no = Step_no + 1
If Step_no = 5 Then
Step_no = 1
End If
Waitms 1
Select Case Step_no
Case 1
Portb = &B00001000
Case 2
Portb = &B00000100
Case 3
Portb = &B00000010
Case 4
Portb = &B00000001
End Select
End Sub
11
11
'Motor stepper 1 menjauhi home
Sub Unhome_full_1:
Step_no = Step_no + 1
If Step_no = 5 Then
Step_no = 1
End If
Waitms 1
Portb = &B11111111
Select Case Step_no
Case 1
Portb = &B00000001
Case 2
Portb = &B00000010
Case 3
Portb = &B00000100
Case 4
Portb = &B00001000
End Select
End Sub
'Motor stepper 2 mendekati home
Sub Home_full_2:
Step_no = Step_no + 1
If Step_no = 5 Then
Step_no = 1
End If
Waitms 1
Portb = &B11111111
Select Case Step_no
Case 1
Portb = &B00010000
Case 2
Portb = &B00100000
Case 3
Portb = &B01000000
Case 4
Portb = &B10000000
End Select
End Sub
'Motor stepper 2 menjauhi home
Sub Unhome_full_2:
Step_no = Step_no + 1
If Step_no = 5 Then
Step_no = 1
12
12
End If
Waitms 1
Portb = &B11111111
Select Case Step_no
Case 1
Portb = &B10000000
Case 2
Portb = &B01000000
Case 3
Portb = &B00100000
Case 4
Portb = &B00010000
End Select
End Sub
'------------------------------
'Grating
'------------------------------
'Sensor optocoupler pada monokromator
Sub Grating:
Adc_channel = 1
Gosub Adece
If Des < 139 Then
Gratings = 1
Else
Gratings = 0
End If
End Sub
'Mengecek posisi grating
Sub Cek_grating:
Gratinghome:
Lowerline
Lcd "Posisi grating?"
Wait 2
Cls
Gosub Grating
Cls
Checkgrating1:
If Gratings = 1 Then
Cls
Lcd "Grating At Home"
Lowerline
Lcd "Recheck.."
Wait 2
Gosub Unhome_full_1
Gosub Grating
13
13
Else
Cls
Lcd "Grating Not Home"
Lowerline
Lcd "Returning..."
Gosub Home_full_1
Gosub Grating
End If
Checkgrating2:
If Gratings = 0 Then
Gosub Home_full_1
Gosub Grating
Goto Checkgrating2
Else
Cls
Lcd "Grating At Home"
Lowerline
Lcd "Processing..."
Wait 2
Cls
End If
End Sub
'------------------------------
'Kuvet
'------------------------------
'Sensor optocoupler pada kuvet
Sub Kuvet:
Adc_channel = 2
Gosub Adece
If Des > 190 Then
Kuvets = 1
Else
Kuvets = 0
End If
End Sub
'Mengecek posisi kuvet
Sub Cek_kuvet:
Kuvethome:
Lowerline
Cls
Lcd "Posisi kuvet?"
Wait 2
Cls
Gosub Kuvet
Checkkuvet1:
14
14
If Kuvets = 1 Then
Cls
Lcd "Kuvet At Home"
Lowerline
Lcd "Recheck.."
Gosub Unhome_full_2
Gosub Kuvet
Else
Cls
Lcd "Kuvet Not Home"
Lowerline
Lcd "Returning..."
Gosub Home_full_2
Gosub Kuvet
End If
Checkkuvet2:
If Kuvets = 0 Then
Gosub Home_full_2
Gosub Kuvet
Goto Checkkuvet2
Else
Cls
Lcd "Kuvet At Home"
Lowerline
Lcd "Processing..."
Wait 2
Cls
End If
End Sub
'--------------------------------
'Keypad
'--------------------------------
Sub Keypadinput:
B = 0
B = Getkbd()
If B = 16 Then
Goto End_keypadinput
End If
If B > 16 Then
Goto End_keypadinput
End If
B1 = Lookup(b , Keytable)
End_keypadinput:
End Sub
'--------------------------------
'Main
15
15
'--------------------------------
'---------------------------
'Sistem Lokal
'---------------------------
Sub Lokal:
'---------------------------
'Pengukuran Kuvet kosong
'---------------------------
Cls
Lcd "Kuvet ksg"
Wait 1
Gosub Cek_grating
Gosub Cek_kuvet
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Gratstep = 1
For Gratstep = 1 To 370
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Loop_kuvet_kosong:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_kosong
Else
Adckosong(gratstep) = Scan
Lambda = Lambda + 1
Locate 1 , 9
Lcd "ADC=" ; Scan
Lowerline
Lcd "Lambda=" ; Lambda
End If
Next Gratstep
Cls
Lcd "Selesai Kosong"
Wait 3
16
16
'-----------------------------
'Pengukuran kuvet referensi
'-----------------------------
Cls
Lcd "Masuk Ref"
Lowerline
Lcd "Press 1:mulai"
Wait 1
Keypad_isi:
Gosub Keypadinput
If B = 16 Then
Goto Keypad_isi
End If
A = B1
If A <> B1 Then
Goto Keypad_isi
End If
If B1 = 1 Then
Gratstep = 1
Gratstepmax = 0
Serapan = 0
Serapanmax1 = 0
Gosub Cek_grating
Gosub Cek_kuvet
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Mencari"
Lowerline
Lcd "Lambda Max1"
Wait 1
For Gratstep = 1 To 370
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Loop_kuvet_isi1:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
17
17
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_isi1
Else
Adcisi = Scan
Lambda = Lambda + 1
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Gratstepmax = Gratstep
Lambdamax = Lambda
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
Lowerline
Lcd "Lambda=" ; Lambda
Wait 1
Else
Goto Next_isi
End If
Else
Goto Keypad_isi
End If
Next_isi:
Next Gratstep
Cls
Lcd "abs 1=" ; Serapanmax1
Lowerline
Lcd " Di Lambda=" ; Lambdamax
Wait 3
Cls
Lcd "Mencari"
Lowerline
Lcd "Lambda Max2"
Wait 1
Tenkuv = 1
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Gosub Cek_grating
18
18
Lambda = Lambdahome
Cls
Lcd "Grating At home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Serapan = 0
Serapanmax2 = 0
Gratstep = 1
Gratstepmax2 = 0
For Gratstep = 1 To 370
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Loop_kuvet_isi2:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_isi2
Else
Adcisi = Scan
Lambda = Lambda + 1
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Gratstepmax2 = Gratstep
Lambdamax = Lambda
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
Lowerline
Lcd "Lambda=" ; Lambda
Wait 1
Else
Goto Next_isi2
End If
19
19
Next_isi2:
Next Gratstep
Cls
Lcd "Abs 2=" ; Serapanmax2
Lowerline
Lcd " Di Lambda=" ; Lambdamax
Wait 3
Cls
Lcd "Selesai Ref"
Wait 2
'---------------------------------
'Pengukuran senyawa 1
'---------------------------------
Cls
Lcd "Masuk senyawa1"
Lowerline
Lcd "Press 1:mulai"
Wait 1
Keypad_senyawa:
Gosub Keypadinput
If B = 16 Then
Goto Keypad_senyawa
End If
A = B1
If A <> B1 Then
Goto Keypad_senyawa
End If
If B1 = 1 Then
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda Max1"
Wait 1
For Kuvstep = 1 To 5
20
20
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_senyawa1:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa1
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Next_senyawa1:
Cls
Lcd "Abs=" ; Serapan
Wait 2
If Kuvstep = 5 Then
Goto Lompat
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
21
21
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat:
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda Max2"
Wait 1
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax2
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_senyawa2:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa2
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
22
22
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Else
Goto Keypad_senyawa
End If
Next_senyawa2:
Cls
Lcd "Abs=" ; Serapan
Wait 2
If Kuvstep = 5 Then
Goto Lompat2
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat2:
Cls
Lcd "Selesai Senyawa1"
Wait 2
'---------------------------------------
'Pengukuran Senyawa 2
'---------------------------------------
Cls
Lcd "Masuk senyawa2"
Lowerline
Lcd "Press 1:mulai"
Wait 1
Keypad_senyawa2:
Gosub Keypadinput
If B = 16 Then
Goto Keypad_senyawa2
End If
A = B1
23
23
If A <> B1 Then
Goto Keypad_senyawa2
End If
If B1 = 1 Then
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda max1"
Wait 1
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_senyawa3:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa3
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
24
24
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Next_senyawa3:
Cls
Lcd "Abs=" ; Serapan
Wait 2
If Kuvstep = 5 Then
Goto Lompat3
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat3:
Lambda = Lambdahome
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda Max2"
Wait 1
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
25
25
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax2
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_senyawa4:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa4
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Else
Goto Keypad_senyawa2
End If
Next_senyawa4:
Cls
Lcd "Abs=" ; Serapan
Wait 2
If Kuvstep = 5 Then
Goto Lompat4
End If
For Tenkuv = 1 To 2400
26
26
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat4:
Cls
Lcd "Selesai Senyawa2"
Wait 2
'-------------------------------
'Pengukuran Larutan
'-------------------------------
Cls
Lcd "Masukkan Larutan"
Lowerline
Lcd "Press 1:mulai"
Wait 1
Keypad_larutan:
Gosub Keypadinput
If B = 16 Then
Goto Keypad_larutan
End If
A = B1
If A <> B1 Then
Goto Keypad_larutan
End If
If B1 = 1 Then
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Gosub Cek_kuvet
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax
Tengrat = 1
For Tengrat = 1 To 11
27
27
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_larutan1:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_larutan3
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Cls
Lcd "Abs=" ; Serapan
Wait 2
Gratstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
For Gratstep = 1 To Gratstepmax2
Tengrat = 1
For Tengrat = 1 To 11
28
28
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_larutan2:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_larutan4
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Cls
Lcd "Abs=" ; Serapan
Wait 2
Else
Goto Keypad_larutan
End If
If Kuvstep = 5 Then
Goto Lompat11
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat11:
Cls
Lcd "Selesai"
29
29
Wait 2
End Sub
'---------------------------
'Sistem Remote
'---------------------------
Sub Remote:
Cls
Lcd "Sistem Remote"
Wait 2
Cls
Lcd "Tunggu PC"
Wait 1
Print "rd1"
Wait 1
Do
S = Ischarwaiting()
If S = 1 Then
S = Waitkey()
End If
Loop Until S = 86
'---------------------------
'Pengukuran Kuvet kosong
'---------------------------
Cls
Lcd "Kuvet ksg"
Wait 1
Gosub Cek_grating
Gosub Cek_kuvet
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Gratstep = 1
For Gratstep = 1 To 370
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Loop_kuvet_kosong2:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
30
30
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_kosong2
Else
Adckosong(gratstep) = Scan
Serapan = Scan
Lambda = Lambda + 1
Locate 1 , 9
Lcd "ADC=" ; Scan
Lowerline
Lcd "Lambda=" ; Lambda
End If
Wait 1
Next Gratstep
Cls
Lcd "Selesai Kosong"
Wait 3
Print "Selesai"
Wait 1
'-----------------------------
'Pengukuran kuvet referensi
'-----------------------------
Print "rd2"
Wait 1
Cls
Lcd "Masuk isi"
Wait 1
Cls
Lcd "Tunggu PC"
Wait 1
Do
S = Ischarwaiting()
If S = 1 Then
S = Waitkey()
End If
Loop Until S = 86
Gratstep = 1
Gratstepmax = 0
Serapan = 0
Serapanmax1 = 0
Gosub Cek_grating
Gosub Cek_kuvet
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
31
31
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Mencari"
Lowerline
Lcd "Lambda Max1"
Wait 1
For Gratstep = 1 To 370
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Loop_kuvet_isi3:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_isi3
Else
Adcisi = Scan
Lambda = Lambda + 1
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Gratstepmax = Gratstep
Lambdamax = Lambda
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
Lowerline
Lcd "Lambda=" ; Lambda
Wait 1
Else
Goto Next_isi3
End If
Next_isi3:
Next Gratstep
Cls
32
32
Lcd "Abs1=" ; Serapanmax1
Lowerline
Lcd " Di Lambda=" ; Lambdamax
Wait 3
Print Lambdamax
Wait 1
Print Serapanmax1
Wait 1
Print "rd3"
Wait 1
Do
S = Ischarwaiting()
If S = 1 Then
S = Waitkey()
End If
Loop Until S = 86
Cls
Lcd "Mencari"
Lowerline
Lcd "Lambda Max2"
Wait 1
Tenkuv = 1
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Grating At home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Serapan = 0
Serapanmax2 = 0
Gratstep = 1
Gratstepmax2 = 0
For Gratstep = 1 To 370
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Loop_kuvet_isi4:
Gosub Sensor
Scan = Des
33
33
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_isi4
Else
Adcisi = Scan
Lambda = Lambda + 1
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Gratstepmax2 = Gratstep
Lambdamax = Lambda
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
Lowerline
Lcd "Lambda=" ; Lambda
Wait 1
Else
Goto Next_isi4
End If
Next_isi4:
Next Gratstep
Cls
Lcd "Abs2=" ; Serapanmax2
Lowerline
Lcd " Di Lambda=" ; Lambdamax
Wait 3
Print Lambdamax
Wait 1
Print Serapanmax1
Wait 1
Cls
Lcd "Selesai"
Wait 2
Print "Selesai"
Wait 1
'---------------------------------
'Pengukuran senyawa 1
'---------------------------------
34
34
Print "Rd4"
Wait 1
Cls
Lcd "Masuk senyawa1"
Wait 1
Cls
Lcd "Tunggu PC"
Wait 1
Do
S = Ischarwaiting()
If S = 1 Then
S = Waitkey()
End If
Loop Until S = 86
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda Max1"
Wait 1
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_senyawa5:
35
35
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa5
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Next_senyawa5:
Cls
Lcd "Abs=" ; Serapan
Wait 2
Print Serapan
Wait 1
If Kuvstep = 5 Then
Goto Lompat5
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat5:
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
36
36
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda Max2"
Wait 1
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax2
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_senyawa6:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa6
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
37
37
End If
Next_senyawa6:
Cls
Lcd "Abs=" ; Serapan
Wait 2
Print Serapan
Wait 1
If Kuvstep = 5 Then
Goto Lompat6
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat6:
Cls
Lcd "Selesai"
Wait 2
Print "Selesai"
Wait 1
'---------------------------------------
'Pengukuran Senyawa 2
'---------------------------------------
Print "Rd5"
Wait 1
Cls
Lcd "Masuk senyawa2"
Wait 1
Cls
Lcd "Tunggu PC"
Wait 1
Do
S = Ischarwaiting()
If S = 1 Then
S = Waitkey()
End If
Loop Until S = 86
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
38
38
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda Max1"
Wait 1
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_senyawa7:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa7
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
39
39
End If
Next_senyawa7:
Cls
Lcd "Abs=" ; Serapan
Wait 2
Print Serapan
Wait 1
If Kuvstep = 5 Then
Goto Lompat 7
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat7:
Lambda = Lambdahome
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Z = 0
Gosub Cek_kuvet
Gosub Cek_grating
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
Cls
Lcd "Lambda Max2"
Wait 1
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax2
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
40
40
Next Gratstep
Loop_kuvet_senyawa8:
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_senyawa8
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Z = Adckosong(gratstep) - Adcisi
Serapan = Z * 0.02
End If
End If
Z = Z Or &H80
Printbin Z
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Next_senyawa8:
Cls
Lcd "Abs=" ; Serapan
Wait 2
Print Serapan
Wait 1
If Kuvstep = 5 Then
Goto Lompat8
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat8:
Cls
Lcd "Selesai"
Wait 2
Print "Selesai"
Wait 1
'------------------------------------
41
41
'Pengukuran Larutan
'------------------------------------
Print "Rd6"
Wait 1
Cls
Lcd "Masukkan Larutan"
Wait 1
Cls
Lcd "Tunggu PC"
Wait 1
Do
S = Ischarwaiting()
If S = 1 Then
S = Waitkey()
End If
Loop Until S = 86
Gratstep = 1
Kuvstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Gosub Cek_kuvet
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
For Kuvstep = 1 To 5
Tenkuv = 1
Lambda = Lambdahome
Gosub Cek_grating
For Gratstep = 1 To Gratstepmax
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_larutan3:
Gosub Sensor
Scan = Des
42
42
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_larutan3
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax1 Then
Serapanmax1 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Cls
Lcd "Abs=" ; Serapan
Wait 2
Print Serapan
Wait 1
Gratstep = 1
Serapan = 0
Serapanmax1 = 0
Serapanmax2 = 0
Gosub Cek_grating
Lambda = Lambdahome
Cls
Lcd "Posisi home"
Lowerline
Lcd "Lambda=" ; Lambda
Wait 2
For Gratstep = 1 To Gratstepmax2
Tengrat = 1
For Tengrat = 1 To 11
Gosub Unhome_full_1
Waitms 6
Next Tengrat
Lambda = Lambda + 1
Cls
Lcd "Lambda=" ; Lambda
Next Gratstep
Loop_kuvet_larutan4:
43
43
Gosub Sensor
Scan = Des
Scanlagi = Scan
Gosub Sensor
Scan = Des
If Scanlagi <> Scan Then
Goto Loop_kuvet_larutan4
Else
Adcisi = Scan
If Adckosong(gratstep) <= Adcisi Then
Serapan = 0
Else
Serapan = Adckosong(gratstep) - Adcisi
Serapan = Serapan * 0.02
End If
End If
If Serapan > Serapanmax2 Then
Serapanmax2 = Serapan
Locate 1 , 9
Lcd "ADC=" ; Adckosong(gratstep)
End If
Cls
Lcd "Abs=" ; Serapan
Wait 2
Print Serapan
Wait 1
If Kuvstep = 5 Then
Goto Lompat9
End If
For Tenkuv = 1 To 2400
Gosub Unhome_full_2
Waitms 6
Next Tenkuv
Next Kuvstep
Lompat9:
Cls
Lcd "Selesai"
Wait 2
Print "selesai"
Wait 1
End Sub
'---------------------------------
'error
'---------------------------------
Sub Error:
Cls
44
44
Lcd "Salah Tekan!"
Wait 1
Cls
Return
End Sub
45
45
LISTING PROGRAM MIKROKONTROLER #2
$regfile = "m8535.dat"
$crystal = 8000000
$baud = 9600
Config Graphlcd = 240 * 64 , Dataport = Portb , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0
, Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
Dim X As Byte , Y As Byte , Z As Byte , A As Byte , B As Byte
Cls
Cursor Off
Locate 1 , 2 : Lcd "Grafik Spektrofotometer Vis"
Locate 2 , 13 : Lcd "Oleh :"
Locate 3 , 3 : Lcd "David Robinson 07 5114 002"
Locate 4 , 6 : Lcd "Teknik Elektro 2007"
Locate 5 , 4 : Lcd "Universitas Sanata Dharma"
Locate 6 , 11 : Lcd "Yogyakarta"
Locate 7 , 13 : Lcd "2010"
Wait 8
Cls Text
Locate 1 , 1 : Lcd "Keterangan:"
Locate 2 , 1 : Lcd "a. Senyawa 1 = KMnO4"
Locate 3 , 1 : Lcd "b. Senyawa 2 = K2Cr2O7"
Locate 4 , 1 : Lcd "-------**************-------"
Locate 5 , 1 : Lcd "2 Grafik di KIRI u/ Senyawa 1"
Locate 6 , 1 : Lcd "2 Grafik di KANAN u/ Senyawa 2"
Locate 7 , 1 : Lcd "-------**************-------"
Locate 8 , 4 : Lcd "Processing . . . . ."
Wait 8
Cls Text
Do
Line(1 , 50) -(52 , 50) , 255 'horizontal1
Line(1 , 1) -(1 , 50) , 255 'vertical1
Line(60 , 50) -(112 , 50) , 255 'horizontal2
Line(60 , 1) -(60 , 50) , 255 'vertical2
Line(120 , 50) -(172 , 50) , 255 'horizontal3
Line(120 , 1) -(120 , 50) , 255 'vertical3
Line(180 , 50) -(232 , 50) , 255 'horizontal4
Line(180 , 1) -(180 , 50) , 255 'vertical4
Wait 1
Locate 3 , 30 : Lcd "A"
Locate 4 , 30 : Lcd "b"
Locate 5 , 30 : Lcd "s"
Locate 8 , 6 : Lcd "KONSENTRASI (ppm)"
46
46
For Z = 1 To 5
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 7 To 11
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 13 To 17
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 19 To 23
X = Z * 10
Pset X , 51 , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
Pset 0 , Y , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
Pset 59 , Y , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
Pset 119 , Y , 255
Next Z
Wait 1
For Z = 1 To 4
Y = Z * 10
Pset 179 , Y , 255
Next Z
Wait 1
For Z = 1 To 5
X = Z * 10
Do
A = Waitkey()
B = A And 128
If B > 1 Then
47
47
A = A And 127
End If
Loop Until B > 1
If A = 1 Then
Y = 49
Elseif A = 2 Then
Y = 48
Elseif A = 3 Then
Y = 47
Elseif A = 4 Then
Y = 46
Elseif A = 5 Then
Y = 45
Elseif A = 6 Then
Y = 44
Elseif A = 7 Then
Y = 43
Elseif A = 8 Then
Y = 42
Elseif A = 9 Then
Y = 41
Elseif A = 10 Then
Y = 40
Elseif A = 11 Then
Y = 39
Elseif A = 12 Then
Y = 38
Elseif A = 13 Then
Y = 37
Elseif A = 14 Then
Y = 36
Elseif A = 15 Then
Y = 35
Elseif A = 16 Then
Y = 34
Elseif A = 17 Then
Y = 33
Elseif A = 18 Then
Y = 32
Elseif A = 19 Then
Y = 31
Elseif A = 20 Then
Y = 30
Elseif A = 21 Then
Y = 29
Elseif A = 22 Then
48
48
Y = 28
Elseif A = 23 Then
Y = 27
Elseif A = 24 Then
Y = 26
Elseif A = 25 Then
Y = 25
Elseif A = 26 Then
Y = 24
Elseif A = 27 Then
Y = 23
Elseif A = 28 Then
Y = 22
Elseif A = 29 Then
Y = 21
Elseif A = 30 Then
Y = 20
Elseif A = 31 Then
Y = 19
Elseif A = 32 Then
Y = 18
Elseif A = 33 Then
Y = 17
Elseif A = 34 Then
Y = 16
Elseif A = 35 Then
Y = 15
Elseif A = 36 Then
Y = 14
Elseif A = 37 Then
Y = 13
Elseif A = 38 Then
Y = 12
Elseif A = 39 Then
Y = 11
Elseif A = 40 Then
Y = 10
Elseif A = 41 Then
Y = 9
Elseif A = 42 Then
Y = 8
Elseif A = 43 Then
Y = 7
Elseif A = 44 Then
Y = 6
Elseif A = 45 Then
49
49
Y = 5
Elseif A = 46 Then
Y = 4
Elseif A = 47 Then
Y = 3
Elseif A = 48 Then
Y = 2
Elseif A = 49 Then
Y = 1
Else
Y = 50
End If
Pset X , Y , 255
Next Z
For Z = 7 To 11
X = Z * 10
Do
A = Waitkey()
B = A And 128
If B > 1 Then
A = A And 127
End If
Loop Until B > 1
If A = 1 Then
Y = 49
Elseif A = 2 Then
Y = 48
Elseif A = 3 Then
Y = 47
Elseif A = 4 Then
Y = 46
Elseif A = 5 Then
Y = 45
Elseif A = 6 Then
Y = 44
Elseif A = 7 Then
Y = 43
Elseif A = 8 Then
Y = 42
Elseif A = 9 Then
Y = 41
Elseif A = 10 Then
Y = 40
Elseif A = 11 Then
Y = 39
Elseif A = 12 Then
50
50
Y = 38
Elseif A = 13 Then
Y = 37
Elseif A = 14 Then
Y = 36
Elseif A = 15 Then
Y = 35
Elseif A = 16 Then
Y = 34
Elseif A = 17 Then
Y = 33
Elseif A = 18 Then
Y = 32
Elseif A = 19 Then
Y = 31
Elseif A = 20 Then
Y = 30
Elseif A = 21 Then
Y = 29
Elseif A = 22 Then
Y = 28
Elseif A = 23 Then
Y = 27
Elseif A = 24 Then
Y = 26
Elseif A = 25 Then
Y = 25
Elseif A = 26 Then
Y = 24
Elseif A = 27 Then
Y = 23
Elseif A = 28 Then
Y = 22
Elseif A = 29 Then
Y = 21
Elseif A = 30 Then
Y = 20
Elseif A = 31 Then
Y = 19
Elseif A = 32 Then
Y = 18
Elseif A = 33 Then
Y = 17
Elseif A = 34 Then
Y = 16
Elseif A = 35 Then
51
51
Y = 15
Elseif A = 36 Then
Y = 14
Elseif A = 37 Then
Y = 13
Elseif A = 38 Then
Y = 12
Elseif A = 39 Then
Y = 11
Elseif A = 40 Then
Y = 10
Elseif A = 41 Then
Y = 9
Elseif A = 42 Then
Y = 8
Elseif A = 43 Then
Y = 7
Elseif A = 44 Then
Y = 6
Elseif A = 45 Then
Y = 5
Elseif A = 46 Then
Y = 4
Elseif A = 47 Then
Y = 3
Elseif A = 48 Then
Y = 2
Elseif A = 49 Then
Y = 1
Else
Y = 50
End If
Pset X , Y , 255
Next Z
For Z = 13 To 17
X = Z * 10
Do
A = Waitkey()
B = A And 128
If B > 1 Then
A = A And 127
End If
Loop Until B > 1
If A = 1 Then
Y = 49
Elseif A = 2 Then
52
52
Y = 48
Elseif A = 3 Then
Y = 47
Elseif A = 4 Then
Y = 46
Elseif A = 5 Then
Y = 45
Elseif A = 6 Then
Y = 44
Elseif A = 7 Then
Y = 43
Elseif A = 8 Then
Y = 42
Elseif A = 9 Then
Y = 41
Elseif A = 10 Then
Y = 40
Elseif A = 11 Then
Y = 39
Elseif A = 12 Then
Y = 38
Elseif A = 13 Then
Y = 37
Elseif A = 14 Then
Y = 36
Elseif A = 15 Then
Y = 35
Elseif A = 16 Then
Y = 34
Elseif A = 17 Then
Y = 33
Elseif A = 18 Then
Y = 32
Elseif A = 19 Then
Y = 31
Elseif A = 20 Then
Y = 30
Elseif A = 21 Then
Y = 29
Elseif A = 22 Then
Y = 28
Elseif A = 23 Then
Y = 27
Elseif A = 24 Then
Y = 26
Elseif A = 25 Then
53
53
Y = 25
Elseif A = 26 Then
Y = 24
Elseif A = 27 Then
Y = 23
Elseif A = 28 Then
Y = 22
Elseif A = 29 Then
Y = 21
Elseif A = 30 Then
Y = 20
Elseif A = 31 Then
Y = 19
Elseif A = 32 Then
Y = 18
Elseif A = 33 Then
Y = 17
Elseif A = 34 Then
Y = 16
Elseif A = 35 Then
Y = 15
Elseif A = 36 Then
Y = 14
Elseif A = 37 Then
Y = 13
Elseif A = 38 Then
Y = 12
Elseif A = 39 Then
Y = 11
Elseif A = 40 Then
Y = 10
Elseif A = 41 Then
Y = 9
Elseif A = 42 Then
Y = 8
Elseif A = 43 Then
Y = 7
Elseif A = 44 Then
Y = 6
Elseif A = 45 Then
Y = 5
Elseif A = 46 Then
Y = 4
Elseif A = 47 Then
Y = 3
Elseif A = 48 Then
54
54
Y = 2
Elseif A = 49 Then
Y = 1
Else
Y = 50
End If
Pset X , Y , 255
Next Z
For Z = 19 To 23
X = Z * 10
Do
A = Waitkey()
B = A And 128
If B > 1 Then
A = A And 127
End If
Loop Until B > 1
If A = 1 Then
Y = 49
Elseif A = 2 Then
Y = 48
Elseif A = 3 Then
Y = 47
Elseif A = 4 Then
Y = 46
Elseif A = 5 Then
Y = 45
Elseif A = 6 Then
Y = 44
Elseif A = 7 Then
Y = 43
Elseif A = 8 Then
Y = 42
Elseif A = 9 Then
Y = 41
Elseif A = 10 Then
Y = 40
Elseif A = 11 Then
Y = 39
Elseif A = 12 Then
Y = 38
Elseif A = 13 Then
Y = 37
Elseif A = 14 Then
Y = 36
Elseif A = 15 Then
55
55
Y = 35
Elseif A = 16 Then
Y = 34
Elseif A = 17 Then
Y = 33
Elseif A = 18 Then
Y = 32
Elseif A = 19 Then
Y = 31
Elseif A = 20 Then
Y = 30
Elseif A = 21 Then
Y = 29
Elseif A = 22 Then
Y = 28
Elseif A = 23 Then
Y = 27
Elseif A = 24 Then
Y = 26
Elseif A = 25 Then
Y = 25
Elseif A = 26 Then
Y = 24
Elseif A = 27 Then
Y = 23
Elseif A = 28 Then
Y = 22
Elseif A = 29 Then
Y = 21
Elseif A = 30 Then
Y = 20
Elseif A = 31 Then
Y = 19
Elseif A = 32 Then
Y = 18
Elseif A = 33 Then
Y = 17
Elseif A = 34 Then
Y = 16
Elseif A = 35 Then
Y = 15
Elseif A = 36 Then
Y = 14
Elseif A = 37 Then
Y = 13
Elseif A = 38 Then
56
56
Y = 12
Elseif A = 39 Then
Y = 11
Elseif A = 40 Then
Y = 10
Elseif A = 41 Then
Y = 9
Elseif A = 42 Then
Y = 8
Elseif A = 43 Then
Y = 7
Elseif A = 44 Then
Y = 6
Elseif A = 45 Then
Y = 5
Elseif A = 46 Then
Y = 4
Elseif A = 47 Then
Y = 3
Elseif A = 48 Then
Y = 2
Elseif A = 49 Then
Y = 1
Else
Y = 50
End If
Pset X , Y , 255
Next Z
Wait 20
Cls Graph
Loop