Rancangan Pengolah Tampilan Dan Penyimpan Hasil Alat Timbang Berbasis Serat Optik Menggunakan Mikrokontroler ATMEGA32
RANCANGAN PENGOLAH TAMPILAN DAN PENYIMPAN
HASIL ALAT TIMBANG BERBASIS SERAT OPTIK
MENGGUNAKAN MIKROKONTROLER ATMEGA32
SKRIPSI
DESY HERVINA SARI
090801032
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN
ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
(2)
RANCANGAN PENGOLAH TAMPILAN DAN PENYIMPAN
HASIL ALAT TIMBANG BERBASIS SERAT OPTIK
MENGGUNAKAN MIKROKONTROLER ATMEGA32
SKRIPSI
Diajukan Untuk Melengkapi Tugas dan Memenuhi Syarat
Mencapai Gelar Sarjana Sains
DESY HERVINA SARI
090801032
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN
ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
(3)
PERNYATAAN
RANCANGAN PENGOLAH TAMPILAN DAN PENYIMPAN HASIL ALAT TIMBANG BERBASIS SERAT OPTIK MENGGUNAKAN
MIKROKONTROLER ATMEGA32
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dari ringkasan yang masing-masing disebutkan sumbernya.
Medan, Juli 2013
Desy Hervina Sari 090801032
(4)
PENGHARGAAN
Alhamdulillahirobbil’alamin, puji syukur saya panjatkan atas rahmat Allah SWT, yang senantiasa selalu memberikan kehidupan, kesehatan, kecerdasan, rezeki, mukjizat, keberkahan dan kemudahan-Nya dalam menyelesaikan skripsi ini. Shalawat serta salam bagi junjungan Nabi Muhammad SAW atas teladannya.
Terimakasih yang sebesar-besarnya kepada kedua orang tua saya Heri Sunandar dan Sri Yulianti Novida, yang tiada henti memberikan dukungan dan doa yang tulus kepada saya.
Dalam penyusunan skripsi ini, saya banyak mendapatkan bimbingan dan bantuan dari berbagai pihak baik secara moril maupun material. Untuk itu saya mengucapkan terimakasih yang sebesar-besarnya kepada :
1. Bapak Dr. Marhaposan Situmorang selaku ketua jurusan dan pembimbing I yang telah memberikan bimbingan dan masukan-masukan yang sangat membangun selama menyusun skripsi ini.
2. Seluruh staf dan dosen di jurusan Fisika FMIPA USU yang telah membantu penyelesaian skripsi ini dalam hal administrasi dan masukan-masukannya.
3. Bapak Dwi Hanto, M.Si selaku pembimbing II yang telah membimbing seluruh penelitian pada skripsi ini, juga memberikan masukan-masukan yang sangat membangun. Saya juga berterimakasih kepada beliau karena telah memberikan pengalaman-pengalaman yang sangat berharga dalam bidang instrumentasi selama melakukan penelitian.
4. Seluruh staf, teknisi, dan pekerja di Pusat Penelitian Fisika (P2F) LIPI Serpong, Bapak Bambang Widiyatmoko, Bapak Andi Setiono, Bapak Hendra Adinanta, Bapak Imam Mulyanto, Bapak Prabowo Puranto, Bapak Thomas Budi Waluyo, Bapak Pardamean Sebayang, Bapak Lukman, Bapak Masbah Siregar, Ibu Ani, dan lain-lain yang tidak dapat saya tuliskan satu per satu.
(5)
5. Kakek dan nenek saya, Rumani Sutrisno dan Nafsiah Risnaini, serta opung Amelia pane yang tiada henti memberikan dukungan dan doa kepada saya.
6. Adik – Adik saya Indah Permata Sari, M. Malik Ridwan, dan Dian Purnama Sari dan seluruh keluarga saya.
7. Bagus Hady Wiyandha yang telah banyak membantu saya dalam menyelesaikan skripsi ini, juga senantiasa selalu memberikan dukungan, doa, dan semangat.
8. Sahabat saya Cindy Al Kindi, Tian Havwini, Hilda Ayu Marlina, Seri Dermayu Siregar, Kharismayanti Ritonga, Sally Irvina Ritonga, dan Fitri Hidayati Sinaga, yang telah berjuang bersama-sama di Jurusan Fisika FMIPA USU dan selalu memberikan dukungan, doa, dan semangat kepada saya.
9. Seluruh asisten, koor. Asisten, dan staf Laboratorium Ilmu Dasar (LIDA) Fisika USU, seluruh adik-adik kelas dan kakak-kakak kelas di Jurusan Fisika FMIPA USU yang telah membantu dukungan, doa, maupun semangat kepada saya.
10.Ibu Neneng Sutarsih, Kak Lina Mariani, Kak Hikma Panjaitan, Kak Putik Riski, Bang Maulana Sebayang, dan Ibu Siregar yang telah menjadi keluarga baru dan banyak membantu saya selama penelitian di Serpong. Dan kepada teman-teman, saudara-saudara, abang/kakak dan rekan-rekan lainnya yang tidak dapat saya tuliskan satu persatu, terimakasih untuk dukungan, doa, dan semangat yang telah diberikan, smoga Allah SWT selalu melimpahkan rahamat-Nya kepada kita semua.
Menyadari akan keterbatasan ilmu yang saya miliki, juga keterbatasan waktu, saya merasa bahwa skripsi ini masih jauh dari sempurna, untuk itu dengan segala kerendahan hati, saya mengharapkan kritik dan saran yang bersifat membangun demi menyempurnakan skripsi ini.
Medan, Juli 2013 Desy Hervina Sari 090801032
(6)
RANCANGAN PENGOLAH TAMPILAN DAN PENYIMPAN HASIL ALAT TIMBANG BERBASIS SERAT OPTIK MENGGUNAKAN
MIKROKONTROLER ATMEGA32
ABSTRAK
Telah dirancang pengolah tampilan dan penyimpan hasil alat timbang berbasis serat optik menggunakan mikrokontroler ATmega32. Alat timbang ini dapat menampilkan beban yang terukur pada layar LCD karakter berukuran 4 x 40 dengan menampilkan informasi beban yang terukur dalam satuan kilo gram dan disertai kapan data tersebut diambil. Data-data tersebut kemudian akan disimpan pada SD card dengan keterangan waktu dan beban terukur dalam format teks. Perancangan alat ukur beban ini cukup sederhana yang terdiri dari sensor beban serat optik, mikrokontroler, dua buah push button, RTC, SD card dan LCD. Alat ukur ini diuji dengan diberikan beban secara statik antara 0 sampai dengan 100 kg dengan memberikan performa statis yang baik dari segi validitas maupun tingkat akurasi dibawah 10 %.
Kata kunci : Alat Timbang, Serat Optik, Mikrobending, Mikrokontroler Atmega32
(7)
DESIGN DISPLAY PROCESSING AND STORAGE RESULTS SCALES BASED OPTICAL FIBER USING MICROCONTROLLER ATMEGA32
ABSTRACT
Has been designed display processing and storage results based on optical fiber scales using microcontroller ATmega32. These scales can show a measurable load on the LCD screen measuring 4 x 40 character display with load information measured in units of kilo grams and accompanied when the data is retrieved. These data will then be stored on the SD card with the time and expense information measurable in text format. The design of the load measuring tool is fairly simple consisting of a fiber-optic load sensors, microcontroller, two push button, RTC, SD card and LCD. This instrument was tested with a given static load is between 0 to 100 kg with providing static performance both in terms of the validity and accuracy rate below 10%.
.
Key word : Alat Timbang, Serat Optik, Mikrobending, Mikrokontroler Atmega32
(8)
DAFTAR ISI
Halaman
Persetujuan i
Lembar pengesahan ii
Pernyataan iii
Penghargaan v
Abstrak vi
Abstract vii
Daftar isi viii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran xii
Bab 1 Pendahuluan 1.1Latar Belakang 1
1.2Rumusan Masalah 2
1.3Batasan Masalah 2
1.4Tujuan Penelitian 3
1.5Manfaat penelitian 3
1.6Metodologi Penulisan 3
1.7Tempat Penelitian 4
1.8Sistematika Penulisan 4
Bab 2 Tinjauan Pustaka 2.1 Cahaya dan laser 5
2.2 Sensor 7
2.3 Serat Optik 8
2.4 Bending 10
2.5 Mikrobending 11
2.6 Photo detector 13
2.7 AVR Mikrokontroler ATmega32 14
2.8 LCD (Liquid Crystal Display) 20
2.9 Multi media Card (MMC) atau Secure Digital Card (SD Card) 21
Bab 3 Metodologi Penelitian 3.1 Perancangan Sistem 22
3.2 Sistem Kerja Sensor 27
3.3 Pengujian Sensor 27
3.3.1 Pengujian Validasi Awal 28
3.3.2 Pengujian Rangkaian Penguat Instrumentasi 29
3.3.3 Pengujian ADC Terhadap Tegangan Keluaran dengan Rangkaian Penguat Instrumentasi 29
3.3.4 Pengujian Validasi Beban 30
(9)
Bab 4 Hasil dan Pembahasan
4.1 Pengujian Validasi Awal 33
4.2 Pengujian Rangkaian Penguat Instrumentasi 33
4.3 Pengujian Validasi ADC 34
4.4 Pengujian Validasi Beban 35
Bab 5 Kesimpulan dan Saran 5.1 Kesimpulan 39
5.2 Saran 39
Daftar Pustaka 40
(10)
DAFTAR TABEL
Halaman
Tabel 2.1 Fungsi Khusus Port A 17
Tabel 2.2 Fungsi Khusus Port B 18
Tabel 2.3 Fungsi Khusus Port C 18
Tabel 2.4 Fungsi Khusus Port D 19
(11)
DAFTAR GAMBAR
Halaman Gambar 2.1 Bagian kabel serat optik dan Model perambatan cahaya
pada serat optik 8
Gambar 2.2 Makrobending dan Mikrobending 9
Gambar 2.3 Peristiwa Rugi-Rugi Akibat Pembengkokan Mikro 11
Gambar 2.4 Skematik Mikrobending Serat Optik 11
Gambar 2.5 Skematik Sensor Serat Optik dengan Prinsip Mikrobending 12
Gambar 2.6 Bentuk fisik Mikrokontroler ATmega32 14
Gambar 2.7 Arsitektur ATmega32 15
Gambar 2.8 Susunan Kaki Mikrokontroler ATmega32 16
Gambar 2.9 LCD Karakter 4 x 40 21
Gambar 2.10 Penomeran Pin pada SD Card dan MMC 21
Gambar 3.1 Blok Skematik Penelitian 22
Gambar 3.2 Perancangan LCD 23
Gambar 3.3 Tampilan pada LCD 23
Gambar 3.4 Perancangan ADC 24
Gambar 3.5 Perancangan RTC 25
Gambar 3.6 Perancangan SD Card 25
Gambar 3.7 Perancangan rangkaian penguat instrumentasi 26
Gambar 3.8 Skema Sensor 23
Gambar 3.9 Rangkaian pada mikrokontroler 24
Gambar 3.10 Penguat Instrumentasi dengan Penguatan 10 Kali 25
Gambar 3.11 Validasi Beban 27
Gambar 3.12 Flowchart Program Pada Mikrokontroler 28
Gambar 4.1 Tegangan Keluaran Sensor 30
Gambar 4.2 Tegangan masukan dan tegangan keluaran pada penguat instrumentasi 31
Gambar 4.3 Pengujian ADC setelah penambahan penguat instrumentasi 32
Gambar 4.4 Grafik Validasi Beban 32
Gambar 4.5 Tampilan Alat Timbang 33
Gambar 4.6 Grafik Perbandingan Beban Sebenarnya dan Beban Terukur34 Gambar 4.7 Tampilan Pada SD Card 35
(12)
DAFTAR LAMPIRAN
Halaman
Lampiran A Program 42
(13)
RANCANGAN PENGOLAH TAMPILAN DAN PENYIMPAN HASIL ALAT TIMBANG BERBASIS SERAT OPTIK MENGGUNAKAN
MIKROKONTROLER ATMEGA32
ABSTRAK
Telah dirancang pengolah tampilan dan penyimpan hasil alat timbang berbasis serat optik menggunakan mikrokontroler ATmega32. Alat timbang ini dapat menampilkan beban yang terukur pada layar LCD karakter berukuran 4 x 40 dengan menampilkan informasi beban yang terukur dalam satuan kilo gram dan disertai kapan data tersebut diambil. Data-data tersebut kemudian akan disimpan pada SD card dengan keterangan waktu dan beban terukur dalam format teks. Perancangan alat ukur beban ini cukup sederhana yang terdiri dari sensor beban serat optik, mikrokontroler, dua buah push button, RTC, SD card dan LCD. Alat ukur ini diuji dengan diberikan beban secara statik antara 0 sampai dengan 100 kg dengan memberikan performa statis yang baik dari segi validitas maupun tingkat akurasi dibawah 10 %.
Kata kunci : Alat Timbang, Serat Optik, Mikrobending, Mikrokontroler Atmega32
(14)
DESIGN DISPLAY PROCESSING AND STORAGE RESULTS SCALES BASED OPTICAL FIBER USING MICROCONTROLLER ATMEGA32
ABSTRACT
Has been designed display processing and storage results based on optical fiber scales using microcontroller ATmega32. These scales can show a measurable load on the LCD screen measuring 4 x 40 character display with load information measured in units of kilo grams and accompanied when the data is retrieved. These data will then be stored on the SD card with the time and expense information measurable in text format. The design of the load measuring tool is fairly simple consisting of a fiber-optic load sensors, microcontroller, two push button, RTC, SD card and LCD. This instrument was tested with a given static load is between 0 to 100 kg with providing static performance both in terms of the validity and accuracy rate below 10%.
.
Key word : Alat Timbang, Serat Optik, Mikrobending, Mikrokontroler Atmega32
(15)
BAB 1 PENDAHULUAN
1.1. Latar Belakang
Pada perkembangan teknologi, di samping load cell dan starin gauge, saat ini telah banyak penelitian yang mengembangkan serat optik sebagai sensor beban. Pemilihan serat optik ini disebabkan kestabilan dan daya tahannya.
Dalam dekade terakhir, sensor beban serat optik, didasarkan pada perubahan pada parameter sinyal optik karena regangan serat optik yang diberi beban, telah mendapat perhatian. Sensor ini lebih tahan lama, relatif murah dalam pembuatan dan operasi. Namun, serat optik terutama digunakan sebagai detektor untuk pengukuran beban karena akurasi rendah (khususnya penimbang beban bergerak) dan ketergantungan tinggi terhadap kondisi cuaca.
Pada 1990-an , muncul sensor gaya berbasis serat optik untuk penimbang dan kontrol sistem gerak pada kendaraan atau transportasi. Pengggunaan serat optik disetujui karena biaya rendah, kemudahan instalasi di jalan-jalan dengan lalu lintas yang padat. Kabel serat optik ditempatkan dalam alur sempit di seberang jalan yang dilapisi dengan karet yang tahan, dan transmisi tekanan ban kendaraan pada kabel serat optik. Arus lalu lintas tidak boleh terganggu untuk waktu yang lama, sehingga kemudahan dan kecepatan instalasi sensor melebihi kekurangan sensor yaitu akurasi pengukuran rendah.
Serat optik memiliki banyak kelebihan di antaranya adalah serat optik dapat dipergunakan dengan kecepatan yang tinggi, hingga mencapai beberapa gigabit/detik. Karena murni terbuat dari kaca dan plastik maka signal tidak terpengaruh pada gelombang elektromagnetik dan frekuensi radio. Ukurannya kecil dan ringan sehingga sangat memudahkan pengangkutan dan pemasangan di lokasi. Serat optik juga sangat aman dipasang di tempat-tempat yang mudah terbakar karena tidak akan terjadi hubungan api pada saat kontak atau terputusnya fiber optik. Pada prinsipnya, dalam penggunaan serat optik kita akan menemukan bending baik itu dalam bentuk makro ataupun mikro. Bending ini dapat mengakibatkan berkurangnya intensitas cahaya, akan tetapi,
(16)
kekurangan dari serat optik inilah yang dapat dimanfaatkan sebagai sensor. Pada aplikasinya, masih sangat jarang ditemukan penggunaan dan pemanfaatan sensor beban berbasis serat optik tersebut. Perlu dilakukan penelitian dan pengembangan lebih lanjut untuk menyempurnakan pembuatan sensor beban berbasis serat optik, khususnya menggunakan prinsip mikrobending.
Pada penerapannya, sensor juga sangat memerlukan alat baca yang dapat menampilkan serta menyimpan data-data hasil pengukuran. Mikrokontroler merupakan device yang baik untuk keperluan kontrol, yang memiliki kapasitas memori yang cukup besar untuk memprogram pembacaan dan penyimpanan data-data hasil pengukuran sensor. Oleh karena itu, dilakukan penelitian rancangan alat untuk pengukuran beban berbasis serat optik menggunakan pengolah utama mikrokontroler ATmega32, yang dapat menampilkan dan menyimpan data hasil pengukuran.
1.2. Rumusan Masalah
Berdasarkan latar belakang yang ada, maka perumusan masalah dari penelitian ini adalah
1. Bagaimana merancang suatu alat ukur beban berdasarkan mikrobending dengan menggunakan serat optik?
2. Bagaimana merancang sistem mikrokontroler ATmega32 sehingga dapat menampilkan dan menyimpan hasil pengukuran?
1.3 Batasan Masalah
Adapun batasan masalah yang akan dibahas dalam penelitian ini adalah :
1. Sensor yang digunakan adalah sensor beban berbasis serat optik dengan prinsip mikrobending buatan Pusat Penelitian Fisika (P2F) – LIPI
2. Beban yang diuji adalah beban dalam keadaan statis dengan variasi beban sebesar 0, 20 kg, 40 kg, 60 kg, 80 kg, dan 100 kg.
3. Sebagai pusat pengolahan data, digunakan Mikrokontroller AVR ATmega 32 dengan ADC 10 bit
(17)
5. Menampilkan hasil pengukuran beban menggunakan LCD karakter 4 x 40 dan menyimpan hasil pengukuran dalam format teks pada SD CARD
1.4 Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah,
1. Untuk mengidentifikasi beban dan tegangan hasil pengukuran dari alat timbang berbasis serat optik, dengan merancang tampilan menggunakan mikrokontroler ATmega32.
2. Untuk mengetahui akurasi alat.
1.5. Manfaat Penelitian
Manfaat yang diharapkan dari penelitian ini adalah:
1. Dapat dipergunakan sebagai perbandingan penerapan alat timbang beban contohnya pada aplikasi penimbangan kendaraan di jalan raya.
2. Dapat mempermudah monitoring pengukuran beban.
1.6 Metodologi Penulisan
Adapun metode penelitian yang digunakan dalam menyusun dan menganalisa tugas akhir ini adalah:
1. Studi literatur yang berhubungan dengan perancangan dan pembuatan alat ini.
2. Perencanaan dan pembuatan alat
3. Merencanakan peralatan yang telah dirancang baik software maupun hardware.
4. Pengujian alat
5. Peralatan yang telah dibuat kemudian diuji apakah telah sesuai yang telah direncanakan
(18)
Penelitian ini dilakukan di Laboratorium Fiber Optik, Pusat Penelitian Fisika (P2F) Lembaga Ilmu Pengetahuan Indonesia (LIPI) kawasan Puspiptek, Serpong, Tangerang Selatan.
1.8 Sistematika Penulisan
Sistematika penulisan dalam tugas akhir ini terdiri dari 5 bab, yaitu: BAB 1 : PENDAHULUAN
Berisi latar belakang permasalahan, batasan masalah, tujuan pembahasan, metodologi pembahasan, sistematika penulisan dan relevansi dari penulisan skripsi ini.
BAB 2 : LANDASAN TEORI
Membahas tentang teori, serat optik, prinsip mikrobending, mikrokontroller ATmega32, sensor, pengolahan data dan teori dasar alat-alat pendukung lainnya.
BAB 3 : METODOLOGI PENELITIAN
Membahas tentang perencanaan dan pembuatan sistem secara keseluruhan.
BAB 4 : PENGUJIAN RANGKAIAN
Berisi tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi alat.
BAB 5 : PENUTUP
Merupakan kesimpulan dari pembahasan pada bab-bab sebelumnya dan kemungkinan pengembangan alat.
(19)
BAB 2
TINJAUAN PUSTAKA
2.1.Cahaya dan Laser
Cahaya adalah energi berbentuk gelombang elekromagnetik yang kasat mata dengan panjang gelombang sekitar 380–750 nm. Pada bidang fisika, cahaya adalah radiasi elektromagnetik, baik dengan panjang gelombang kasat mata maupun yang tidak. Selain itu, cahaya adalah paket partikel yang disebut foton. Kedua definisi tersebut merupakan sifat yang ditunjukkan cahaya secara bersamaan sehingga disebut "dualisme gelombang-partikel". Paket cahaya yang disebut spektrum kemudian dipersepsikan secara visual oleh indera penglihatan sebagai warna. Bidang studi cahaya dikenal dengan sebutan optika, merupakan area riset yang penting pada fisika modern.
Studi mengenai cahaya dimulai dengan munculnya era optika klasik yang mempelajari besaran optik seperti: intensitas, frekuensi atau panjang gelombang, polarisasi dan fase cahaya. Sifat-sifat cahaya dan interaksinya terhadap sekitar dilakukan dengan pendekatan paraksial geometris seperti refleksi dan refraksi, dan pendekatan sifat optik fisisnya yaitu: interferensi, difraksi, dispersi, polarisasi. Masing-masing studi optika klasik ini disebut dengan optika geometris dan optika fisis.
Laser (singkatan dari bahasa Inggris: Light Amplification by Stimulated Emission of Radiation) merupakan mekanisme suatu alat yang memancarkan radiasi elektromagnetik, biasanya dalam bentuk cahaya yang tidak dapat dilihat maupun dapat lihat dengan mata normal, melalui proses pancaran terstimulasi. Pancaran laser biasanya tunggal, memancarkan foton dalam pancaran koheren. Laser juga dapat dikatakan efek dari mekanika kuantum.
Dalam teknologi laser, cahaya yang koheren menunjukkan suatu sumber cahaya yang memancarkan panjang gelombang yang diidentifikasi dari frekuensi yang sama, beda fase yang konstan dan polarisasinya. Selanjutnya untuk menghasilkan sebuah cahaya yang koheren dari medium lasing adalah dengan mengontrol kemurnian, ukuran, dan bentuknya. Keluaran yang berkelanjutan dari
(20)
laser dengan amplituda-konstan (dikenal sebagai CW atau gelombang berkelanjutan), atau detak, adalah dengan menggunakan teknik Q-switching, modelocking, atau gain-switching.
Dalam operasi detak, dimana sejumlah daya puncak yang lebih tinggi dapat dicapai. Sebuah medium laser juga dapat berfungsi sebagai penguat optik ketika di-seed dengan cahaya dari sumber lainnya. Sinyal yang diperkuat dapat menjadi sangat mirip dengan sinyal input dalam istilah panjang gelombang, fase, dan polarisasi; Ini tentunya penting dalam telekomunikasi serat optik.
Penggunaan cahaya sebagai pembawa informasi sebenarnya sudah banyak digunakan sejak zaman dahulu, baru sekitar tahun 1930-an para ilmuwan Jerman mengawali eksperimen untuk mentransmisikan cahaya melalui bahan yang bernama serat optik. Percobaan ini juga masih tergolong cukup primitif karena hasil yang dicapai tidak bisa langsung dimanfaatkan, namun harus melalui perkembangan dan penyempurnaan lebih lanjut lagi. Perkembangan selanjutnya adalah ketika para ilmuwan Inggris pada tahun 1958 mengusulkan prototipe serat optik yang sssampai sekarang dipakai yaitu yang terdiri atas gelas inti yang dibungkus oleh gelas lainnya. Sekitar awal tahun 1960-an perubahan fantastis terjadi di Asia yaitu ketika para ilmuwan Jepang berhasil membuat jenis serat optik yang mampu mentransmisikan gambar.
Di lain pihak para ilmuwan selain mencoba untuk memandu cahaya melewati
gelas (serat optik) namun juga mencoba untuk ”menjinakkan” cahaya. Kerja keras
itupun berhasil ketika sekitar 1959 laser ditemukan. Laser beroperasi pada daerah frekuensi tampak sekitar 1014 Hertz - 15 Hertz atau ratusan ribu kali frekuensi gelombang mikro.
Pada awalnya peralatan penghasil sinar laser masih serba besar dan merepotkan. Selain tidak efisien, ia baru dapat berfungsi pada suhu sangat rendah. Laser juga belum terpancar lurus. Pada kondisi cahaya sangat cerah pun, pancarannya gampang meliuk-liuk mengikuti kepadatan atmosfer. Waktu itu, sebuah pancaran laser dalam jarak 1 km, bisa tiba di tujuan akhir pada banyak titik dengan simpangan jarak hingga hitungan meternya sangat tinggi, kurang dari 1 bagian dalam sejuta.
(21)
Dalam bahasa sehari-hari artinya serat yang sangat bening dan tidak menghantar listrik ini sedemikian murninya, sehingga konon, seandainya air laut itu semurni serat optik, dengan pencahayaan cukup mata normal akan dapat menonton lalu-lalangnya penghuni dasar Samudera Pasifik. Seperti halnya laser, serat optik pun harus melalui tahap-tahap pengembangan awal. Sebagaimana medium transmisi cahaya, ia sangat tidak efisien. Hingga tahun 1968 atau berselang dua tahun setelah serat optik pertama kali diramalkan akan menjadi pemandu cahaya, tingkat atenuasi (kehilangan)-nya masih 20 dB/km. Melalui pengembangan dalam teknologi material, serat optik mengalami pemurnian, dehidran dan lain-lain. Secara perlahan tapi pasti atenuasinya mencapai tingkat di bawah 1 dB/km.
2.2. Sensor
Sensor adalah suatu peralatan yang digunakan untuk mendeteksi adanya perubahan parameter fisik, kimia, dan sebagainya. Dengan pengertian lain, sensor juga dapat dikatakan sebagai peralatan yang digunakan untuk merubah suatu besaran fisik menjadi besaran listrik sehingga dapat dianalisa dengan rangkaian listrik tertentu.
Sesuai perkembangan teknologi, sensor dapat dibuat dan dikemas dengan cara yang lebih ekonomis, mudah, dan lebih konvensional. Secara umum, sensor dapat dikelompokkan menjadi 3 bagian berdasarkan fungsi dan kegunaannya, yaitu: 1. Sensor thermal, untuk mendeteksi gejala perubahan panas atau suhu.
Contohnya; termokopel, RTD, termistor, dan lain-lain.
2. Sensor mekanis, untuk mendeteksi perubahan gerak mekanis, seperti pergeseran, gerak lurus dan melingkar, tekanan, dan sebagainya. Contohnya; LVDT, strain gauge, load cell, dan lain-lain.
3. Sensor optik, untuk mendeteksi perubahan cahaya dari sumber cahaya, pantulan, ataupun bias cahaya. Contohnya; photo cell, photo diode, dan lain-lain.
(22)
2.3. Serat Optik
Serat optik (optical fibre/fiber optic) merupakan media pandu gelombang (cahaya) yang bekerja didasarkan adanya efek pantulan sempuma oleh karena adanya perbedaan indeks bias material. Serat optik terdiri dari inti (core) dan pembungkus (cladding) dan model perambatan cahaya ditunjukkan dalam Gambar 2.1.
Gambar.2.1 Bagian kabel serat optik dan Model perambatan cahaya pada serat optik
1. Core adalah kaca tipis yang merupakan bagian inti dari serat atau inti fisik yang mengirim sinyal data optik dari sumber cahaya ke alat penerima yang berupa untai tunggal kontinyu dari kaca atau plastik. Semakin besar core maka semakin banyak cahaya yang dapat dilewatkan dalam kabel.
2. Cladding adalah materi yang mengelilingi inti yang berfungsi memantulkan sinar kembali ke dalam inti(core), atau layer/lapisan serat yang berfungsi sebagai pembatas energi elektromagnetik yang terlalu besar, gelombang cahaya dan penyebab pembiasan pada struktur inti. Pembuatan cladding yang cukup tebal memungkinkan medan serat tidak dipengaruhi oleh perambatan disekitar bahan sehingga bentuk fisik serat tidak cacat.
3. Buffer Coating adalah plastik pelapis yang melindungi serat dari kerusakan. lapisan plastik disekitar core dan cladding ini juga berfungsi memperkuat inti serat, membantu penyerapan dan sebagai pelindung ekstra pada pembengkokan kabel.
Cahaya akan merambat didalam serat optik karena dipantulkan dengan sempurna pada batas antar core dan cladding. Dalam perambatannya cahaya mengalami pengurangan daya (loss ) akibat adanya penyerapan oleh material fiber hamburan dan adanya lengkungan (bending); sebagaimana ditunjukkan pada
(23)
Gambar 2.2. Bending loss (atau rugi rugi pembengkokan) merupakan salah satu dari beberapa sumber loss serat optik. Rugi rugi ini disebabkan oleh pembengkokan serat optik melebihi diameter tertentu. Rugi rugi semacam ini dalam komunikasi serat optik sangat merugikan.
Namun dari sisi lain fenomena ini dapat dimanfaatkan sebagai sensor.
Gambar.2.2 Makrobending dan Mikrobending
Gelombang cahaya yang merambat didalam serat optik ragam tunggal (tepatnya: didalam inti/core serat) akan terdistorsi bila seratnya dilengkungkan. Kecepatan cahaya yang merambat pada bagian dalam lengkungan hampir lebih lambat daripada yang bagian luarnya untuk mempertahankan bentuk muka gelombang.
Ini berarti nilai indeks bias inti serat pada bagian tersebut lebih kecil bila dibandingkan saat serat dalam keadaan lurus. Semakin kecil jari-jari lengkungan maka nilainya semakin mendekati nilai indeks bias selubung cladding sehingga makin banyak cahaya yang keluar dari inti serat , atau semakin besar ruginya.
Serat optik memiliki keunggulan yang signifikan dibandingkan media transmisi kawat konvensional. Keunggulan tersebut antara lain adalah:
1. Rugi transmisi rendah 2. Bandwidth lebar
3. Ukuran kecil dan ringan
(24)
Untuk itu biasanya serat optik digunakan untuk media transmisi sinyal digital. Untuk pemilihan serat optik memiliki pilihan single-mode atau multi-mode dan pilihan antara step index atau graded index.
Pemilihan ini tergantung jenis sumber cahaya yang digunakan dan besarnya dispersi maksimum yang diijinkan. Untuk sumber cahaya LED (Light Emitting Diode), biasanya digunakan serat multi-mode, meskipun LED jenis edgeemitting bisa digunakan dengan serat single-mode dengan laju sampai 560 Mbps sepanjang beberapa kilometer.
Untuk Laser dioda, bisa digunakan single-mode atau multimode. Serat single-mode mampu menyediakan produk laju data-jarak yang sangat bagus (mampu mencapai 30 Gbps.km).
2.4. Bending
Bending yaitu pembengkokan serat optik yang menyebabkan cahaya yang merambat pada serat optik berbelok dari arah transmisi dan hilang. Sebagai contoh, pada serat optik yang mendapat tekanan cukup keras dapat menyebabkan ukuran diameter serat optik menjadi berubah, sehingga mempengaruhi sifat transmisi cahaya di dalamnya.
Rugi-rugi akibat pelengkungan serat optik dibedakan menjadi dua macam yaitu :
a) Macro Bending/Pembengkokan Makro
Rugi-rugi macro bending terjadi ketika sinar atau cahaya melalui serat optik yang dilengkungkan dengan jari-jari lebih lebar dibandingkan dengan diameter serat optik sehingga menyebabkan hilangnya daya. Jumlah radiasi optik dari lengkungan serat tergantung kekuatan medan dan kelengkungan jari-jari.
b) Micro Bending/Pembengkokan Mikro
Pembengkokan mikro terjadi karena ketidakrataan pada permukaan batas antara teras dan selongsong secara acak atau random pada serat optik karena
(25)
proses pengkabelan ataupun ketika proses penarikan saat instalasi seperti terlihat pada Gambar 2.3.
Gambar 2.3.Peristiwa Rugi-Rugi Akibat Pembengkokan Mikro
2.5. Mikrobending
Sensor yang berbasis intensitas membutuhkan lebih banyak cahaya dan karena itu biasanya menggunakan serat multimode dengan inti yang lebar. Ada berbagai mekanisme seperti rugi daya optik akibat mikrobending, redaman, dan bidang lepas yang dapat menghasilkan perubahan hasil ukur yang diinduksi dalam intensitas optik yang disebarkan oleh serat optik.
Keuntungan dari sensor ini adalah kesederhanaan implementasi, biaya rendah, kemungkinan menjadi multiplexing, dan kemampuan untuk tampil sebagai sensor yang didistribusikan secara nyata. Salah satu sensor berbasis intensitas adalah sensor mikrobend, yang didasarkan pada prinsip bahwa mekanik tikungan mikro yang periodik dapat menyebabkan energi dari mode dipandu untuk digabungkan dengan mode radiasi dan akibatnya menghasilkan redaman cahaya yang ditransmisikan.
Seperti yang terlihat pada Gambar.2.4, sensor terdiri dari dua pelat beralur dan di antara kedua pelat terdapat serat optik. Pelat atas dapat bergerak sebagai respon terhadap tekanan. Ketika radius tikungan serat melebihi sudut kritis yang diperlukan untuk membatasi cahaya ke area inti, cahaya mulai bocor ke cladding mengakibatkan modulasi intensitas.
(26)
Adapun penjelasan yang signifikan yaitu ketika serat terkena tikungan kecil atau gangguan, suatu bagian tertentu dari propagasi cahaya dalam inti serat digabungkan dalam mode radiasi dan hilang. Mode penggabungan dapat dicapai dengan menggunakan pelat bergelombang yang merubah bentuk serat menjadi serangkaian tikungan. Oleh karena itu, mikrobending menyebabkan intensitas cahaya menurun. Dengan memantau dan menghubungkan hilangnya intensitas cahaya, berbagai jenis sensor mikrobend dapat dirancang. Wilayah penginderaan sensor mikrobend terdiri dari dua pelat bergelombang, disebut lempeng deformer. Serat optik ditekan dengan memberi gaya ke bawah diperas bawah kekuatan diterapkan karena lipatan seperti yang ditunjukkan pada Gambar 2.5.
Gambar 2.5.Skematik Sensor Serat Optik dengan Prinsip Mikrobending
Sensor mikrobending serat optik adalah jenis sensor serat berdasarkan prinsip tekukan yang terstruktur yang dapat menyebabkan hilangnya intensitas cahaya, yang terdiri dari susunan lekukan termodulasi dan serat optik. Kinerja sensor mikrobending serat optik ditentukan oleh susunan lekukan (bending), maka metode modulasi lekukan (bending) digunakan untuk menghasilkan periodik lekukan (bending) pada serat optik.
Desain sensor yang dibuat yaitu plat bergerigi atau bergelombang pada sisi atas dan bawah, dan diantara plat diberi sensor serat optik yang mengalami
(27)
gangguan mikrobending dan mengarahkan pancaran (mentransmisikan) gangguan tersebut. Cahaya yang keluar dan menembus pembungkus (jacket) menyebabkan intensitas cahaya output berkurang. Besarnya gangguan dapat diperoleh dengan mendeteksi variasi intensitas cahaya, dan tekanan pada sensor mikrobending serat optik dapat diperoleh.
Penelitian ini didasari untuk mencari pengaruh pemberian massa beban terhadap intensitas keluaran serat optik sehingga dapat dimanfaatkan untuk sensor beban. Sebagaimana kita ketahui bahwa serat optik selain banyak digunakan dalam sistem komunikasi juga dapat digunakan sebagai sensor besaran fisis. Sebagai contoh, sensor kelembaban, temperatur, konsentrasi dan lain sebagainya. Sebagai sumber cahaya digunakan Laser.
Prinsip kerja serat optik menggunakan prinsip pembiasan dan pemantulan yang berhubungan dengan indeks bias bahan. Dengan memanfaatkan karakteristik serat optik yang mengalami kehilangan daya akibat pembengkokan, dapat dimanfaatkan untuk sensor tekanan.
Pada serat optik kehilangan daya dapat diakibatkan pembengkokan serat optik, dengan memberi massa beban pada serat optik dapat dilihat pengaruh tekanan pada besarnya bengkokan sehingga semakin besar daya yang hilang. Dalam penelitian ini dibuat probe sensor tekanan pada bagian tengah dengan melepas jaket pelindung serat optik. Cahaya yang masuk serat optik akan mengalami kehilangan daya ketika mengalami bengkokan, sedangkan bengkokan ini berbanding lurus dengan beban yang diberikan.
2.6. Photodetector
Photodetector atau detektor cahaya adalah sebagai alat penerima fungsi dari penerima komunikasi optik. Photodetector mengubah sinyal optik menjadi sinyal elektrik. Keluaran dari penerima adalaha sinyal elektrik yang memenuhi spesifikasi dari pengguna kekuatan sinyal, level impedansi, bandwidth, dan parameter lainnya.
(28)
Bentuk sistem photodetector termasuk dalam alat penerima yang sesuai, biasanya adalah semikonduktor fotodioda yang berasal dari komponen optik gelombang cahaya ke alat photodetector.
2.7. AVR Mikrokontroler ATmega32
Mikrokontroler jika diartikan secara harfiah, berarti pengendali berukuran mikro, merupakan sebuahdevice yang di dalamnya sudah terintegrasi dengan I/O port dan memoriROM (Read Only Memory) dan RAM (Random Acces Memory) sehingga dapat digunakan untuk berbagai keperluan kontrol.
Gambar 2.6 Bentuk Fisik Mikrokontroler ATmega32
Berbeda denganmikrokomputer yang memiliki bagian-bagiantersebut secara terpisah, mikrokontroler mengkombinasikan bagian tersebut dalam tingkat chip. AVR ATmega merupakan seri mikrokontroler 8 bit yang berarsitektur RISC (Reduce Instruction Set Computing).
Inti AVR adalah kombinasi berbagai macam instruksi dengan 32 register serba guna. Register-register tersebut terhubung langsung dengan ALU (Arithmetic Logic Unit) yang memungkinkan 2 register independent untuk diakses dalam satu pelaksanaan instruksidengan 1 siklus detak.
Keuntungan dari arsitektur ini adalah kode program yang lebih efisien sementara keberhasilan keseluruhansepuluh kali lebih cepat dibandingkan dengan CISC (Complex Instruction Set Computing) yang konvensial. Kelebihan dari ATmega32 sehingga baik digunakan sebagai pengontrol utama yaitu :
(29)
1. Mempunyai performa tinggi (berkecepatan akses maksimum 16 MHz) tetapi hemat daya
2. Memori untuk program flash cukup besar yaitu 32 Kb 3. Memori internal (SRAM) cukup besar yaitu 2 Kb 4. Mendukung hubungan serial SPI
5. Tersedia 3 channel timer/counter (2 untuk 8 bit dan 1 untuk 16 bit)
Gambar 2.7 berikut ini menunjukan arsitektur ATmega32.
Gambar 2.7. Arsitektur ATmega32
Kecepatan eksekusi ditentukan dari hasil pembangkitan detak pada blok osilator internal. Detak juga dipergunakan sebagai dasar pembangkitan timer, termasuk dalam fungsi timer tersebut adalah PWM (Pulse Width Modulation) dan
(30)
baudrate untuk komunikasi serial. Penggunaan fungsi timer dapat dapat pula dimodekan sebagai sumber interupsi.
ATmega32 dilengkapi dengan ADC (Anolog to Digital Convertion) 10 bit dengan multiplek untuk 8 jalur masukan, dimana ADC dapat juga dipergunakan sebagai sumber interupsi. Pemilihan saluran dan proses konversi dilakukan dengan memberikan data pada register yang berkaitan. Kelengkapan lain adalah untuk fungsi komunikasi serial, dimana terdapat tiga format komunikasi yang dapat digunakan yaitu USART (Universal Synchronous and asynchronous Interface).
Semua fasilitas serial dapat dipergunakan dalam variasi kecepatan transmisi yang sangat bergantung pada besarnya penggunaan sumber detak dan pengisian register yang berkaitan. Adapun susunan kaki mikrokontroler ATmega32 ditunjukan pada gambar 2.8berikut ini.
(31)
Penjelasan konfigurasi pin pada mikrokonroler ATmega32 secara umum: a. Pin 1 sampai 8 (Port B) merupakan port paralel 8 bit dua arah (bitdirectional), yang
dapat digunakan untuk general purpose dan special feature
b. Pin 9 (Reset) jika terdapat minimum pulse pada saat active low
c. Pin 10 (VCC) dihubungkan ke VCC (2,7 – 5,5 Volt) d. Pin 11 dan 31 (GND) dihubungkan ke Vss atau Ground
e. Pin 12 (XTAL 2) adalah pin masukan ke rangkaian osilator internal. Sebuah osilator kristal atau sumber osilator luar dapat digunakan
f. Pin 13 (XTAL 1) adalah pin keluaran ke rangkaian osilator internal. Pin ini dipakai bila menggunakan osilator kristal
g. Pin 14 sampai 21 (Port D) adalah 8 bit dua arah (bitdirectional), yang dapat digunakan untuk general purpose dan special feature
h. Pin 22 sampai 29 (Port C) adalah 8 bit dua arah (bitdirectional), yang dapat digunakan untuk general purpose dan special feature
i. Pin 30 adalah Avcc pin penyuplai daya untuk port A dan ADC dan dihubungkan ke Vcc. Jika ADC digunakan maka pin ini dihubungkan ke Vcc
j. Pin 32 adalah AREF pin yang berfungsi sebagai referensi untuk pin analog jika ADC digunakan
k. Pin 33 sampai 40 (Port A) adalah 8 bit dua arah (bitdirectional), yang dapat digunakan untuk general purpose dan special feature
Penjelasan konfigurasi pin pada mikrokontroler ATmega32 yang mempunyai fungsi khusus yaitu:
a.Pin 33 sampai 40 (Port A) dapat digunakan sebagai Tabel. 2.1 Fungsi Khusus Port A
Port A 0 Input ADC Port A 0
Port A 1 Input ADC Port A 1
Port A 2 Input ADC Port A 2
Port A 3 Input ADC Port A 3
(32)
Port A 5 Input ADC Port A 5
Port A 6 Input ADC Port A 6
Port A 7 Input ADC Port A 7
b.Pin 1 sampai 8 (Port B) dapat digunakan sebagai
Tabel. 2.2 Fungsi Khusus Port B
Port B 0 T0 (Timer/Counter 0 External Counter Input) XCK (USART External Clock Input/Output) Port B 1 T1 (Timer/Counter 1 External Counter Input)
Port B 2 AIN0 (Analog Comparator Positive Input) INT2 (External Interupt 2 Input)
Port B 3 AIN1 (Analog Comparator Negative Input)
OC0 (Timer/Counter 0 Output Compare Match Output) Port B 4 SS (SPI Slave Select Input)
Port B 5 MOSI (SPI Bus Master Output/Slave Input) Port B 6 MISO (SPI Bus Master Input/Slave Output) Port B 7 SCK (SPI Bus Serial Clock)
c.Pin 22 sampai 29 (Port C) dapat digunakan sebagai Tabel. 2.3 Fungsi Khusus Port C Port C 0 SCL (Two-wire Serial Bus Clock Line)
Port C 1 SDA (Two-wire Serial Bus Data Input/Output Line)
Port C 2 TCK (JTAG Test Clock)
Port C 3 TMS (JTAG Test Mode Select)
Port C 4 TDO (JTAG Test Data Out)
(33)
Port C 6 TOSC1 (Timer Oscillator Pin 1) Port C 7 TOSC2 (Timer Oscillator Pin 2)
d.Pin 14 sampai 21 (Port D) dapat digunakan sebagai Tabel. 2.4 Fungsi Khusus Port D
Port D 0 RXD (USART Input Pin)
Port D 1 TXD (USART Output Pin)
Port D 2 INT0 (External Interrupt 0 Input) Port D 3 INT1 (External Interrupt 1 Input)
Port D 4 OC1B (Timer/Counter 1 Output Compare B Match Output) Port D 5 OC1A (Timer/Counter 1 Output Compare A Match Output) Port D 6 ICP1 (Timer/Counter 1 Input Compare Pin)
Port D 7 OC2 (Timer/Counter 2 Output Compare Match Output)
Mikrokontroler Atmega 32 merupakan low power CMOS mikrokontroler 8-bit yang dikembangkan oleh Atmel dengan arsitektur RISC (Reduced Instruction Set Computer) sehingga dapat mencapai throughput eksekusi instruksi 1 MIPS (Million Instruction Per Second).
RTC (Real Time Clock) biasa digunakan untuk pewaktu dengan osilator terpisah. Komunikasi RTC dengan mikrokontroler adalah dengan I2C yaitu antarmuka dua jalur bus yaitu SDA (Serial DAta Line) dan SCL (Serial Clock Line). Setiap perangkat yang terhubung dialamatkan secara software dengan alamat yang unik. Pada jalur tersebut terdapat komunikasi master-slave diantara dua perangkat yang terhubung dengan kecepatan transfer sebesar 100 Kbit/s dalam mode standar, 400 Kbit/s dalam mode cepat, dan 3,4 Kbit/s dalam mode kecepatan tinggi.
Interupsi adalah kondisi yang mengharuskan mikrokontroler menghentikan sementara eksekusi program utama dan mengeksekusi rutin interrupt / Interrupt Service Routine (ISR), setelah melaksanakan ISR, secara lengkap, maka mikrokontroler akan kembali melanjutkan eksekusi program utama yang dihentikan.
(34)
Two-wire Serial Interface (TWI) atau secara umum dapat disebut I2C ( Inter-Integrated Circuit), adalah protokol yang memperbolehkan system designer untuk menghubungkan hingga 128 devices berbeda menggunakan hanya TWI bi-directional bus lines, satu untuk clock (SCL) dan satu lagi untuk data (SDA). Satu-satunya external hardware yang dibutuhkan untuk mengimplementasikan bus-nya adalah sebuah pull-up resistor untuk setiap jalur bus TWI.
Semua device yang terhubung ke bus memiliki alamatnya sendiri, dan mekanisme untuk memecahkan permasalahan bus terdapat pada protokol TWI. Jenis komunikasi yang dilakukan antar peralatan dengan menggunakan protokol TW mempunyai sifat serial synchronous half duplex bi-directional, dimana data yang ditransmisikan dan diterima hanya melalui satu jalur SDA line (bersifat serial), setiap penggunaan jalur data bergantian antar perangkat (bersifat half duplex) dan data dapat ditransmisikan dari dan ke sebuah perangkat (bersifat bi-directional).
2.8. LCD (Liquid Crystal Display)
LCD (Liquid Crystal Display) adalah modul penampil yang banyak digunakan karena tampilannya menarik. LCD yang umum, ada yang panjangnya hingga 40 karakter (2 x 40 dan 4 x 40), menggunakan DDRAM (Display Data Random Access Memory) untuk mengatur tempat penyimpanan karakter tersebut. Kegunaan LCD banyak sekali dalam perancangan suatu sistem dengan menggunakan mikrokontroler. LCD dapat berfungsi untuk menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu pada aplikasi mikrokontroler.
(35)
2.9. Multi Media Card (MMC) atau Secure Digital Card (SD Card)
MMC atau SD Card merupakan media penyimpanan data yang biasa digunakan pada portable device. SD Card merupakan pengembangan dari MMC. Tidak banyak perbedaan antara SD Card dengan MMC, di antaranya adalah:
1. Ukuran SD Card lebih tebal dari MMC
2. SD Card memiliki switch untuk write protection, sedangkan MMC tidak 3. SD Card memiliki 9 pin, sedangkan MMC memiliki 7 pin
4. SD Card memiliki 3 mode transfer data, yaitu mode SD, mode MMC, dan mode SPI. Sedangkan MMC hanya memiliki 2 mode transfer, yaitu mode MMC dan SPI
5. Kecepatan maksimum transfer data SD Card adalah 25Mbit/s, lebih cepat dari MMC yang memiliki kecepatan maksimum 20Mbit/s dengan mode komunikasi yang sama yaitu mode SPI dan MMC. Sehingga pada mode SD kecepatan transfer data maksimum pada SD Card dapat mencapai 100Mbit/s.
(36)
BAB 3
METODOLOGI PENELITIAN
3.1. Perancangan Sistem
Pada bab ini akan dibahas perancangan sistem hardware maupun program dari sistem yang akan dibuat. Secara garis besar, skematik rancangan ini dapat dilihat pada diagram blok yang ditunjukkan oleh Gambar 3.1. sebagai berikut :
Gambar 3.1. Blok Skematik Penelitian
Pada penelitian ini digunakan sensor beban menggunakan serat optik multimode dengan prinsip mikrobending, sumber cahaya menggunakan laser dioda dengan panjang gelombang 1310 nm yang ditransmisikan ke dalam serat optik. Cahaya yang bersumber dari laser akan dilewatkan melalui serat optik sebagai sensor yang telah dirancang oleh P2F-LIPI. Apabila pada sensor diberikan beban, maka cahaya yang melewati serat optik akan mengalami deformasi yang mengakibatkan berkurangnya intensitas cahaya pada saat diterima oleh foto detektor. Pada foto detektor, cahaya diubah ke dalam bentuk sinyal-sinyal listrik. Sinyal-sinyal listrik ini nantinya akan dikuatkan oleh rangkaian penguat instrumentasi sebelum masuk ke ADC. Pada ADC sinyal listrik analog akan dikonversi ke bentuk sinyal-sinyal digital agar dapat diolah oleh mikrokontroler ATmega32. ATmega32 selaku pengolah utama dari alat penimbang diisi dengan
B e b a n
SD CARD LCD 4 x 40
PHOTODETECTOR
ADC
MIKROKONTROLER ATMEGA 32
RTC
Penguat Instrumentasi
Pushbutton start Pushbutton stop LASER
SENSOR serat optik
(37)
program. Secara garis besar program tersebut bermaksud untuk menampilkan hasil pengukuran pada layar LCD dan menyimpan data pada SD CARD.
a. Perancangan tampilan pada LCD
Hasil pengukuran akan di tampilkan pada LCD karakter 4 x 40. LCD dihubungkan dengan port C pada mikrokontroler. Di mikrokontroler, diberikan program dalam bentuk bahasa C untuk menampilkan keterangan apa saja yang diperlukan pada proses pengukuran berlangsung.
Pada baris pertama LCD karakter akan ditampilkan judul “Sensor beban berbasis serat optik”, pada baris kedua ditampilkan keterangan waktu dan tanggal pengukuran, pada baris ketiga ditampilkan keterangan urutan data, besar tegangan dan tegangan rata-rata, dan pada baris keempat ditampilkan nilai hasil pengukuran beban.
Gambar 3.2. Perancangan LCD
(38)
b. Perancangan ADC
Pada mikrokontroler di berikan program menggunakan bahasa C untuk membaca nilai ADC yang akan ditampilkan pada LCD. Sebagai tegangan masukan digunakan power supply 5 Volt DC sebagai sumbernya. Tegangan masukan akan dikorelasikan dengan besar nilai ADC yang tampil pada LCD. untuk membantu memvariasikan besar tegangan digunakan potensiometer dan nilai tegangan diukur menggunakan multimeter.
Gambar 3.4. Perancangan ADC
c. Perancangan RTC
Pada proses pengukuran diperlukan keterangan waktu dan tanggal dari pengambilan data. Untuk menampilkan keterangan tersebut ditambahkan rangkaian RTC pada port D mikrokontroler seperti pada gambar berikut. Pada mikrokontroler diberikan program dalam bahasa C untuk mengontrol waktu pengambilan data. Keterangan yang akan ditampilkan berupa jam, menit, detik, hari, tanggal, bulan, dan tahun.
(39)
Gambar 3.5. Perancangan RTC
d. Perancangan SD CARD
Data – data hasil pengukuran akan disimpan ke dalam SD Card yang disambungkan pada port B mikrokontroler. Pada mikrrokontroler ditambahkan program menggunakan bahasa C untuk menyimpan seluruh data
– data hasil pengukuran ke dalam memory SD Card. Keterangan – keterangan hasil pengukuran ini dapat digunakan sebagai informasi pengukuran untuk pengolahan data selanjutnya.
(40)
e. Perancangan rangkaian penguat instrumentasi
Untuk memenuhi full scale pada mikrokontroler dengan referensi internal yaitu 2,5 V, maka dirancang rangkaian penguat instrumentasi yang dihubungkan pada port A mikrokontroler, tegangan akan dikuatkan dengan penguatan 10 kali. Hal ini juga diperlukan agar dapat memperoleh perubahan tegangan yang signifikan pada pengukuran skala desimal pada LCD. Untuk penguatan 10 kali sesuai dengan rangkaian penguat instrumentasi pada gambar 3.10, diperlukan Rgain dengan perhitungan sebagai berikut:
, R1=R2, R3=R4, R5=R6
Rgain = R7 = 1 kΩ
(41)
3.2. Sistem kerja sensor
Gambar 3.8. Skema Sensor
Sensor beban berbasis serat optik buatan P2F-LIPI yang menggunakan prinsip mikrobending, terdiri dari serat optik yang diletakkan di atas lapisan karet, kemudian ditutupi dengan papan PVC yang telah direkatkan kawat berdiameter 2,4 mm dan panjang 10 cm yang disusun secara periodik dengan jarak antar kawat 0,5 cm. Jika pada sensor diberikan beban seperti Gambar 3.2, maka tekanan dari beban tersebut akan menyebabkan mikrobending pada serat optik. Mikrobending mengakibatkan intensitas cahaya yang melewati serat optik dapat berkurang. Selanjutnya, besar intensitas cahaya yang diteruskan akan diterima kembali oleh photodetector untuk mengkonversi daya optik menjadi tegangan listrik.
3.3. Pengujian Sensor
Gambar 3.3. menunjukkan rangkaian hardware sistem baca sensor yang merupakan modul pelengkap pada alat timbang beban dengan pengolah utama ATmega 32. Cahaya yang bersumber dari laser akan melewati serat optik sebagai sensor. Apabila diberikan beban di atas sensor, maka cahaya pada serat optik akan terdeformasi sehingga cahaya yang ditruskan akan masuk ke photodetector yang kemudian akan diubah menjadi sinyal listrik. Tegangan hasil keluaran photodetector diamplifikasi dengan penguat instrumentasi dan dikonversi menjadi digital dengan ADC (Analog to Digital Converter) 10 bit dengan tegangan referensi internal. Dalam proses pengukuran, push button start digunakan untuk memulai pengukuran sedangkan push button stop untuk mengakhiri pengukuran.
beban
(42)
Selama jalannya pengukuran, LCD akan menampilkan keterangan tanggal,waktu, tegangan, dan nilai beban yang terukur. Untuk menambahkan keterangan tanggal dan waktu, dapat ditambahkan rangkaian RTC. Informasi mengenai data beban yang terukur ditampilkan pada LCD karakter berukuran 4x40. Dalam proses pengukuran yang bersamaan, data hasil pengukuran akan langsung disimpan pada SD card dengan format teks, guna keperluan identifikasi selanjutnya.
Gambar 3.9. Rangkaian pada mikrokontroler
3.3.1. Pengujian Validasi Awal
Pengujian validasi awal dilakukan dengan memberikan beban uji 0; 20 kg; 40 kg; 60 kg; 80 kg; dan 100 kg secara berurutan pada sensor. Hasil validasi awal dapat dievaluasi dan dijadikan acuan untuk merancang rangkaian penguat instrumentasi.
(43)
3.3.2. Pengujian Rangkaian Penguat Instrumentasi
Dengan penambahan rangkaian penguat instrumentasi, dapat memperbesar range keluaran dari hasil pengukuran beban. Range data pengukuran yang kecil akan diperbesar 10 kali sehingga hasil pengukuran dapat lebih akurat. Penguat instrumentasi dengan penguatan 10 kali dapat dilihat pada Gambar 3.4. berikut ini :
Gambar 3.10. Rangkaian Penguat Instrumentasi dengan Penguatan 10 Kali
3.3.3. Pengujian ADC Terhadap Tegangan Keluaran dengan Rangkaian Penguat Instrumentasi
Tegangan keluaran dari rangkaian penguat instrumentasi selanjutnya akan diteruskan ke ADC untuk konversi sinyal listrik analog menjadi sinyal-sinyal digital yang akan diolah pada mikrokontroler ATmega32. Pada perancangan ini, ADC dibuat free running sehingga setiap masukan ADC selesai dikonversi akan melakukan konversi masukan selanjutnya secara periodik. Resolusi ADC dapat dinyatakan dalam bit, misalnya ADC dengan resolusi n-bit memiliki 2n kode digital yang mungkin dan berarti juga memiliki 2n tingkat undak (step level). Meskipun demikian, karena undak pertama dan undak terakhir hanya setengah dari lebar penuh, maka rentang skala-penuh (FSR, full-scale range) dibagi dalam (2n-1) lebar undak.
(44)
Resolusi ADC juga bisa dinyatakan dalam satuan Volt, yang merupakan hasil bagi dari tegangan skala penuh dengan 2n-1 lebar undaknya (www.en.wikipedia.com). Maka dari pernyataan di atas, jika ADC yang digunakan memiliki resolusi 10 bit, dan diketahui jangkauan tegangan menggunakan V referensi internal sebesar 2,5 Volt, maka resolusi ADC dalam satuan Volt adalah:
Pengujian validasi ADC ini dilakukan dengan membandingkan nilai tegangan keluaran dari penguat instrumentasi yang masuk ke pengolah mikrokontroler dengan nilai ADC.
Pada mikrokontroler, terlebih dahulu diprogram untuk menampilkan nilai ADC pada LCD. Untuk sumber tegangan digunakan power supply dan untuk memvariasikan besar tegangan menggunakan potensiometer. Pengujian dilakukan dengan cara mengukur setiap variasi tegangan keluaran dari penguat instrumentasi menggunakan multimeter dan membandingkan dengan nilai ADC yang tertera pada layar LCD. Dengan pengujian ini akan diperoleh hasil kalibrasi nilai ADC dengan tegangan yang dihasilkan. Hasil kalibrasi ini kemudian dimasukkan ke pengolah mikrokontroler dalam bentuk program.
3.3.4. Pengujian Validasi Beban
Setelah dilakukan pengujian ADC, dilakukan kembali validasi beban dengan beban uji yang sama yaitu 0; 20 kg; 40 kg; 60 kg; 80 kg; dan 100 kg secara berurutan pada sensor. Dalam proses ini akan di dapat hasil pengukuran beban sesuai dengan nilai beban uji yang diberikan pada sensor. Proses validasi beban dapat dilihat seperti Gambar 3.5. di bawah ini.
(45)
3.4. Program
Pemrograman dalam penelitian menggunakan bahasa C, dengan flowchart program sebagai berikut :
Gambar 3.12. Flowchart Program Pada Mikrokontroler
INISIALISASI MULAI
Y
PUSHBUTTON START
MENAMPILKAN JUDUL PADA LCD
READ ADC
V = (0,0024265) ADC
BEBAN = 21.94R3 - 176.3R2 + 476.3R
-328 R = (SUM/i)
MENAMPILKAN NILAI V, R, DAN BEBAN
PUSHBUTTON STOP
SELESAI BACA SD CARD
CLEAR SD CARD
MENAMPILKANDAN MENGHITUNG TANGGAL,
WAKTU PADA LCD
RESET
MENAMPILKAN JUDUL PADA
LCD DAN PLEA“E IN“ERT “D CARD AND RE“TART
N
BACA SENSOR : DATA KE- , TANGGAL, WAKTU, TEGANGAN, BEBAN
BUAT FILE TE“
BUAT FOLDER DATA
(46)
Atmega 32 sebagai pengolah utama dari alat penimbang dimasukkan program seperti yang tertera pada flowchart pada Gambar 3.6. Secara garis besar program tersebut bermaksud untuk menampilkan pada layar LCD berupa header dan waktu pada saat stand by. Apabila terdapat beban di atas sensor setelah jeda beberapa menit user diminta untuk menekan push button start sehingga alat penimbang mulai untuk mengukur beban dimulai dari konversi ADC, menghitung rata-rata data, baru kemudian mengkonversi sinyal yang diterima menjadi beban dalam satuan kilogram (kg). LCD akan menampilkan secara langsung beban terukur dan waktu pada saat pengukuran, dan data-data hasil pengukuran akan disimpan ke dalam SD card. Namun apabila push button stop ditekan maka proses pengukuran dan penyimpanan data selesai, dan kembali pada kondisi stand by.
(47)
BAB 4
HASIL DAN PEMBAHASAN
4.1. Pengujian Validasi Awal
Keluaran tegangan dari sensor untuk jangkauan pembacaan 0 sampai dengan 100 kg adalah seperti grafik pada Gambar 4.1. Pada jangkauan tersebut sensor hanya memiliki perbedaan nilai tegangan keluaran sebesar 80 mV. Apabila tegangan tersebut langsung dibaca dengan mikrokontroler akan digunakan menyebabkan resolusinya kurang baik, maka sebelum diproses dalam mikrokontroler tegangan tersebut dikuatkan dengan instrumentasi amplifier dan dipilih ADC 10 bit dengan referensi internal yang dapat diprogram pada Atmega32.
Gambar 4.1. Tegangan Keluaran Sensor
4.2. Pengujian Rangkaian Penguat Instrumentasi
Untuk rangkaian intrumentasi amplifier, dilakukan pengujian tegangan masukan (Vin) yang berasal dari sumber tegangan uji dan hasil tegangan keluaran (Vout) dengan voltmeter untuk memastikan penguatan tegangan 10 kali dan melihat linearitasnya. Hasil pengujian seperti yang ditunjukkan grafik pada
4.56 4.57 4.58 4.59 4.6 4.61 4.62 4.63 4.64 4.65 4.66
0 20 40 60 80 100 120
V
o
ut
(v
o
lt)
(48)
Gambar 4.2 bahwa penguatan mendekati 10 kali dan memiliki korelasi yang linear.
Gambar 4.2. Tegangan masukan dan tegangan keluaran pada penguat instrumentasi
4.3. Pengujian Validasi ADC
Untuk memperolah konversi tegangan digital dengan tegangan analog, pengujian dilakukan lagi dengan memberikan tegangan masukan yang sudah dikuatkan dibandingkan dengan nilai tegangan digital hasil konversi ADC. Hasil dari konversi tersebut ditunjukkan pada Gambar 4.3 dengan persamaan yang didapat yaitu, y = 0,0024265x, dimana variabel x merupakan nilai ADC. Dengan demikian persamaan ini dimasukkan ke dalam program untuk konversi nilai tegangan.
y = 9.4288x + 0.3014 R² = 0.991
0 1 2 3 4 5 6 7 8
0 0.2 0.4 0.6 0.8
V
out
( V
ol
t )
(49)
Gambar 4.3. Pengujian ADC setelah penambahan penguat instrumentasi
4.4. Pengujian Validasi Beban
Setelah diperoleh hasil pengujian yang sesuai, rancangan alat timbang ini dilakukan validasi dengan masukan dari sensor dan keluaran dibaca dengan mikrokontroler. Validasi dilakukan dengan memberikan beban uji pada sensor dari 0 sampai dengan 100 kg. Hasil validasi beban seperti yang ditunjukkan pada Gambar 4.4 dengan menghasilkan korelasi persamaan polynomial y = 21.94x3 - 176.3x2 + 476.3x -328 antara beban yang diberikan terhadap tegangan keluaran. Persamaan ini dimasukkan dalam program mikrokontroler untuk mengkonversi beban yang terbaca menjadi tampilan dengan satuan kilogram (kg).
Gambar 4.4. Grafik Validasi Beban
y = 0.0024265 R² = 1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6
0 100 200 300 400 500 600 700
Tegan g an (Vo lt) ADC
y = 21.946x3 - 176.33x2 + 476.39x - 328.08
R² = 0.9959
-20 0 20 40 60 80 100 120
0 0.5 1 1.5 2 2.5
B e b an te ru ku r (k g ) Tegangan (Volt)
(50)
Rancangan alat timbang sudah diuji dan divalidasi dengan beban, maka selanjutnya alat ini dilihat performansinya pada saat digunakan untuk mengukur beban sesungguhnya. Pada Gambar 4.5, Alat timbang digunakan dalam pengukuran beban. Tampilan LCD ini muncul setelah push button ditekan
sehingga menampilkan header “SENSOR BEBAN BERBASIS FIBER OPTIK”
pada baris 1, tanggal dan waktu saat pengukuran pada baris 2, keterangan tegangan dan rata-rata tegangan yang terukur dari sensor pada baris 3, dan Informasi beban dengan satuan kg pada baris 4. Sedangkan push button stop untuk menakhiri proses pengukuran.
Gambar 4.5. Tampilan Alat Timbang
Sedangkan karakteristik akurasi dari alat timbang ini ditunjukkan pada Tabel 4.1. Karakteristik ini diperoleh dari pengujian alat timbang dengan diberikan baban uji dari tegangan 0 sampai dengan 100 kg.
Tabel 4.1. Perbandingan beban, beban terukur, dan deviasi.
Beban Real (Kg) Beban terukur (Kg) Deviasi (kg) Deviasi (%)
0 1.96 1,96 ~
20 19.21 0,79 3,95 %
40 32.33 7,67 19,17 %
60 55.09 4,91 8,18 %
80 74.65 5,35 6,68 %
(51)
Gambar 4.6. Grafik Perbandingan Beban Sebenarnya dan Beban Terukur
Berdasarkan hasil di atas, dapat dilihat bahwa hasil penimbangan beban terukur mendekati nilai beban yang sesungguhnya, dengan deviasi kurang dari 10 kg atau rata-rata di bawah 10 %, kecuali pada beban 40 kg. Hal ini dapat disebabkan oleh mekanisme pada sensor. Selanjutnya, data – data dari hasil
pengukuran tersebut akan disimpan ke dalam SD card pada folder “data” file “tes”
dengan format teks seperti pada Gambar 4.6. Keterangan data – data yang disimpan berupa pengukuran data ke-, waktu pengukuran,besar tegangan, dan beban yang terukur.
R² = 0.9957
0 20 40 60 80 100 120
0 20 40 60 80 100
B
e
b
an
r
e
al
(
kg)
(52)
(53)
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari penelitian yang telah dilakukan dapat diperoleh kesimpulan :
1. Pada rancangan ini, hasil pengukuran beban dapat diidentifikasi dari konversi tegangan output menjadi nilai beban dengan menggunakan persamaan hasil validasi. Tegangan output akan lebih kecil nilainya dibandingkan tegangan input, hal ini dipengaruhi oleh besar beban yang diberikan pada sensor. Dari penelitian diperoleh deviasi persen error antara beban terukur dengan beban sebenarnya dibawah 10 %.
2. Akurasi adalah tingkat kedekatan nilai pengukuran dengan nilai sebenarnya. Hasil pengukuran yang diperoleh bahwa selisih antara nilai beban sebenarnya dan beban terukur kurang dari 10 kg, dimana hasil pengukuran beban dari 0 sampai 100 kg, maka alat memiliki nilai akurasi rata-rata di bawah 10 %.
5.2. Saran
Setelah melakukan penelitian, diperoleh beberapa hal yang dapat dijadikan saran untuk melakukan penelitian lebih lanjut, yaitu :
1. Pada penerapan sensor ini, disarankan untuk tetap menjaga suhu ruangan sumber laser, karena sangat mempengaruhi kestabilan laser
2. Penelitian ini membutuhkan pengembangan lebih lanjut untuk mendapatkan hasil yang maksimal, dan kedepannya diharapkan dapat membuat alat yang lebih kompleks lagi, yang dapat di aplikasikan pada beban bergerak.
(54)
DAFTAR PUSTAKA
Ayuni, Cetie Rinda. dkk. Deteksi Dini Keretakan Struktur Beton dengan Menggunakan Fiber Optik Plastik. Fisika FMIPA ITS.Surabaya.
Batenko, Anatoly. Grakovski, A. Kabashkin, I. Petersons, E. Sikerzhicki, Y. 2011. Weihgt-In-Motion (WIM) Measurements by Fiber Optic Sensor : Problems and Solutions.Transport and Telecommunication Institute. Volume 12, No 4, 27–33, pp. 27-33.
Bayuwati, Dwi. 2010. Pembuatan Extensometer untuk Deteksi Pergeseran Tanah. Lembaga Ilmu Pengetahuan Indonesia (LIPI).
Bolton, W. 2006. Sistem Instrumentasi dan Sistem Kontrol. Penerbit Erlangga. Jakarta : 56.
Fraden, Jacob. 2010. Handbook of Modern Sensors Physics, Design, and Applicatons. Fourth Edition. Springer. New York.
Hanto, Dwi. Al Kindi, Cindy. Setiono, Andi. Widiyatmoko, B. 2013. Analisa Pengaruh Mikrobending untuk Aplikasi pada Sensor Beban Berbasis Serat Optik. Prosiding Seminar Nasional Fisika – IKIP PGRI. Semarang.
Muhtadan. dkk. 2006. Rancang Bangun Alat Penyimpan Data Suhu dengan Mikrokontroler. Seminar Nasional II SDM Teknologi Nuklir Yogyakarta. ISSN 1978-0176
Pramono, Nopi Yudi. dkk. 2012. Pengaruh Lekukan Bertekanan pada Serat Optik Plastik terhadap Pelemahan Intensitas Cahaya. Prosiding Seminar Nasional Penelitian dan Penerapan MIPA. FMIPA Universitas Negeri Yogyakarta. Yogyakarta.
sSetiawan, Iwan. 2009. Buku Ajar Sensor dan Transduser. Universitas Diponegoro. Semarang.
Setiono, Andi. Mulyanto, Imam. Widiyatmoko, B. 2012. Kajian Mikrobending sebagai Sensor Beban Berbasis Serat Optik Multimode. Group THz - Photonics Pusat Penelitian Fisika – Lembaga Ilmu Pengetahuan Indonesia
(55)
(PPF-LIPI). Prosiding Pertemuan Ilmiah XXVI HFI Jawa Tengah dan DIY. Purworejo.
Setiono, Andi. Puranto, P. Widiyatmoko, B. 2010. Pembuatan dan Uji Data Logger Berbasis Mikrokontroler Atmega32 untuk Monitoring pergeseran Tanah. Bidang Instrumentasi Fisis dan Optoelektronika Pusat Penelitian Fisika – Lembaga Ilmu Pengetahuan Indonesia (PPF-LIPI). Jurnal Fisika ISSN 0854-3046. Himpunan Fisika Indonesia Akreditasi: No. 242/Akred-LIPI/P2MBI/05/2010, Vol. 10, No. 2, pp. 83-94.
Siswanto, Oktavianto Utomo. 2005. Analisis Perhitungan Rugi-Rugi pada Serat Optik. Teknik Elektro Universitas Diponegoro. Semarang.
www.atmel.com
(56)
LAMPIRAN A
Program #include <mega32.h>
#include <stdio.h> #include <delay.h> #include "mmc.c" #if TINY_FAT #include "tff.c" #else
#include "ff.c" #endif
#include <delay.h>
// DS1307 Real Time Clock functions #include <ds1307.h>
// Alphanumeric LCD functions //#include <alcd.h>
#asm
.equ __lcd_port=0x15 // untuk port c #endasm
/* now you can include the LCD Functions */ #include <lcd4x40.h>
//variabel global
#define RTC_ADDR 0xD0
char *day[7]={"Senin","Selasa","Rabu","Kamis","Jum'at","Sabtu","Minggu"}; char
*month[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","N ov","Dec"};
unsigned char hari, tanggal,bulan,tahun,jam,menit,detik; char text[16];
unsigned int j=1; float sum=0; bit start,stop=0;
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void) {
(57)
// Place your code here start=1;
stop=0; j=1; }
// External Interrupt 1 service routine
interrupt [EXT_INT1] void ext_int1_isr(void) {
// Place your code here start=0; stop=1; sum=0; lcd_gotoxy(0,2); lcd_clear(); lcd_gotoxy(0,0);
lcd_puts("SENSOR BEBAN BERBASIS FIBER OPTIK"); }
#define ADC_VREF_TYPE 0x40 // Read the AD conversion result
unsigned int read_adc(unsigned char adc_input) {
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage delay_us(10);
// Start the AD conversion ADCSRA|=0x40;
// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; return ADCW; } char filename[15]="data/tes.csv"; //char filename[15]; char i,FBuffer[100]; char *file;;
unsigned char data;
char foldername[10]="data"; unsigned char dta[25],loop; unsigned int cobi;
FRESULT report;
unsigned char command,a,b,flag,sreg,bcd,cek; //char FBuffer[100];
(58)
unsigned int bw; //unsigned long bw;
FATFS fs; // Work area (file system object) for logical drive FIL ftest; // file objects
FILINFO finfo;
#ifndef RXB8 #define RXB8 1 #endif
#ifndef TXB8 #define TXB8 0 #endif
#ifndef UPE #define UPE 2 #endif
#ifndef DOR #define DOR 3 #endif
#ifndef FE #define FE 4 #endif
#ifndef UDRE #define UDRE 5 #endif
#ifndef RXC #define RXC 7 #endif
#define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<DOR)
#define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC)
// USART Receiver buffer #define RX_BUFFER_SIZE 24 char rx_buffer[RX_BUFFER_SIZE]; #if RX_BUFFER_SIZE <= 256
unsigned char rx_wr_index,rx_rd_index,rx_counter; #else
(59)
unsigned int rx_wr_index,rx_rd_index,rx_counter; #endif
// This flag is set on USART Receiver buffer overflow bit rx_buffer_overflow;
// USART Receiver interrupt service routine interrupt [USART_RXC] void usart_rx_isr(void) {
char status,data; status=UCSRA; data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index++]=data; #if RX_BUFFER_SIZE == 256
// special case for receiver buffer size=256 if (++rx_counter == 0) rx_buffer_overflow=1; #else
if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0; if (++rx_counter == RX_BUFFER_SIZE)
{ rx_counter=0; rx_buffer_overflow=1; } #endif } } #ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char data; while (rx_counter==0); data=rx_buffer[rx_rd_index++]; #if RX_BUFFER_SIZE != 256
if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #endif #asm("cli") --rx_counter; #asm("sei") return data; } #pragma used-
(60)
#endif
// USART Transmitter buffer #define TX_BUFFER_SIZE 24 char tx_buffer[TX_BUFFER_SIZE]; #if TX_BUFFER_SIZE <= 256
unsigned char tx_wr_index,tx_rd_index,tx_counter; #else
unsigned int tx_wr_index,tx_rd_index,tx_counter; #endif
// USART Transmitter interrupt service routine interrupt [USART_TXC] void usart_tx_isr(void) {
if (tx_counter) {
--tx_counter;
UDR=tx_buffer[tx_rd_index++]; #if TX_BUFFER_SIZE != 256
if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0; #endif
} }
#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer #define _ALTERNATE_PUTCHAR_
#pragma used+ void putchar(char c) {
while (tx_counter == TX_BUFFER_SIZE); #asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0)) {
tx_buffer[tx_wr_index++]=c; #if TX_BUFFER_SIZE != 256
if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0; #endif ++tx_counter; } else UDR=c; #asm("sei") } #pragma used- #endif
(61)
void clear_buffer() { for (data=0;data<100;data++) { FBuffer[data]=0; } } /*---*/ /* 100Hz timer interrupt generated by OC2 */ /*---*/ interrupt [TIM2_COMP] void timer2_comp_isr(void) {
disk_timerproc(); /* Drive timer procedure of low level disk I/O module */ } void remove() { report=0; do { report=f_unlink(filename); } while(report!=FR_OK); }
void take_data(unsigned int len_data) {
unsigned int len_data2;
//FBuffer[0]=0;
//for (len_data2=0;len_data2<len_data;len_data2++) //while (FBuffer[0]!='E' )
//while(1) //{
f_read(&ftest, FBuffer, strlen(FBuffer), &bw);
//if (FBuffer[0]=='E') break; for (data=0;data<30;data++) { //delay_ms(100); putchar(FBuffer[data]);
(62)
} putchar(0x0d); //} } void reading() { f_mount(0,&fs);
report=f_open(&ftest,filename, FA_OPEN_EXISTING | FA_READ); if (report==FR_NO_PATH)
{
printf("NO PATH");
}
else if (report==FR_NO_FILE) { printf("NO FILE"); } else { take_data(200); } f_close(&ftest); f_mount(0, NULL); } void mount_on() { f_mount(0,&fs); }
void display_status(char *file_name) { if ((report=f_stat(file_name,&finfo))==FR_OK) { } } void mk_dir() { f_mkdir(foldername); } void mk_file() {
(63)
report=0; do {
report=f_open(&ftest,filename, FA_CREATE_ALWAYS | FA_WRITE); } while(report!=FR_OK); } //========================================================= === void isi_file(void) {
unsigned char ulang; unsigned char status_tulis; status_tulis=0; //reset_filename(); //file_data(); //mk_dir(); //mk_file(); display_status(filename); for(ulang=0;ulang<10;ulang++) { //timer_mmc(); if ((report=f_open(&ftest,filename,FA_WRITE))==FR_OK)status_tulis=1; else status_tulis=0; if(status_tulis==1) { if ((report=f_lseek(&ftest,finfo.fsize))==FR_OK)status_tulis=1; else status_tulis=0; } if(status_tulis==1) { if ((report=f_write(&ftest,FBuffer,strlen(FBuffer),&bw))==FR_OK)status_tulis=1; else status_tulis=0; } if(status_tulis==1)
(64)
{ if ((report=f_close(&ftest))==FR_OK)status_tulis=1; else status_tulis=0; } if(status_tulis==1)break; delay_ms(500); } //stop_timer_mmc(); take_data(30); } //void write_data() //{
// report=0; // do // {
// report=f_write(&ftest, FBuffer, strlen(FBuffer), &bw); // }
// while(report!=FR_OK); //} void mount_off() { f_close(&ftest); f_mount(0, NULL); }
DWORD get_fattime () {
/* struct tm *tmr; time_t t;
cli(); t = rtc; sei();
tmr = gmtime(&t);
return ((DWORD)(tmr->tm_year - 80) << 25) | ((DWORD)(tmr->tm_mon + 1) << 21) | ((DWORD)tmr->tm_mday << 16) | (WORD)(tmr->tm_hour << 11) | (WORD)(tmr->tm_min << 5) | (WORD)(tmr->tm_sec >> 1); */
return ((2007UL-1980) << 25) // Year = 2006 | (7UL << 21) // Month = juli
| (29UL << 16) // Day = 29 | (22U << 11) // Hour = 22
(65)
| (30U << 5) // Min = 30 | (0U >> 1) // Sec = 0 ; } void main(void) {
// Declare your local variables here unsigned int dt_adc;
float rata_rata, v, BEBAN; char buf [33];
unsigned char second_akhir=0,time_transmit=0; // Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00;
(66)
TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off
// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00;
TCNT0=0x00; OCR0=0x00;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off
// Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00;
(67)
TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;
SFIOR=0x00; // ADC initialization
// ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83;
// SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00;
OCR2 = 77-1; // Timer2: 100Hz interval (OC2) TCCR2 = 0b00001111; //CTC mode,
TIMSK=0x80; DDRB=1; #asm("sei") PORTD=0x00; DDRD=0x04; UCSRA=0x00; UCSRB=0xD8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x19;
// I2C Bus initialization // I2C Port: PORTA // I2C SDA bit: 1 // I2C SCL bit: 0 // Bit Rate: 100 kHz
(68)
// Project|Configure|C Compiler|Libraries|I2C menu. i2c_init();
// DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: On // Square wave frequency: 1Hz
rtc_init(0,1,0);
rtc_set_time(10,00,00); // jam 6:00:00 rtc_set_date(22,26,05,12);
printf("serial init\n\r");
if(disk_initialize(0)==STA_NOINIT)
{ printf("MMC not init\n\r");
printf("PleaseInsertSDCard!!\r"); printf("RestartY'rInstrument\r");
while(1); // stop! if card was not present or was not detected currectly } //filename="data/awal.csv"; mount_on(); mk_dir(); mk_file(); //file_baru();
sprintf(FBuffer,"Tanggal, Waktu, Data\n"); //write_data();
isi_file(); //mount_off(); printf("done\n\r");
printf("Coba SD Card\r");
// Alphanumeric LCD initialization // Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTC Bit 0
// RD - PORTC Bit 1 // EN - PORTC Bit 2 // D4 - PORTC Bit 4 // D5 - PORTC Bit 5 // D6 - PORTC Bit 6 // D7 - PORTC Bit 7 // Characters/line: 40 lcd_init();
lcd_gotoxy(0,0);
lcd_puts("SENSOR BEBAN BERBASIS FIBER OPTIK"); // Global enable interrupts
(69)
while(1) {
// Place your code here
rtc_get_date(&hari,&tanggal, &bulan, &tahun); rtc_get_time(&jam, &menit, &detik);
lcd_gotoxy(0,1); sprintf(text,"%s/%02d/%s/%02d",day[hari],tanggal,month[bulan],tahun); lcd_puts(text); lcd_gotoxy(20,1); sprintf(text,"Jam: %02d/%02d/%02d",jam,menit,detik); lcd_puts(text); delay_ms(500); //lcd_clear(); if (start==1) { while (stop==0)
{
rtc_get_date(&hari,&tanggal, &bulan, &tahun); rtc_get_time(&jam, &menit, &detik); lcd_gotoxy(0,1); sprintf(text,"%s/%02d/%s/%02d",day[hari],tanggal,month[bulan],tahun); lcd_puts(text); lcd_gotoxy(20,1); sprintf(text,"Jam: %02d/%02d/%02d",jam,menit,detik); lcd_puts(text); delay_ms(500); //lcd_clear(); dt_adc=read_adc(0); v=0.0024265*(float)dt_adc; //PORTB=~dt_adc; lcd_gotoxy(0,2); sum = sum+v; rata_rata = (sum/j); sprintf(buf, "%i",j); lcd_puts(buf);
lcd_gotoxy(4,2);
sprintf(buf, "V = %.2f volt",v); lcd_puts(buf);
(1)
// Project|Configure|C Compiler|Libraries|I2C menu. i2c_init();
// DS1307 Real Time Clock initialization // Square wave output on pin SQW/OUT: On // Square wave frequency: 1Hz
rtc_init(0,1,0);
rtc_set_time(10,00,00); // jam 6:00:00 rtc_set_date(22,26,05,12);
printf("serial init\n\r");
if(disk_initialize(0)==STA_NOINIT)
{ printf("MMC not init\n\r");
printf("PleaseInsertSDCard!!\r"); printf("RestartY'rInstrument\r");
while(1); // stop! if card was not present or was not detected currectly } //filename="data/awal.csv"; mount_on(); mk_dir(); mk_file(); //file_baru();
sprintf(FBuffer,"Tanggal, Waktu, Data\n"); //write_data();
isi_file(); //mount_off(); printf("done\n\r");
printf("Coba SD Card\r");
// Alphanumeric LCD initialization // Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTC Bit 0
// RD - PORTC Bit 1 // EN - PORTC Bit 2 // D4 - PORTC Bit 4 // D5 - PORTC Bit 5 // D6 - PORTC Bit 6 // D7 - PORTC Bit 7 // Characters/line: 40 lcd_init();
lcd_gotoxy(0,0);
lcd_puts("SENSOR BEBAN BERBASIS FIBER OPTIK"); // Global enable interrupts
(2)
while(1) {
// Place your code here
rtc_get_date(&hari,&tanggal, &bulan, &tahun); rtc_get_time(&jam, &menit, &detik);
lcd_gotoxy(0,1); sprintf(text,"%s/%02d/%s/%02d",day[hari],tanggal,month[bulan],tahun); lcd_puts(text); lcd_gotoxy(20,1); sprintf(text,"Jam: %02d/%02d/%02d",jam,menit,detik); lcd_puts(text); delay_ms(500); //lcd_clear(); if (start==1) { while (stop==0)
{
rtc_get_date(&hari,&tanggal, &bulan, &tahun); rtc_get_time(&jam, &menit, &detik); lcd_gotoxy(0,1); sprintf(text,"%s/%02d/%s/%02d",day[hari],tanggal,month[bulan],tahun); lcd_puts(text); lcd_gotoxy(20,1); sprintf(text,"Jam: %02d/%02d/%02d",jam,menit,detik); lcd_puts(text); delay_ms(500); //lcd_clear(); dt_adc=read_adc(0); v=0.0024265*(float)dt_adc; //PORTB=~dt_adc; lcd_gotoxy(0,2); sum = sum+v; rata_rata = (sum/j); sprintf(buf, "%i",j); lcd_puts(buf);
(3)
sprintf(buf, "R = %.2f volt", rata_rata); lcd_puts(buf); j++; delay_ms(500); } } lcd_gotoxy(0,3);
BEBAN = (21.94*rata_rata*rata_rata*rata_rata)- 176.3*rata_rata*rata_rata)+ (476.3*rata_rata )-328 ;
sprintf(buf, "BEBAN = %.2f kg",BEBAN); lcd_puts(buf); rtc_get_time(&jam,&menit,&detik); if(second_akhir!=detik)time_transmit+=1; second_akhir=detik; if (time_transmit==60) { for (j=0;j<100;j++) { rtc_get_time(&jam,&menit,&detik);
rtc_get_date(&hari,&tanggal, &bulan, &tahun);
sprintf(FBuffer,"%02d/%02d/%02d/%02d, %02d:%02d:%02d, %d\n",hari,tanggal,bulan,tahun,jam,menit,detik,j); isi_file(); take_data(30); delay_ms(1000); } printf("selesai\n"); j=0; second_akhir=0; rtc_get_time(&jam,&menit,&detik); time_transmit=detik; } }; }
(4)
LAMPIRAN B
Gambar
(5)
Rangkaian Mikrokontroler
(6)
Kabel serat Optik