Rancangan Pengolah Tampilan Dan Penyimpan Hasil Alat Timbang Berbasis Serat Optik Menggunakan Mikrokontroler ATMEGA32

(1)

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