tugas akhir rian amanda 13200084
Post on 10-Jul-2015
166 Views
Preview:
TRANSCRIPT
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 1/88
PERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL
BERBASIS MIKROKONTROLER AT90S2313
LAPORAN TUGAS AKHIR
Disusun oleh:
Rian Amanda
13200084/C
Program studi: Teknik Elektronika
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNOLOGI INDUSTRI
INSTITUT TEKNOLOGI BANDUNG
2005
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 2/88
PERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL
BERBASIS MIKROKONTROLER AT90S2313
Laporan Tugas Akhir
Oleh :
Rian Amanda
13200084/Teknik Elektronika
Telah diterima dan disahkan untuk memenuhi persyaratan memperoleh gelar
SARJANA TEKNIK ELEKTRO
INSTITUT TEKNOLOGI BANDUNG
Bandung, 5 September 2005
Disahkan Oleh:
Pembimbing I Pembimbing II
Prof .Dr. Ir.Adang Suwandi Ahmad Ir. Syahirul Hakim Ad Dairi
NIP 130672118 NIP 13199525
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 3/88
ABSTRAK
Tujuan tugas akhir ini adalah merancang sistem waktu nyata untuk mengukur laju
aliran (debit) air dalam pipa. Sistem pengukur ini merupakan bagian dari kit sistem
kendali proses. Parameter masukan alat pengukur ini adalah periode dari pulsa yang
dihasilkan sensor paddlewheel. Dalam Tugas Akhir ini diasumsikan sensor paddlewheel
bersifat ideal artinya kecepatan linier paddlewheel sebanding dengan laju aliran.
Data dari sensor akan diolah oleh mikrokontroler dan hasilnya ditampilkan oleh
LCD. Bila mendapat permintaan untuk mengirim data hasil perhitungan maka
mikrokontroler akan mengirimkan hasil perhitungan terakhir kapada alat device) yang
meminta. Alat-alat pada sistem kendali proses ini terhubung satu sama lain melalui sebuah
bus komunikasi serial.
Proses pengambilan data, penghitungan, penampilan LCD, dan komunikasi diatur
oleh program yang disebut kernel hybrid . Kernel hybrid bertugas mengatur kapan tugas-
tugas tersebut dikerjakan berdasarkan kejadian pemicu dan selang waktu. Batas laju aliran
air yang dapat terukur tergantung pada diameter pipa dan frekuensi paddlewheel, adapunfrekuensi maksimum yang dapat diukur adalah 5,8 Hz atau 143.7ml/s.
Kata kunci: debit,system waktu nyata ,kernel hybrid, sensor paddlewheel
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 4/88
ABSTRACT
The main purpose of this Final Project is to realize a Real Time System to measure
water volumetric flow rate (debit) in pipe. This system is commonly called “transmitter”
and part of the process control system kit. The period from paddlewheel censor transducer
is measured in order to yield water flow rate value. This final project assumes the
paddlewheel censor is ideal thus the relation between water flow rate and paddlewheel
linear speed is proportional.
Microcontroller will calculate wavelength data from censor, put water flow rate
result to LCD panel and send it to other device when asked through serial communication
bus. All tasks above is managed by hybrid kernel program which responsible to determine
when the task will be executed. Kernel will executed tasks based on their priority so that
the more critical tasks will be guaranteed to be done first and the less priority tasks will be
delayed, nevertheless there is one task which is executed based on its time period that is the
LCD update task.
The maximum paddlewheel frequency that can be measured is 5.8 Hz, which isproportional to volumetric flow 143.7 mililiter/second when its relation is depend on pipe
diameter and relative velocity distribution across pipe.
Keyword : volumetric flow, real time system, hybrid kernel, paddlewheel censor
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 5/88
KATA PENGANTAR
Puji Syukur kepada Allah SWT penulis ucapkan karena berkat rahmat dan
hidayah-Nya penulis dapat melaksanakan kuliah di kampus hingga mengerjakan tugas
akhir ini dengan baik.
Judul laporan TA ini adalah “perancangan transmitter flowmeter paddlewheel
berbasis mikrokonrtoller AT90S2313”. Laporan ini merupakan hasil pengerjaan Tugas
akhir di Departemen Teknik Elektro ITB, disusun sebagai syarat kelulusan S1 di
Departemen Teknik Elektro ITB. Pada kesempatan ini penulis sudah sepantasnya
mengucapkan terima kasih yang sebesar-besarnya kepada:
• Ibu, Reza dan Lola yang selalu mendukung dan mendoakan penulis selama kuliah
di ITB.
• Pamanku “Ma’ Buwh” yang telah membantu dalam berbagai hal.
• Bapak Prof. Adang Suwandi Ahmad sebagai pembimbing satu, yang telah
meluangkan waktu untuk membantu penulis menyelesaikan Tugas Akhir ini.
• Bapak Ir. Syahirul Hakin Ad Dairi sebagai pembimbing dua, yang telah
memberikan bimbingan dan fasilitas bagi penulis untuk menyelesaikan Tugas
Akhir ini.
• Bapak Ir. Sumasono, yang telah banyak membantu penulis dalam memecahkan
masalah yang terasa pelik bagi penulis.
• Segenap dosen Departemen Teknik Elektro ITB yang berperan besar memberi
ilmu pengetahuan kepada penulis selama kuliah.
• Staf Tata Usaha Departemen Teknik Elektro ITB dan Tata Usaha Laboratorium
Teknik Elektronika ITB.
• Ade Sholihuddin dan Agung Surya yang telah bersama-sama dengan penulis
mengerjakan tugas akhir ini, senang bekerjasama dengan kalian.
• Teman-teman mahasiswa Elektro, khususnya Elektro 2000.
• Teman-teman kos yang konyol-konyol namun dapat diajak bertukar pikiran.
• Seluruh pihak yang telah memberikan bantuan dan dorongan.
Semoga laporan Tugas Akhir ini dapat bermanfaat dan dapat digunakan untuk
pengembangan dan penelitian lebih lanjut. Penulis menyadari terdapat banyak kekurangan
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 6/88
dan kesalahan dalam penulisan laporan ini. Untuk itu penulis menyambut baik kritik dan
saran. Akhir kata penulis memohon maaf bila ada kata-kata yang tidak berkenan. Terima
Kasih.
Bandung, Agustus 2005
Penulis
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 7/88
DAFTAR ISI
ABSTRAK………………………………………………........……………………………..i
ABSTRACT…………………………………………………........………………………...ii
KATA PENGANTAR………………………………………………........………………..iii
DAFTAR ISI…………………………………………………………........……………….iv
DAFTAR GAMBAR………………………………………...……………........…………vii
DAFTAR TABEL………………………………………….……………………........……ix
DAFTAR PERSAMAAN......................................................................................................x
BAB I Pendahuluan………………………………………………………….........1
1.1 Latar Belakang……………………………………………………….........1
1.2 Tujuan…………………………………………………………….…..........1
1.3 Batasan Masalah……………………………………………………...........2
1.4 Sistematika Penulisan………………………………………………......….2
BAB II Tinjauan Pustaka……………………………………………………......…4
2.1 Metoda Pengukuran Pada Sensor Paddlewheel…...…......….....…………...42.2 Sistem tertanam………………..………………………………......………5
2.3 Sistem waktu nyata…………………………………………………......….5
2.4 Sensor paddlewheel……………………………..…………………......…10
2.5 Mikrokontroler AT90S2313……………………………………….......…11
2.6 Komunikasi serial…………………………………………………….......15
2.7 Display LCD PC1601A…………………………………………......……16
BAB III Perancangan dan Implementasi………….……………….…………........19
3.1 Deskripsi Proses Kendali Eksperimenter…..……......……………...……19
3.2 Deskripsi sensor………………………..……………......……………….20
3.3 Perancangan dan implementasi transmitter…………….........……………22
3.3.1 Implementasi perangkat keras………………..…….....…………23
3.3.2 Perancangan perangkat lunak………………...……….....………25
3.3.3 Implementasi perangkat lunak………………….…………......….27
3.3.3.1 Task pengukuran periode……..……………...…….....…27
3.3.3.2 Task pemeriksaan data serial…………………….....……33
3.3.3.3 Task batas waktu pengukuran periode……………..........36
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 8/88
3.3.3.4 Task update display LCD…………………………....….37
3.3 Alokasi memori dan register…..…………………………….……......….39
BAB IV Pengujian dan Analisis…………………………………………….......…42
4.1 Pengujian karakteristik reed switch pada berbagai frekuensi …….......…42
4.2 Pengujian perangkat lunak…………………………………….….….......43
4.2.1 Pengujian dengan masukan dari pembangkit sinyal…..….….......…43
4.2.1 Pengujian dengan masukan dari sensor…………………..…….......46
4.3 Pengujian komunikasi………………………………………………....... 50
BAB V Kesimpulan dan Saran……………………………………...................………..…55
5.1 Kesimpulan……………………………………………………........…….55
5.2 Saran………………………………………………………………......….56
DAFTAR PUSTAKA…………………………………………………………….…..........57
LAMPIRAN………………………………………………………………………….........58
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 9/88
DAFTAR GAMBAR
Gambar 2.1 Pengukuran frekuensi berdasarkan banyaknya siklus........................................4
Gambar 2.2 Pengukuran frekuensi berdasarkan periode....................................4
Gambar 2.3 Real Time Kernel sebagai abstraction layer antara aplikasi perangkat lunak
dan perangkat keras [9]....................................................................................6
Gambar 2.4 Layanan yang disediakan Real Time Kernel [9]................................................6
Gambar 2.5 Perbandingan pewaktuan pemindahan tugas [9]................................................7
Gambar 2.6 Diagram waktu Event-Triggered System [12]....................................................9
Gambar 2.7 Diagram waktu Time-Triggered System [12]....................................................9
Gambar 2.8 Gambar penampang samping sensor paddlewheel..........................................10
Gambar 2.9 Pull-up resistor..................................................................................................10
Gambar 2.10 Sinyal keluaran sensor paddlewheel...............................................................10
Gambar 2.11 Konfigurasi pin AT90S2313 [2] ....................................................................11
Gambar 2.12 Diagram Blok AT90S2313 [2] ......................................................................13
Gambar 2.13 Peta Memori AT90S2313 [2] ........................................................................14
Gambar 2.14 RS 485 Half Duplex Network [4] ..................................................................16Gambar 2.15 RS 485 Full Duplex Network [4] ..................................................................16
Gambar 2.16 Hubungan HD44780 dengan layer LCD [13]…………………….........……17
Gambar 2.17 Kode ASCII pada LCD HD44780 [3] ...........................................................18
Gambar 3.1 Diagram blok sistem pengukuran laju aliran air...............................................19
Gambar 3.2 Diagram blok sistem.........................................................................................19
Gambar 3.3 Sensor pada posisi vertikal...............................................................................20
Gambar 3.4 Penggunaan internal pull-up resistor................................................................21
Gambar 3.5 Perbandingan sinyal ideal dengan sebenarnya.................................................21
Gambar 3.6 Diagram blok transmitter..................................................................................22
Gambar 3.7 ISP Fun Card....................................................................................................23
Gambar 3.8 Antarmuka mikrokontroler dan LCD...............................................................24
Gambar 3.9 Antarmuka mikrokontroler dan MAX485........................................................24
Gambar 3.10 Flowchart Inisialisasi program.......................................................................27
Gambar 3.11 Pulsa sepanjang 1 periode..............................................................................28
Gambar 3.12 Flowchart pengukuran frekuensi paddlewheel...............................................30
Gambar 3.13 Flowchart operasi pembagian 24 bit fixed point............................................31
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 10/88
Gambar 3.14 Konversi 2 Byte Binary ke desimal…………........................………………32
Gambar 3.15 Konversi Desimal ke ASCII...........................................................................33
Gambar 3.16 Paket data pada protokol.................................................................................33
Gambar 3.17 Flowchart periksa komunikasi serial..............................................................35
Gambar 3.18 Flowchart batas waktu pengukuran periode................................36
Gambar 3.19 Task update LCD............................................................................................37
Gambar 3.20 Inisialisasi LCD..............................................................................................38
Gambar 3.21 Tulis karakter ke LCD....................................................................................39
Gambar 3.22 Alokasi Register.............................................................................................40
Gambar 3.23 Alokasi SRAM...............................................................................................41
Gambar 4.1 Skema pengujian reed switch...........................................................................42
Gambar 4.2 Pengujian dengan pembangkit sinyal...............................................................44
Gambar 4.3 Hasil ukur alat vs hasil ukur osiloskop.............................................................45
Gambar 4.4 Susunan alat untuk pengujian sensor................................................................47
Gambar 4.5 Laju aliran vs frekuensi sensor.........................................................................48
Gambar 4.6 Skema pengujian komunikasi antara PC dengan alat ukur...............................50
Gambar 4.7 Tampilan program Terminal v1.9b saat menguji pesan yang berisi meminta
kirim data.......................................................................................................51
Gambar 4.8 Pengiriman data ke EEPROM..........................................................................52
Gambar 4.9 Hasil pembacaan EEPROM..............................................................................53
Gambar 4.10 Skema pengujian komunikasi antara 2 node..................................................54
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 11/88
DAFTAR TABEL
Tabel 2.1 Reset and vektor Interupsi [2]..............................................................................15
Tabel 3.1 Prioritas Tugas......................................................................................................26
Tabel 3.2 Waktu eksekusi terlama........................................................................................27
Tabel 3.3 Isi tiap byte pada pesan yang dikirim...................................................................34
Tabel 3.4 Keterangan byte command dan byte ID...............................................................34
Tabel 4.1 Hasil pengujian alat dengan input dari pembangkit sinyal...................................43
Tabel 4.2 Hasil perhitungan galat pengukuran frekuensi.....................................................45
Tabel 4.3 Hasil perhitungan akurasi frekuensi pada beberapa level konfiden.....................46
Tabel 4.4 Hasil pengujian alat dengan input dari sensor......................................................47
Tabel 4.5 Hasil perhitungan galat pengukuran frekuensi.....................................................48
Tabel 4.6 Hasil perhitungan akurasi frekuensi pada beberapa level konfiden.....................49
Tabel 4.7 Rentang pengukuran laju aliran air......................................................................50
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 12/88
DAFTAR PERSAMAAN
Persamaan 4.1...........................................................................................................44
Persamaan 4.2...........................................................................................................45
Persamaan 4.3...........................................................................................................48
Persamaan 4.4...........................................................................................................48
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 13/88
Bab I Pendahuluan 1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Sistem Pengukuran merupakan bagian yang penting dalam dunia industri. Melalui
pengukuran, dapat diperoleh berbagai masukan untuk menentukan informasi dan kendali
proses serta jaminan kualitas proses. Pengukuran dilakukan terhadap beragam parameter,
dan salah satu parameter yang banyak digunakan dalam dunia industri adalah fluida (air).
Kemampuan untuk mengendalikan proses dibutuhkan bagi para teknisi sebagai
modal untuk menghadapi dunia industri nyata. Untuk itu, disamping mempelajari secara
teoritis, dibutuhkan pula suatu alat eksperimental yang dapat memodelkan suatu sistem
kendali proses baik secara manual maupun otomatis.
Kit proses kendali eksperimenter ini dibuat untuk membantu mensimulasikan
kendali proses. Dengan menggunakan fluida sebagai parameter kendali, dapat diperoleh
berbagai informasi pengukuran seperti aliran, tekanan, ataupun level. Informasi yang
diperoleh tersebut digunakan sebagai masukan untuk kendali aliran debit air pada sistem.
Pembuatan kit eksperimenter ini merupakan pengembangan dari kit yang telah
tersedia sebelumnya di lab LSS. Perbaikan yang dilakukan antara lain pengurangan biaya
pembuatan dan peningkatan performa. Pengurangan biaya dilakukan dengan memperkecil
ukuran kit dan mengganti bahan pembuatan namun diusahakan tidak mengurangi kualitas
keseluruhan. Peningkatan performa dilakukan dengan menambahkan jenis sensor fluida,
menambahkan rangkaian kontroler, menjadikan output sensor real time, dan
memungkinkan kit untuk dioperasikan melalui komputer.
1.2 Tujuan
Tujuan umum dilakukan TA ini adalah untuk memenuhi syarat kelulusan mata
kuliah EL40Z2, Sekaligus sebagai syarat kelulusan Strata1 di Departemen Teknik Elektro
ITB. Adapun tujuan khusus yang hendak dicapai pada Tugas Akhir ini , antara lain:
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 14/88
Bab I Pendahuluan 2
a. Merancang dan mengimplementasikan transmitter pada flowmeter paddlewheel yang
cepat, tepat, dapat menampilkan hasil pengukuran pada LCD, dan mengirim hasil
pengukuran bila diminta dengan mengutamakan minimalisasi biaya pembuatan.
b. Menerapkan sistem pengaturan berupa kernel hybrid.
1.3 Batasan masalah
Pada laporan tugas akhir ini akan dibahas implementasi pengukuran kecepatan alir air
dalam pipa dengan menggunakan sensor jenis paddlewheel. Berikut beberapa batasan
masalah pada tugas akhir ini.
a. Menggunakan sensor flowmeter jenis paddlewheel dengan transduser saklar buluh
(reed switch).
b. Dalam Tugas Akhir sensor tidak menjadi perhatian utama. Penulis menitikberatkan
pada realisasi transmitter dengan kernel hybrid.
c. Parameter yang diukur adalah periode dari output sensor.
d. Arah aliran fluida (air) adalah maju saja, tidak ada arah aliran mundur .
e Menggunakan mikrokontroller AT90S2313.
f. Tidak memiliki rangkaian kalibrasi sensor, kalibrasi dilakukan melalui komunikasi
serial.
1.4 Sistematika Penulisan
Laporan Tugas Akhir ini terdiri dari lima bab, antara lain:
BAB I Pendahuluan. Bab ini berisi latar belakang dilaksanakannya Tugas Akhir,
tujuan yang hendak dicapai dari pelaksanaan Tugas Akhir, serta batasan masalah yang
digunakan.
BAB II Tinjauan Pustaka. Pada Bab ini dijelaskan konsep dasar real time system,
cara kerja sensor flowmeter jenis paddlewheel, sistem mikrokontroler, dan RS485.
BAB III Perancangan dan Implementasi. Bab ini berisi perancangan dan
implementasi perangkat lunak dan keras. Sedangkan pembahasan sensor dibatasi pada
pembahasan spesifikasi.
BAB IV Pengujian dan Analisis. Bab ini berisi pengujian sistem pengukuran dengan
masukan dari generator sinyal, pengujian output sensor, pencarian konstanta pada pada
perangkat lunak, serta pengujian komunikasi serial.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 15/88
Bab I Pendahuluan 3
BAB V Kesimpulan dan Saran. Bab ini berisi kesimpulan yang didapatkan penulis
setelah melakukan perancangan, implementasi, hingga pengujian. Kemudian diberikan
saran-saran sehingga dapat dibuat suatu sistem pengukuran laju aliran air yang lebih baik.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 16/88
Bab II Tinjauan Pustaka 4
BAB II
TINJAUAN PUSTAKA
Bab ini membahas teori dasar yang mendukung perancangan dan implementasi
sensor kincir ( paddlewheel), meliputi Real Time System, metoda pengukuran pada sensor
paddlewheel, mikrokontroler, komunikasi serial, dan display LCD dot matrix.
2.1 Metoda Pengukuran Pada Sensor Paddlewheel
Besaran yang diambil dari sensor paddlewheel adalah frekuensi sinyal akibat buka-tutup reed switch. Ada dua cara menghitung frekuensi
1. Dengan cara menghitung jumlah siklus dalam selang waktu tertentu. Misal rentang
waktu pengukuran = 1 detik Bila dalam rentang waktu tersebut ada 4 kali transisi naik
maka frekuensi sinyal = 2Hz.
Gambar 2.1 Pengukuran frekuensi berdasarkan banyaknya siklus
2. Dengan cara menghitung waktu untuk satu siklus. Bila 1 periode = t detik maka
frekuensi = (1/2t)Hz.
Gambar 2.2 Pengukuran frekuensi berdasarkan periode
Cara pertama rentan terhadap kesalahan perhitungan karena adanya ketidaktepatan
waktu mulai pengamatan, sehingga tidak akurat. Implementasi cara pertama ini juga tidak
cocok karena resource mikrokontroler akan terpakai selama penghitungan banyak siklus
input. Hal tersebut terjadi karena selama menghitung banyak siklus, mikrokontroller
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 17/88
Bab II Tinjauan Pustaka 5
sedang menjalankan rutin interupsi sehingga tidak dapat melakukan hal lain seperti
pengecekan komunikasi, dan lain-lain.
Cara kedua lebih baik karena cpu mulai menghitung pada saat ada transisi naik
atau turun pada gelombang yang diamati. Selebihnya CPU akan bekerja pada background (
berprioritas rendah dan sewaktu-waktu dapat diinterupsi/biasanya superloop).
Satuan yang hendak dihasilkan oleh sistem pengukuran ini adalah Volume/satuan
waktu. Asumsikan kecepatan sudut kincir flowmeter berbanding lurus dengan laju aliran
air di dalam pipa maka laju aliran air dalam pipa u = k.f (k adalah konstanta). Nilai k dapat
dicari mengalirkan air dengan laju konstan pada pipa.
2.2 Sistem Tertanam ( Embedded System )
Embedded System mempunyai setidaknya sebuah pemroses yang dapat diprogram
(biasanya dalam bentuk chip mikrokontroller, mikroprosesor, atau Digital Signal
Processor) yang oleh pengguna tidak dikenali sebagai computer [14]. Embedded System
biasanya tersembunyi di dalam alat-alat elektronik. Embedded System umumnya tidak
berhubungan dengan pengguna seperti pada PC melalui mouse, keyboard dan monitor.
Embedded System berhubungan dengan dunia luar melalui antarmuka yang tidak biasa
seperti sensor,aktuator dan lain-lain.
2.3 Sistem Waktu Nyata ( Real Time System)
Real Time System adalah sistem yang dapat merespon kejadian di dunia nyata
(melalui sensor) secara langsung [14]. Sebagai contoh sistem autopilot pada pesawat
terbang harus merespon secara langsung untuk membetulkan deviasi arah terbang.
Ketepatan dan kepastian waktu proses perhitungan menjadi hal utama dalam sistem real
time [14].
2.3.1 Real Time Kernel
Real Time Kernel adalah inti sistem operasi (Operating System/OS) yang bekerja
pada Real Time System. Kernel adalah lapis abstraksi (abstraction layer ) antara aplikasi
perangkat lunak dengan perangkat keras [9]. Istilah mengenai abstraction layer ini sering
tidak konsisten, banyak orang menggunakan istilah Real Time Operating System (RTOS),
ada juga yang menggunakan istilah Real Time Kernel. Ada yang menganggap keduanya
sama, ada juga yang menganggap kernel adalah bagian dari OS yang melakukan layanan
(service) paling dasar saja. Untuk seterusnya penulis memilih istilah Real Time Kernel.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 18/88
Bab II Tinjauan Pustaka 6
Gambar 2.3 Real Time Kernel sebagai abstraction layer antara aplikasi perangkat lunak
dan perangkat keras [9].
Dalam menyediakan abstraction layer ini Real Time Kernel melakukan lima
kategori utama dari service dasar aplikasi, seperti pada Gambar 2.4.
Gambar 2.4 Layanan yang disediakan Real Time Kernel [9]
Kategori paling mendasar pada service kernel adalah manajemen tugas (task ).
Bagian ini pemrogram mendesain program sebagai blok-blok yang terpisah. Masing-
masing menangani suatu topik tertentu, tujuan tertentu, dan barangkali batas waktu real-
time itu sendiri. Masing-masing blok yang terpisah disebut task . Service dalam kategori ini
meliputi kemampuan menjalankan task dan memberi prioritas kepada masing-masing task .
Service utama Real Time Kernel adalah penjadwalan task pada system embedded yang
sedang bekerja. Penjadwal task mengendalikan eksekusi task aplikasi, juga membuatnya
berjalan dengan tepat waktu
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 19/88
Bab II Tinjauan Pustaka 7
Kategori kedua pada service kernel, ada di puncak Gambar 2.4, Komunikasi dan
sinkronisasi antar task . Service ini memungkinkan task memberikan informasi satu sama
lain, tanpa bahaya informasi tersebut rusak. Service kernel memungkinkan kernel untuk
mengkoordinir task-task , sehingga task-task tersebut dapat secara produktif bekerja sama
dengan satu sama lain. Tanpa bantuan dari service Real Time Kernel, task bisa saja
mengirimkan informasi yang salah.
Banyak system embedded mempunyai kebutuhan pewaktuan (timing) yang ketat,
sehingga banyak Real Time Kernel menyediakan service pewaktu (timer ), seperti task
delay dan time-out . Ini ditunjukkan pada sisi kanan sisi Gambar 2.4.
2.3.2 Perbedaan Real Time OS dengan non Real Time OS
Banyak sistem operasi non-real-time juga menyediakan layanan (service) kernel
serupa. Perbedaan mendasar antara general purpose kernel dan real-time kernel adalah
kebutuhan akan kepastian pewaktuan (deterministic timing behavior ) dalam kernel real-
time. Secara formal, deterministic timing berarti service sistem operasi itu hanya
mengkonsumsi waktu sebanyak yang diketahui dan diharapkan. Dalam teori, service ini
bisa dinyatakan seperti rumusan matematis. Rumusan ini harus tidak meliputi komponen
pewaktuan acak. Komponen acak dalam selang waktu service menyebabkan delay acak pada program aplikasi dan menyebabkan aplikasi melanggar batas waktu real time yang
mana tidak boleh terjadi pada sistem real-time.
Gambar 2.5 Perbandingan pewaktuan pemindahan tugas [9]
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 20/88
Bab II Tinjauan Pustaka 8
Sistem operasi non-real-time seringkali bersifat tak dapat dipastikan (non-
deterministic). Service sistem operasi serbaguna dapat membangkitkan delay acak ke
dalam aplikasi program dan menyebabkan respon lambat yang tak diinginkan. Jika
pengembang suatu sistem operasi non-real-time ditanya apa rumusan aljabar yang
menggambarkan perilaku pewaktuan salah satu dari servicenya ( seperti pengiriman suatu
pesan dari tugas ke tugas), mereka tidak akan memberikan suatu rumusan aljabar. Sifat
deterministik bukan hal penting dalam merancang general-computing operating system [9].
Sebagian besar service kernel real-time konstan tanpa dipengaruhi beban CPU.
Dengan kata lain, rumusan aljabar sederhana: T(Message_Send) = tetap [9], tanpa
tergantung dengan panjang pesan yang dikirim, atau lain faktor seperti banyaknya task dan
antrian pesan yang ditangani oleh Real Time Kernel.
2.3.3 Jenis Real Time System:
Event Triggered System
Event Triggered System merupakan suatu sistem yang akan mengeksekusi program
jika ada permintaan berupa kejadian (event )[14]. Pada event triggered system dikenal
adanya urutan prioritas. Jika suatu task sedang dijalankan dan ada interupsi dengan
prioritas lebih tinggi maka prosesor akan langsung mengeksekusi task interupsi dan
menunda task yang sedang berjalan. Event Triggered System biasa dikenal dengan
Preemptive System.
Masing-masing task dalam suatu aplikasi software harus diberi prioritas, prioritas
yang lebih tinggi yang berarti membutuhkan respon yang lebih cepat. Kemampuan respon
yang sangat cepat dimungkinkan oleh penjadwal (scheduler ) preemptive. Penjadwal
preemptive dapat menghentikan suatu task kapan saja dan mengeksekusi task lain yang
prioritasnya lebih tinggi.
Ketentuan dasar pada penjadwalan preemptive adalah pada setiap saat, task yang
mempunyai Prioritas tertinggi selalu siap dijalankan. Dengan kata lain, jika baik task
berprioritas tinggi maupun berprioritas lebih tinggi siap dijalankan, scheduler akan
membuat task berprioritas lebih tinggi dieksekusi lebih dulu. Task dengan prioritas rendah
hanya dapat berjalan setelah task berprioritas tinggi telah selesai dieksekusi. Pemilihan
prioritas task merupakan hal penting pada penjadwalan preemptive, karena bila task
berprioritas tinggi sedang bekerja dan muncul event pemicu task berprioritas rendah maka
task berprioritas rendah tidak tertunda terlalu lama atau bahkan tidak dilaksanakan sama
sekali.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 21/88
Bab II Tinjauan Pustaka 9
Gambar 2.6 Diagram waktu Event-Triggered System [12]
Time Triggered System
Pada Time triggered system prosesor akan mengeksekusi task dalam rentang waktu
tertentu[14]. Tidak ada prioritas (service interupsi yang dipakai hanya service interupsi
pewaktu) dalam system ini. Time triggered system biasa dikenal dengan nama cooperative
system.
Ada perbedaan mendasar antara time triggered system dengan superloop. Pada
superloop system dijalankan saat catu daya dinyalakan secara kontinu dan berhenti saat
catu daya dipadamkan. Pada superloop semua task dijalankan secara berurutan, tanpa
diketahui berapa lama eksekusi suatu program (biasanya waktu eksekusi program tidak
selalu sama/nondeterministic). Sedangkan pada time triggered system, terdapat kernel yang
mengatur pemanggilan task-task secara periodik dan pengaturan lama eksekusi serta
komunikasi antar task .
Gambar 2.7 Diagram waktu Time-Triggered System [12]
Sistem hibrida ( Hybrid System)
Hybrid system merupakan gabungan dari preemptive system dan cooperative
system [12]. Pada hybrid system terdapat minimal 1 task preemptive dan 1 task
cooperative. Task preemptive biasa digunakan untuk menangani error atau input atau
apapun yang membutuhkan perhatian segera.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 22/88
Bab II Tinjauan Pustaka 10
2.4 Sensor Paddlewheel
Sensor kincir ( paddlewheel) terdapat pada di dalam pipa yang dialiri air.
paddlewheel ini berputar bila air yang melewatinya mengalir. Pada paddlewheel tersebut
ditanam sebuah magnet permanent pada posisi tertentu seperti pada gambar di bawah ini:
Gambar 2.8 Gambar penampang samping sensor paddlewheel
Pada rumah (casing) sensor ditanam sebuah saklar buluh (reed switch). Reed
switch ini akan menutup (short circuit ) bila terkena medan magnet melebihi ambang,
contoh bila didekati oleh magnet permanen. Bila saat paddlewheel
berputar dan posisimagnet dekat dengan reed switch maka akan dihasilkan output LOW, dan jika posisi
magnet jauh dari reed switch output akan di pull-up menjadi HIGH.
Gambar 2.9 Pull-up resistor
Bila air pada pipa mengalir akan mengakibatkan paddlewheel berputar. Kecepatan
putar paddlewheel tergantung pada kecepatan air. Semakin cepat air mengalir semakin
cepat paddlewheel berputar dan semakin tinggi frekuensi sinyal output sensor, begitu juga
sebaliknya. Bentuk sinyal yang dihasilkan:
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 23/88
Bab II Tinjauan Pustaka 11
Gambar 2.10 Sinyal keluaran sensor paddlewheel
Keunggulan jenis paddlewheel ini adalah sensor dapat digunakan untuk
bermacam–macam jenis fluida/cairan . Tidak seperti sensor jenis lain yang dapat saja
bergantung pada sifat konduktivitas cairan.
Kelemahan sensor paddlewheel adalah mengurangi laju air di dalam pipa.
paddlewheel mempunyai massa tertentu sehingga mempunyai kelembaman. Semakin besar
massa kincir semakin besar pula kelembamannya sehingga perlu gaya yang lebih besar
untuk memutarnya, akibatnya laju air menjadi lebih lambat. Selain karena massa kincir,
gesekan antara poros kincir dengan sumbunya juga dapat memperlambat aliran cairan
dalam pipa.
Kompensasi kelemahan sensor paddlewheel dengan software dan hardware.
Dengan software kesalahan pengukuran akibat massa dan gesekan kincir dapat dikurangi
meskipun hanya melalui cara pendekatan. Sedangkan dengan cara hardware yaitu dengan
cara menambah jumlah magnet karena resolusi pengukuran tergantung pada banyaknya
magnet yang terpasang pada kincir. Tetapi banyak magnet akan membuat massa kincir
membesar yang mengakibatkan berkurangnya laju air dalam pipa. Oleh karena itu untuk
membuat sensor yang akurat dan beresolusi tinggi relatif sulit
2.5 MikrokontrolerAVR AT90S2313
Gambar 2.11 Konfigurasi pin AT90S2313 [2]
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 24/88
Bab II Tinjauan Pustaka 12
AT90S2313 merupakan mikrokontroler CMOS 8-bit berarsitektur RISC
( Reduced Intruction Set Computer ). Dengan pelaksanaan satu instruksi dalam satu siklus
clock, mikrokontroller AT90S2313 mendekati 1 MIPS (Million Instruction Per Second)
pada 1 MHZ, yang memungkinkan pengguna mengoptimalkan perbandingan konsumsi
energi terhadap kecepatan proses. Deskripsi singkat Mikrokontroler AT90S2313:
• AVR – Arsitektur RISC berunjuk kerja tinggi dan berkonsumsi daya rendah.
– 118 Instruksi – Hampir semua instruksi hanya perlu satu clock
– Register Serbaguna832×
– Mendekati 10 MIPS pada 10 MHz
• Data and Non-volatile Program Memory
– 2K Byte In-System Programmable Flash, ketahanan 1,000 kali baca/tulis
– 128 Byte SRAM
– 128 Byte In-System Programmable EEPROM, ketahanan: 100,000 kali baca/tulis
– Programming Lock untuk keamanan data Flash memory dan EEPROM
• Peripheral yang tersedia
– One 8-bit Timer/Counter dengan Prescaler terpisah
– One 16-bit Timer/Counter dengan Prescaler terpisah, Compare, Capture Mode dan 8-,
9-, atau 10-bit PWM– On-chip Analog Comparator
– Programmable Watchdog Timer dengan On-chip Oscillator
– SPI Serial Interface untuk In-System Programming
– Full Duplex UART
• Fasilitas khusus pada mikrokontroler ini:
– Low-power Idle dan mode power-down
– Sumber interupsi eksternal dan internal
• Spesifikasi
– Low-power, High-speed CMOS Process Technology
– Fully Static Operation
• Konsumsi daya pada 4 MHz, 3V, 25°C
– Aktif: 2.8 mA
– Mode Idle: 0.8 mA
– Mode Power-down: <1 µA
• Jumlah pin Input/Output dan kemasan IC
– 15 Programmable I/O Lines
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 25/88
Bab II Tinjauan Pustaka 13
– 20-pin PDIP and SOIC
• Rekomendasi tegangan kerja
– 2.7 s.d 6.0V (AT90S2313-4)
– 4.0 s.d 6.0V (AT90S2313-10)
• Rekomendasi frekuensi kerja
– 0 s.d 4 MHz (AT90S2313-4)
– 0 s.d 10 MHz (AT90S2313-10)
Mikrokontroller AVR mengkombinasikan set instruksi dengan 32 register
serbaguna (general purpose working registers). Semua 32 register terhubung secara
langsung ke Logic Unit (ALU), memungkinkan dua register diakses dalam satu eksekusi
instruksi yang hanya membutuhkan satu siklus clock. Arsitektur yang dihasilkan lebih
efisien mencapai 10 kali lebih cepat daripada mikrokontroler CISC konvensional.
Gambar 2.12. Diagram Blok AT90S2313 [2]
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 26/88
Bab II Tinjauan Pustaka 14
ROM jenis On-chip In-System Programmable Flash memungkinkan penulisan
ulang program melalui suatu SPI serial interface atau oleh suatu programmer
konvensional. Mikrokontroller AVR AT90S2313 didukung oleh development tools
mencakup: C compiler, asembler makro, program debugger/simulators, In-Circuit
Emulators dan kit evaluasi.
Memori yang terdapat pada AT90S2313 adalah 2KByte Programmable Flash
memory, 128 Byte EEPROM, dan 128 Byte SRAM. Flash memory digunakan untuk
tempat penyimpanan program dengan kemampuan dapat ditulis ulang sampai 1000kali.
EEPROM biasa digunakan untuk menyimpan data sebelum sistem dimatikan, isi EEPROM
tidak berubah ketika sistem dinyalakan kembali. Sedangkan SRAM digunakan untuk
menyimpan data sementara, isi SRAM akan hilang saat sistem dimatikan.
Gambar 2.13. Peta Memori AT90S2313 [2]
Reset and Penanganan Interupsi ( Interrupt Handling)
AT90S2313 menyediakan 10 sumber interupsi. Interupsi-interupsi tersebut
mempunyai program vector terpisah di flash memory. Untuk mengaktifkan interupsi setiap
bit enable dan bit I pada status register harus diset high. Alamat yang paling rendah di
dalam memori program secara otomatis berfungsi sebagai Reset dan vektor interupsi
( Interrupt Vectors). Daftar lengkap vector interupsi diperlihatkan oleh tabel 2. Daftar juga
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 27/88
Bab II Tinjauan Pustaka 15
menentukan tingkat prioritas setiap interupsi. Semakin rendah alamat , semakin tinggi
tingkat prioritasnya. Reset mempunyai prioritas tertinggi, diikuti oleh INT0 (external
interrupt request 0).
Tabel 2.1 Reset and vektor Interupsi [2]
2.6 Komunikasi Serial (Universal Asynchronous Receiver/Transmitter)
Sebuah device Universal Asynchronous Receiver/Transmitter (UART) mengubah
data dari format 8 bit menjadi 1 bit per-satuan waktu pada port serial seperti RS 232 [12].
Tiap karakter dikirim dalam sebuah paket yang terdiri dari start bit, data 8 bit, dan stop bit.
Komunikasi serial dengan protokol UART bersifat asinkron sehingga kecepatan
pengiriman data harus tetap sehingga device penerima dapat membaca data yang masuk
dengan benar. Kecepatan pengiriman data pada komunikasi serial UART dikenal dengan
nama baud rate. Pada AVR setiap byte data yang dikirim secara serial secara otomatis
ditambahi bit start di awal dan bit stop di akhir message. Dengan menggunakan UART
mikrokontroler dapat berkomunikasi dengan PC (dengan driver RS 232 yang berfungsi
mengubah level tegangan ).
Pada sistem kendali ini terdapat lebih dari dua alat (device) maka tidak cukup 1
karakter pada setiap penerimaan/pengiriman data. Alat yang dapat menangani lebih dari 2
node dapat digunakan RS 485. Setiap pengiriman data, node mengirim beberapa karakter
yang berisi alamat unik node, tujuan, data dan sebagainya tergantung keperluan.
MAX485 adalah transceivers untuk komunikasi.RS-485 dan RS-422. Transceiver
MAX485 dirancang untuk komunikasi data dua arah (half duplex dan full duplex) pada
jalur transmisi busmultipoint . Aplikasi umum pada jaringan (network circuits) MAX485
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 28/88
Bab II Tinjauan Pustaka 16
ditunjukkan pada Gambar 2.13 dan 2.14. MAX485 dapat juga digunakan sebagai line
repeaters, dengan panjang kabel lebih dari 4000 kaki. Untuk memperkecil pemantulan,
pada kedua sisi line sebaiknya diberi resistansi sebesar impedansi karakteristiknya
(umumnya 120 ohm), dan panjang line utama sebaiknya sependek mungkin. MAX483 dan
MAX487–MAX489 lebih baik dalam mentoleransi efek pemantulan.
Gambar 2.14 RS 485 Half Duplex Network [4]
Gambar 2.15. RS 485 Full Duplex Network [4]
2.7 Display LCD PC1601A [13]
PC1601 adalah modul display LCD dot matrix dengan konfigurasi 16 karakter
dalam satu baris. Setip karakter dibentuk oleh 8 baris pixel dan 5 kolom pixel (baris
terakhir pixel adalah kursor). Gambar 2.16 menunjukkan hubungan antara layer LCD
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 29/88
Bab II Tinjauan Pustaka 17
dengan dengan HD44780 yang merupakan mikrokontroler pengendali LCD. HD44780
buatan Hitachi ini sudah tertanam pada modul PC1601A ini.
Gambar 2.16 Hubungan HD44780 dengan layer LCD [13]
Modul LCD PC1601A memiliki beberapa jenis memori yang digunakan untuk
menyimpan atau memproses data-data yang akan ditampilkan pada layer LCD. Setiap jenis
memori mempunyai fungsi tersendiri.
DDRAM adalah memori tempat karakter yang ditampilkan berada. Contohnya
karakter ‘A’ atai 41h yang ditulis pada alamat 00 akan tampil pada baris pertama dan
kolom pertama dari LCD. Apabila karakter tersebut ditulis pada alamat 40h, karakter
tersebut akan tampil pada baris kanan dari LCD
CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan bentuk
karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori ini akan hilang saat
power supply dimatikan, sehingga pola karakter akan hilang.
CGROM adalah memori untuk menggambarkan pola sebuah karater dan pola
tersebut sudah ditentukan secara permanent dari HD44780 sehingga pengguna tidak dapat
mengubahnya. Oleh karena ROM bersifat permanen, pola karakter tersebut tidak akanhilang walau catu daya dimatikan.
Gambar 2.16 menunjukkan pola-pola karakter yang tersimpan dalam lokasi-lokasi
tertentu dalam CGROM. Saat HD44780akan menampilkan data 41h yang tersimpan pada
DDRAM, HD44780 akan mengambil data di alamat 41h yang ada pada CGROM, yaitu
pola karakter ’A’. Alamat karakter pada CGROM serupa dengan kode ASCII.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 30/88
Bab II Tinjauan Pustaka 18
Gambar 2.17 Kode ASCII pada LCD HD44780 [3]
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 31/88
Bab III Perancangan dan Implementasi 19
BAB III
PERANCANGAN DAN IMPLEMENTASI
Bab ini membahas perancangan bagian elektronik (transmitter) pada sistem
pengukuran debit air. Sistem pengukuran ini terdiri dari bagian mekanis dan elektronik.
Bagian mekanis berupa sensor paddlewheel, sedangkan transmitter adalah rangkaian
elektronik yang berfungsi mengolah data dari bagian mekanis. Transmitter terdiri dari
perangkat keras (hardware) dan perangkat lunak (software).
Gambar 3.1 Diagram blok sistem pengukuran laju aliran air
3.1 Deskripsi Sistem Kendali Proses
Gambar 3.2 Diagram blok sistem
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 32/88
Bab III Perancangan dan Implementasi 20
Kit eksperimental ini terdiri atas empat bagian utama, yaitu sensor, kontroller, BUS,
serta SCADA. Masukan berupa fluida berasal dari reservoir yang diatur oleh pompa
dengan switch terhubung pada kontroller. Dua jenis sensor yang digunakan adalah sensor
laju aliran air dan sensor level air. Keseluruhan hasil pengukuran menjadi masukan bagi
kontroller. Kontroller merespon masukan dengan mengubah laju air dengan menggunakan
control valve. Namun demikian, terdapat pula katup air yang dikendalikan secara manual
untuk simulasi kendali manual. BUS menjembatani hubungan antara data output dari
sensor dengan kontroller, juga hubungan antara kontroller dengan SCADA. PC digunakan
untuk memudahkan monitoring dan pengontrolan sistem secara keseluruhan. PC juga dapat
menggantikan fungsi kontroller.
3.2 Deskripsi Sensor
Biaya pembuatan sensor diusahakan seminimal mungkin. Rumah sensor (casing)
dibuat dari PVC sedangkan paddlewheelnya dibuat dari resin. Casing dari bahan PVC
lebih ringan daripada yang dibuat dari logam. Awalnya dibuat master untuk paddlewheel
dari bahan PVC, kemudian paddlewheel dicetak dengan bahan resin, meskipun lebih berat
daripada PVC namun dapat diperbanyak dengan murah dan cepat.
Sensor bekerja dengan baik pada kondisi tertentu. Posisi pemasangan sensor yang
baik adalah mendatar (horizontal). Pada posisi ini air yang masuk pada inlet sensor dapat
lebih baik menggerakkan paddlewheel yang terdapat di dalam sensor, bila posisi sensor
vertikal maka air yang masuk ke inlet mengenai bagian depan paddlewheel sehingga
paddlewheel hanya berputar sedikit meskipun laju aliran air yang masuk tinggi, bahkan
paddlewheel dapat tidak berputar sama sekali. Lihat gambar di bawah ini, saat aliran “A”
mengenai paddlewheel maka akan mengimbangi aliran “B” sehingga kecepatan sudut
paddlewheel berkurang. Hal tersebut harus dihindari karena membuat kecepatan sudut
paddlewheel tidak berbanding lurus dengan laju aliran air.
Gambar 3.3 Sensor pada posisi vertikal
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 33/88
Bab III Perancangan dan Implementasi 21
Sifat saklar buluh (reed switch) penting diamati karena reed switch adalah
pengubah dari gerakan berputar menjadi gelombang kotak yang akan dijadikan input
mikrokontroler. Reed switch adalah saklar yang “closed” bila terkena flux medan magnet
melebihi kerapatan tertentu. Bila jumlah flux magnet yang mengenai reed switch di bawah
flux ambang maka switch ini akan “open”. Kemudian switch tersebut dihubungkan dengan
pin I/O mikrokotroler, beruntung AT90S23213 sudah dilengkapi dengan internal pull-up
resistor yang dapat digunakan untuk mengubah gerakan buka-tutup reed switch menjadi
gelombang kotak.
Gambar 3.4 Penggunaan internal pull-up resistor
Bila switch open maka keadaan pin input “high”, dan bila switch closed maka
keadaan pin input “low”. Gerakan buka-tutup reed switch tidak sempurna dan memang
tidak ada switch yang dapat berpindah state tanpa mengalami pemantulan sesaat
(bouncing). Pada saat terjadi bouncing keadaan saklar berubah-ubah antara buka dan tutup
dengan cepat dan berkali-kali. Gambar di bawah ini menunjukkan perbedaan sinyal kotak
ideal dengan sinyal kotak sebenarnya yang dihasilkan sensor.
Gambar 3.5 Perbandingan sinyal ideal dengan sebenarnya
Pada pengukuran laju aliran air ini adanya bouncing sangat mengganggu karena
membuat pengukuran panjang gelombang menjadi salah. Pengukuran panjang gelombang
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 34/88
Bab III Perancangan dan Implementasi 22
dimulai saat transisi naik dan diakhiri transisi naik berikutnya. Adanya bouncing akan
membuat mikrokontroler salah mengartikan sinyal dengan menganggap transisi naik
bouncing sebagai transisi naik sebenarnya, akibatnya hasil perhitungan menunjukkan
frekuensi tinggi. Oleh karena itu diperlukan suatu proses penghilangan pemantulan
(debouncing) untuk menghilangkan gangguan tersebut. Proses penghilangan pemantulan
dipilih secara software.
3.3 Perancangan dan Implementasi Transmitter
Bagian elektronik terdiri dari dua bagian yaitu implementasi hardware dan
perancangan software. Penulis lebih condong memilih “implementasi hardware” daripada
“perancangan hardware” karena hardware transmitter ini relatif sederhana dan banyak
diambil utuh dari referensi yang sudah ada. Sedangkan untuk software penulis lebih
condong memilih “perancangan software” karena software TA ini “dibuat dari nol”
meskipun ada beberapa rutin yang diambil dari referensi.
Gambar 3.6 Diagram blok transmitter
3.3.1 Implementasi Perangkat Keras
Implementasi hardware mengacu pada batasan masalah pada BAB I, yaitu
menekankan pada minimalisasi biaya pembuatan. Pendekatan yang penulis gunakan adalah
dengan menggunakan komponen sesedikit mungkin, sedangkan pada pembuatan PCB
dengan menggunakan papan 1 lapis (single layer).
Transduser dan Pengkondisi Sinyal
Transduser adalah sebuah saklar buluh (reed switch). Pengkondisi sinyal berupa
pull-up resistor internal yang sudah tersedia pada mikrokontroler. Dengan menggunakan
pull-up resistor internal maka tidak diperlukan rangkaian tambahan.
Pengkondisi sinyal yang baik dapat meminimalisir gangguan pada jalur koneksi
dengan sensor. Reed switch akan menghasilkan bouncing yang akan mengganggu
perhitungan data sehingga harus ada mekanisme debouncing pada pengkondisi sinyal,
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 35/88
Bab III Perancangan dan Implementasi 23
namun karena belum menemukan cara yang tepat dan akan menambah komponen maka
yang dipakai adalah debouncing software.
Mikrokontroler
Alasan menggunakan Atmel AVR AT90S2313 antara lain karena mikrokontroler
ini dapat mengeksekusi hampir semua perintah/instruksi dalam satu siklus clock Hal ini
penting karena alat pemroses data real time harus dapat mengerjakan perhitungan dalam
waktu yang singkat (dibandingkan selang waktu perubahan sinyal).
AT90S2313 berharga murah dan mempunyai fasilitas terbatas, meskipun demikian
fasilitas cocok dengan kebutuhan seperti eksternal interrupt request , internal baud rate
generator , dua buah timer, mempunyai 20 pin sehingga secara fisik berukuran kecil.
In-System Programming (ISP) AT90S2313 dapat dengan mudah dibuat dan tidak
butuh banyak komponen. Penulis menggunakan ISP Funcard (lihat gambar 3.6) karena
rangkaiannya sederhana dan tidak perlu banyak komponen tambahan.
Gambar 3.7 ISP Fun Card
Display LCD Dot Matrix
Display LCD dipilih karena tidak membebani CPU dengan proses multiplexing
dan lain-lain seperti yang dibutuhkan display seven segment . Semua hal mengenai tampilan
karakter sudah dikerjakan oleh prosesor internal pada modul LCD. Terdapat berbagai
macam merek display LCD di pasaran, namun semua bekerja dengan cara yang sama.
Ada dua macam cara pengiriman atau penerimaan data ke LCD. Pertama dengan
antarmuka 8 bit (8 bit interface), artinya data dikirim atau diterima sekaligus 8 bit ke LCD.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 36/88
Bab III Perancangan dan Implementasi 24
Untuk cara ini perlu 8+3 pin I/O yaitu 11 pin. Ada 3 pin tambahan yaitu untuk bit RS, RW,
dan EN. Cara kedua dengan antarmuka 4 bit (4 bit interface), pada cara ini data
dikirim/diterima 2 kali masing-masing 4 bit. Untuk cara ini perlu 4+3 pin I/O yaitu 7 pin.
Sehingga cara 4 bit interface lebih hemat pemakaian port IO meskipun proses kirim data
dan perintah dua kali lebih lama daripada 8 bit interface. Pada TA ini digunkan
mikrokontroller AT90S2313 yang hanya mempunyai 15 pin IO maka cara 4 bit interface
lebih cocok digunakan.
Gambar 3.8 Antarmuka mikrokontroler dan LCD
Komunikasi Serial RS 485Sistem kendali ini menggunakan beberapa sensor yang terhubung dengan
kontroler, supaya sistem tetap sederhana perlu alat yang dapat menampung banyak
terminal sekaligus. Salah satu alat yang mampu melakukannya adalah RS485. Tidak
seperti RS232 yang hanya dapat menghubungkan dua terminal saja Pada RS485 dapat
ditampung sampai dengan 32 terminal dengan baud rate mencapai 115200bps.
Gambar 3.9 Antarmuka mikrokontroler dan MAX485
Pin PB3 dpilih berfungsi menentukan mode komunikasi. Bila PB3 berlogika ‘1’
maka MAX485 berfungsi sebagai driver (mode kirim data), bila PB3 berlogika ‘0’
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 37/88
Bab III Perancangan dan Implementasi 25
MAX485 berfungsi sebagai receiver. Pada setiap saat hanya ada satu alat yang berfungsi
sebagai driver dan alat lainnya harus berfungsi sebagai receiver, bila lebih dari satu
berfungsi sebagai driver maka komunikasi akan gagal.
3.3.2 Perancangan Perangkat Lunak
Penggunaan real time kernel penting dalam pengukuran ini karena data yang
dihasilkan akan dipakai kembali oleh bagian lain. Sistem ini terdiri dari macam-macam alat
seperti pengukur laju aliran air, pengukur tekanan air dan pengukur level air, supaya
system keseluruhan real time maka pengukur laju aliran air juga harus real time. Sehingga
data yang dihasilkan harus terjamin akurasi dan kecepatannya.
Ada beberapa tugas (task ) yang dikerjakan oleh mikrokontroler pada TA ini.
Pertama: mengukur lama antara 2 transisi naik pada sinyal input, maka akan didapat waktu
setengah panjang gelombang. Kedua: membatasi panjang gelombang agar bisa mendeteksi
laju aliran nol. Bila setelah waktu tertentu tidak terdeteksi ada perubahan state maka
frekuensi paddlewheel dianggap nol. Setelah panjang gelombang diukur maka
mikrokontroler mengolahnya menjadi dalam satuan laju aliran air yaitu liter/detik. Ketiga:
berkomunikasi dengan alat lain dengan komunikasi serial (UART).
Ketiga task tersebut dieksekusi bila ada pemicu interupsi yang dapat terjadi kapan saja
sehingga task-task tersebut tergolong task preemptive. Task-task preemptive tersebut dapat
diatur sehingga bila terjadi dua task sekaligus maka task berprioritas lebih tinggi dapat
menunda task berprioritas rendah, artinya task berprioritas tinggi memesan lebih dulu
( preempt ) task berprioritas lebih rendah.
Mikrokontroler harus menampilkan data hasil perhitungan pada display LCD.
Untuk task ini mikrokontroler mengupdate tampilan setiap selang waktu tertentu, sehingga
task display tergolong task time triggered . Lama selang waktu ini diusahakan ergonomis.
Kernel mengatur task baik secara preemptive maupun cooperative maka kernel initergolong kernel hybrid [10]
Jadi terdapat 4 task yang harus dilakukan oleh mikrokontroler. Karena pengerjaan
task secara preemptive dan cooperative maka kernel yang mengaturnya disebut kernel
hybrid. Berikut daftar task dan prioritasnya. Alasan pemilihan prioritas task terdapat pada
sub Bab 3.2.3 .
Sumber Interupsi Prioritas Tugas (Task)
External interrupt Request 0 1 Mengukur periodeTimer-1 compare match 2 Time-out pengukuran periode
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 38/88
Bab III Perancangan dan Implementasi 26
Receive Complete Interrupt 3 Komunikasi serial
Timer-0 overflow interrupt 4 Update Display(time triggered )
Tabel 3.1 Prioritas Tugas
Mikrokontroler AVR AT90S2313 mempunyai 10 sumber interupsi. Secara default
setiap permintaan interupsi akan dilayani kapan saja, asalkan bit sei berlogika ‘1’ dan flag
interupsi yang bersangkutan berlogika ‘1’. Jadi untuk membuat suatu task berprioritas
tertinggi disable-kan semua interupsi lain (sehingga flag yang bersangkutan selalu
berlogika nol). Sedangkan untuk membuat suatu task berprioritas terendah enable-kan
semua interupsi lain dan enable-kan global interrupt (sehingga flag yang bersangkutan
dapat berlogika ‘1’ jika ada kejadian yang memincunya).
Pemilihan Prioritas Task
Task interupsi eksternal diberi prioritas tertinggi karena hal utama yang diukur
adalah periode dari sensor. Task ini tidak boleh tertunda oleh task lain karena bila tertunda
akan menganggu proses perhintungan di dalamnya. Berikut adalah tabel yang
menunjukkan waktu terlama (kemungkinan terburuk) untuk mengeksekusi task .
.
Task Waktu eksekusi terlama
Pengukuran periode ± 2,1 ms
Komunikasi serial ± 3 ms
Timeout pengukuran periode ± 1 μs
Update display LCD ±1 ms
Tabel 3.2 Waktu eksekusi terlama
Task komunikasi serial adalah task yang sensitif terhadap interupsi dari task lain.
Pada komunikasi ini penulis menggunakan protokol yang terdiri dari deretan byte. Bila
task sedang menerima byte dari luar dan terinterupsi maka task akan tertunda, penundaan
ini menyebabkan deretan data yang masuk tidak lengkap maka deretan data dianggap salah
oleh rutin interupsi dan komunikasi gagal, oleh karena itu task ini diberi prioritas nomor
dua.
Task timeout pengukuran periode dipicu oleh interupsi timer-1 compare. Bila
timer-1 sudah menghitung selama 1 detik maka laju aliran dianggap nol. Bila task ini
tertunda selama 3ms (waktu task terlama) maka lama penundaan itu tidak berarti bila
dibanding dengan lama 1 detik. Karena task ini tidak sepenting komunikasi serial maka
task ini diberi prioritas nomor tiga.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 39/88
Bab III Perancangan dan Implementasi 27
Task update display LCD dieksekusi berdasarkan interupsi timer-0. Task update
LCD ini dieksekusi bila interupsi timer-0 sudah terjadi 10 kali dan pada saat itu ada flag
perubahan hasil perhitungan. Pelaksaan task ini tidak menuntut adanya pewaktuan yang
ketat, keterlambatan eksekusi selama beberapa puluh milidetik karena interupsi timer-0
tertunda tidak menjadi masalah bagi penglihatan manusia. Berdasarkan hal di atas interupsi
timer-0 diberi prioritas nomor empat/terendah.
3.3.3 Implementasi Perangkat Lunak
Pada saat sistem dinyalakan kernel menginisialisasi port direction, timer interrupt,
UART baud rate, dan modul LCD. Kemudian setiap ‘ x ’ detik kernel mengeksekusi task
update LCD. Task yang event triggered dalam keadaan terhalang (blocked ), task-task
tersebut baru dieksekusi bila ada interupsi. Di bawah ini adalah flowchart inisialisasi
program.
Gambar 3.10 Flowchart Inisialisasi program
3.2.3.1 Task Pengukuran Periode
Pengukuran frekuensi bisa berdasarkan lamanya low level yang dihasilkan sensor
paddlewheel. Low level terjadi saat magnet pada paddlewheel berada segaris dengan reed
switch, idealnya duty cycle sinyal output dari sensor tetap. Lama low level terjadi dua kali
dalam satu putaran penuh paddlewheel, sehingga cara ini paling optimal untuk pengukuran
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 40/88
Bab III Perancangan dan Implementasi 28
periode sinyal. Tetapi ada ketidakpastian respon buka tutup reed swich karena tergantung
pada kecepatan sudut paddlewheel.
Alternatif lain adalah dengan mengukur lamanya waktu antara falling/rising edge
dari sensor. Meskipun cara ini tidak beresolusi setinggi cara pertama namun cara kedua ini
lebih presisi karena duty cycle-nya tidak terpengaruh perubahan kecepatan sudut
paddlewheel, cara inilah yang dipilih untuk mengukur periode input.
Penjelasan cara mendapatkan konstanta:
• Paddlewheel berputar 1 putaran penuh, menghasilkan pulsa:
Gambar 3.11 Pulsa sepanjang 1 periode
• 1 Hz berarti paddlewheel berputar 1 kali setiap detik.
• Jika paddlewheel berputar setengah putaran akan menghasilkan 2 transisi
naik/turun berurutan.
• Bila dalam 1 detik terjadi 2 transisi naik/turun maka frekuensi paddlewheel = ½
Hz.
• Frekuensi crystal adalah 11.059.200 Hz, bila frekuensi timer-1 = frekuensi crystal
dibagi (prescale) 1024 maka frekuensi timer-1=10800Hz. Artinya bila timer
menghitung sebanyak 10800 kali maka memakan waktu satu detik.
Bila waktu antara dua transisi sama dengan satu detik maka:
T
k f = T = periode, dalam satuan count timer-1
Hzk
f 2
1
10800==
5400=k
Pembagian menggunakan fixed point 24 bit mempunyai jangkauan 0 – 16777216.
Operasi fixed point ini tidak menghasilkan angka dibelakang koma ( pecahan), karena
pecahan masih berupa remainder/sisa. Jadi untuk menghasilkan ketelitian 1 angka
dibelakang koma, nilai k dikali sepuluh, kalau ingin menghasilkan 3 angka dibelakang
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 41/88
Bab III Perancangan dan Implementasi 29
koma maka pembagi harus dikali 1000. Pilih k=5400000 untuk menghasilkan 3 angka
dibelakang koma.
Contoh T=6723, seharusnya F=0,80321…Hz
Jika pembagi tidak dikali terlebih dahulu:
06723
5400== f + sisa 5400frekuensi dianggap nol
Pembagi dikali 1000 terlebih dahulu:
8036723
5400000== f
Tinggal tambahkan string “0” dan “,” didepan MSBnya dan string “Hz” dibelakang LSB,
akan didapat: 0.803Hz
Nilai konstanta berlaku untuk menampilkan satuan “Hz” di LCD,
tetapi tidak bisa untuk menampilkan satuan liter/detik. Untuk menampilkan satuan
liter/detik nilai k dikali dengan konstanta lain. Berikut hubungan (mengabaikan distribusi
kecepatan relatif dalam pipa dsb) antara besaran dan konstantanya.
5400000=k
vk u a= (i) ;u = volumetric flow rate, v = fluid velocity,
0v f k v b += (ii) ; f = frekuensi paddlewheel
T
k f = (iii)
Substitusi persamaan (ii) ke persamaan(i)
0)( vk f k k u aba+= ;ganti dan denganak bk ck
0vk f k u ac += u
Parameter untuk menghitung debit seperti , dan hanya bisa didapat dari
pengujian. Untuk memudahkan perhitungan diasumsikan nol, maka debit tinggal
bergantung kepada sehingga hubungan antara debit dan frekuensi berbanding lurus.
Jadi untuk mendapatkan debit, konstanta k dikali dengan .
ck ak 0v
0v
ck
ck
Awalnya mikrokontroler mendeteksi transisi naik sinyal input. Timer-1 segera
dinyalakan setelah terdeteksi ada transisi naik dan baru berhenti setelah ada transisi naik
berikutnya. Kemudian nilai count terakhir timer-1 akan diproses sehingga menghasilkan
frekuensi. Cara tersebut peka terhadap bouncing dari sinyal input. Untuk menghilangkan
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 42/88
Bab III Perancangan dan Implementasi 30
pengaruh bouncing harus ditambah delay beberapa saat. Jadi setelah terdeteksi ada transisi
naik maka timer-1 dinyalakan maka tunggu sesaat baru keluar dari rutin interupsi.
Gambar 3.12 Flowchart pengukuran frekuensi paddlewheel
Operasi Pembagian 24 bit FixedPoint
Operasi ini merupakan bagian dari task pengukuran periode Operasi pembagian 24
bit fixed point dipilih karena ukuran kode yang kecil bila dibandingkan dengan operasi
floating point 32bit. Selain ukuran, operasi fixed point memerlukan waktu eksekusi yang
jauh lebih singkat daripada floating point.
Kedua sifat fixed point diatas(ukuran dan waktu eksekusi) cocok
diimplementasikan pada mikrokontroller AT90S2313 karena ukuran flash memory yang
tersedia hanya 2kB dan mikrokontroller harus cukup cepat melakukan operasi
penghitungan karena sistem embedded ini harus dapat menanggapi perubahan input dan
permintaan update data secara real time (event triggered ).
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 43/88
Bab III Perancangan dan Implementasi 31
Gambar 3.13 Flowchart operasi pembagian 24 bit fixed point
Konversi Biner ke ASCII
Pada mikrokontroller semua perhitungan terjadi dalam basis 2. Karena isi register
AVR 8 bit maka ada 8 digit biner untuk setiap operasi. Sedangkan untuk keperluan display
dibutuhkan data dalam format decimal, pada display LCD data yang dikiirmkan
menggunakan format ASCII, sehingga data format decimal tadi harus dikonversi dulu
menjadi ASCII. Hal ini dapat dilakukan dengan menambahkan 30h ke tiap digit decimal.
Di bawah ini adalah flowchart konversi 2 byte binary menjadi decimal.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 44/88
Bab III Perancangan dan Implementasi 32
Gambar 3.14 Konversi 2 Byte Binary ke desimal
Konversi Desimal ke ASCII
Setelah format menjadi desimal selanjutnya format data diubah lagi menjadi
ASCII. Di bawah ini adalah diagram alir ( flowchart ) konversi decimal ke ASCII
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 45/88
Bab III Perancangan dan Implementasi 33
Gambar 3.15 Konversi Desimal ke ASCII
3.3.3.2 Task Pemeriksaan Data Serial
Pada jaringan RS485 sebuah node akan mengirim data ke semua node lain. Misal
ada 4 node dalam sebuah jaringan, node1 ingin mengirim data ke node3, maka node1
mengirim data melalui bus yang terhubung ke semua node, akibatnya node 2,3,dan4
menerima data yang sama. Jadi tiap data yang dikirim harus berisi informasi node sumber
dan node tujuan. Setiap node hanya menanggapi data untuknya saja. Jadi untuk setiap
pengiriman data disertakan juga alamat pengirim, alamat tujuan dan lain-lain sehingga
menjadi sebuah paket pesan (message). Di bawah ini adalah protokol pesan yang kami
pakai.
Gambar 3.16 Paket data pada protokol
Tabel 3.3 Isi tiap byte pada pesan yang dikirim
Byte Jenis Isi
1 Start 255
2 Jumlah 5 atau 83 Source ID 1 sd 4
4 Destination ID 1 sd 4
5 Command 0 sd 6
6 Data1 0 sd 255
7 Data2 0 sd 255
8 Data3 0 sd 255
9 Checksum 0 sd 255
10 Stop 250
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 46/88
Bab III Perancangan dan Implementasi 34
Tabel 3.4 Keterangan byte command dan byte ID
Command Keterangan A la t ID A la t name
0 Reset 1 Controller1 Meminta kirim data 2 Valve driver
2 Kirim data 3 Flowmeter
3 Set katup absolut 4 Level meter
4 Buka katup relatif
5 Tutup katup relatif
6 Hentikan katup
200 Checksum error
Prioritas interupsi UART satu tingkat dibawah prioritas tertinggi. Sistem ini harus
cukup tanggap dengan dalam melakukan komunikasi dengan alat (device) lain. Setiap
mendapat interupsi RXC (Receive complete) mikrokontroler akan memeriksa apakah data
yang masuk merupakan byte start, bila iya maka urutan byte selanjutnya akan disimpan di
memori. Setelah semua tersimpan akan diperiksa byte checksum, jika benar akan diperiksa
byte sumber dan tujuan, jika keduanya cocok dilanjutkan dengan memeriksa byte
command apakah minta kirim data atau simpam data ke EEPROM. Jika byte command
berisi perintah minta kirim data maka mikrokontroler akan mengirim urutan byte ke alat
sumber yang berisi data hasil perhitungan. Jika byte command berisi perintah simpan data
ke EEPROM, maka byte data tersebut dicopy dari SRAM ke EEPROM. Jika byte
command bukan keduanya maka command tersebut tidak diproses dan mikrokontroler
kembali menunggu interupsi untuk memeriksa byte start. Di bawah ini adalah Flowchart
pemeriksaan data serial.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 47/88
Bab III Perancangan dan Implementasi 35
Gambar 3.17 Flowchart periksa komunikasi serial
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 48/88
Bab III Perancangan dan Implementasi 36
3.3.3.3 Task Batas Waktu (time-out) Pengukuran Periode
Task ini dipicu oleh interupsi timer-1 compare match berfungsi membatasi panjang
gelombang yang diukur. Bila transmitter tidak menerima data baru lebih dari satu detik
maka kemungkinan besar paddlewheel memang tidak berputar, atau mungkin transduser
reed switch rusak.
Gambar 3.18 Flowchart batas waktu pengukuran panjang gelombang
Untuk itu perlu rutin yang dapat mendeteksi hal tersebut, yaitu dengan cara
membandingkan isi timer-1 dengan nilai tertentu yang mewakili 1 detik. Frekuensi timer-
1=10800Hz, maka selama 1 detik timer-1 akan menghitung sampai 10800kali. Jadi isi
timer-1 dibandingkan dengan 10800, bila sudah mencapai nilai tersebut maka kernel akan
mengeksekusi task menampilkan ’00,000’ pada LCD.
3.3.3.4 Task Update Display LCD
Task ini berfungsi menentukan kapan update display LCD dilakukan. Bila
interupsi timer-0 overflow terjadi 10 kali maka kernel memeriksa apakah ada perhitungan
baru, bila ada maka hasil perhitungan akan ditampilkan pada display LCD. Pengecekan‘data baru’ penting karena task update LCD memerlukan waktu sekitar 3 ms untuk
menulis karakter-karakter pada LCD, bila data tidak berubah maka tampilannya di LCD
tidak perlu diubah. Berikut flowchart task interupsi timer-0:
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 49/88
Bab III Perancangan dan Implementasi 37
Gambar 3.19 Task update LCD
Flowchart Inisialisasi LCD
Untuk menggunakan sebuah modul LCD, harus dilakukan inisialisasi terlebih
dahulu untuk menentukan panjang data, jumlah baris LCD yang aktif dan bentuk font.
Inisialisasi dilakukan cukup sekali saja pada pemakaian LCD. Flowchart pada gambar 3.12
menunjukkan proses yang selalu terjadi saat inisialisasi modul LCD dilakukansebelum
masuk ke bagian pengaturan mode. Sistem harus menunggu selama 15 ms atau lebih
setelah catu daya mencapai tegangan 4,5 volt
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 50/88
Bab III Perancangan dan Implementasi 38
Gambar 3.20 Inisialisasi LCD
Setelah proses inisialisasi maka modul LCD siap menerima data untuk ditampilkan
pada layer LCD. Task tulis LCD hanya dieksekusi bila syarat tick timer-0 dan flag tanda
ada hasil perhitungan baru terpenuhi. Berikut flowchart tulis karakter (update) ke LCD:
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 51/88
Bab III Perancangan dan Implementasi 39
Gambar 3.21 Tulis karakter ke LCD
3.4 Alokasi Register dan Memori
AT90S2313 menyediakan 32 byte multipurpose register ,128 byte SRAM dan
EEPROM. Register R16-R32 mendukung operasi immediate(seperti CPI, ANDI, dan ORI)
namun tidak demikian register R0-R15. Register R0-R15 hanya mendukung operasi antara
dua register. R16-R32 dapat digunakan untuk operasi yang menggunakan data dari flash
memory.
Register Fungsi
R0 Tempat data sementara untuk komunikasi serial
R1
R2
R3
R4
R5
R6
R7
Operasi Pembagian
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 52/88
Bab III Perancangan dan Implementasi 40
R8
R9Konversi Heksa Menjadi Desimal
R10
R11 Checksum
R12
R13
R14Tempat Data dan Alamat EEPROM
R15
R16
R17Dapat dipakai semua task
R18
R19
R20
R21
Operasi Pembagian(membutuhkan immediate addressing)
R22
R23Pewaktuan Display LCD
R24 Status INT0 dan UART
R25
R26(XL)
R27(XH)
Operasi Pembagian(membutuhkan pointer SRAM)
R28(YL)
R29(YH)Pointer SRAM
R30(ZL)
R31(ZH)Pointer SRAM dan Flash(khusus LCD)
Gambar 3.22 Alokasi Register
SRAM digunakan sebagai penyimpan data sementara bila tidak ada tempat lagi di
Register. Proses baca-tulis SRAM membutuhkan pointer untuk menunjukkan alamatnya,
register yang dapat digunakan sebagai pointer SRAM adalah register X,Y, dan Z. SRAM
juga digunakan sebagai tempat penyimpanan stack (informasi saat operasi jump). Stack
dimulai di alamat SRAM paling bawah dan akan mengisi alamat diatasnya bila ada data
baru. Alamat data sementara diusahakan jauh dari alamat mulai stack, jika tidak stack
dapat menimpa data sementara sehingga mengacaukan task yang bersangkutan. Di bawah
ini adalah tabel alokasi SRAM.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 53/88
Bab III Perancangan dan Implementasi 41
0x0060
0x0068
0x0070
0x0078
0x0080
0x0088
0x0090
0x0098
0x00A0
0x00A8
0x00B0
0x00B8
0x00C0
0x00C80x00D0
0x00D8
Stack
SRAM
Hasil pembagian (ASCII)
Penyimpan data sementara dari komunikasi serial
temp EEPROM
Gambar 3.23 Alokasi SRAM
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 54/88
Bab IV Pengujian dan Analisis 42
BAB IV
PENGUJIAN DAN ANALISIS
Bab ini menjelaskan pengujian sistem pada berbagai keadaan. Kemudian hasil tersebut
pengujian dianalisis sehingga masalah yang ditemukan setelah pengujian dapat diketahui.
4.1 Pengujian karakteristik reed switch pada berbagai macam frekuensi
Pengujian ini dilakukan untuk, megetahui karakteristik sensor reed switch seperti
bentuk sinyal terhadap frekuensi paddlewheel. Untuk menguji hal ini, kedua kaki reed switch
dihubungkan ke resistor pull-up. Sebuah osiloskop analog dipergunakan untuk mengamati
bentuk gelombang keluaran. Gambar 4.1 memperlihatkan setup dari pengujian ini.
Vcc
Arah putarkincir
Mikrokontroler
Reed switch
Osiloskop Magnet permanen
Gambar 4.1 Skema pengujian reed switch
Pengujian ini gagal dilakukan karena osiloskop analog membutuhkan frekuensi sinyal
input yang tetap agar gambar diam. Penulis memutar paddlewheel dengan tangan sehingga
mustahil mendapat frekuensi yang tetap.
Namun dari pengamatan hasil ukur alat didapat bahwa nilai frekuensi paddlewheel
berubah-ubah dengan cepat. Penulis mencoba dengan memutar paddlewheel perlahan-lahan,
kira-kira satu putaran per detik agar mendapat hasil ukur sekitar 1 Hz namun hasil ukur
menunjukkan 2 Hz kemudian lompat menjadi 25 Hz kemudian turun menjadi 8 Hz dan lain-
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 55/88
Bab IV Pengujian dan Analisis 43
lain yang sama sekali tidak mendekati 1 Hz. Jadi penulis menyimpulkan terjadi bouncing pada
reed switch. Penyebab bouncing antara lain:
1. Karakter reed switch yang bersangkutan. Reed switch yang dipakai dapat digantikan oleh
reed switch dengan Hg.
2. Getaran pada paddlewheel. Getaran tersebut menyebabkan medan magnet yang mengenai
reed switch tidak mulus akibatnya buka-tutup reed switch tidak mulus, hal tersebut dapat
diatasi dengan menggunakan bantalan (bearing) pada sumbu paddlewheel.
Dengan pertimbangan waktu dan biaya pelaksanaan Tugas Akhir, maka penulis mengatasi
masalah bouncing pada level perangkat lunak. Hal ini dilakukan dengan menambahkan waktu
tunda (delay) pada program pengukur panjang gelombang untuk menghilangkan bouncing
tersebut. Awalnya di setiap transisi naik dan turun ditambahkan delay 1 ms namun hasil
pengukuran masih naik-turun tak beraturan. Setelah delay ditambah menjadi 2 ms baru hasil
pengukuran menunjukkan kira-kira 1 Hz dan sudah tidak ada lonjakan hasil pengukuran lagi
namun frekuensi tertinggi yang dapat diukur dengan benar hanya 5,8 Hz.
4.2. Pengujian Perangkat Lunak
Pengujian perangkat lunak dilakukan untuk mengukur unjuk kerja sistem pengukuran
laju aliran fluida yang terdeteksi pada paddlewheel. Pengujian ini dilakukan dalam dua tahap.
Pertama pengujian secara simulasi, dengan menggunakan pembangkit sinyal (signal
generator ) yang mensimulasikan paddlewheel. Kedua pengujian menyeluruh dengan
menggunakan paddlewheel yang telah dibuat.
4.2.1 Pengujian dengan masukan dari pembangkit sinyal.
Pengujian ini dilakukan untuk mengetahui unjuk kerja sistem dalam mengukur
frekuensi. Sebuah pembangkit sinyal (Goodwill Instrument GFG-80220G) digunakan untuk
mensimulasikan sensor paddlewheel dan diumpankan ke alat ukur. Selain itu, pembangkit
sinyal juga diukur dengan menggunakan osiloskop (Scopemeter PM9750) sebagai referensi.
Keseluruhan konfigurasi pengujian diperlihatkan pada gambar 4.2.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 56/88
Bab IV Pengujian dan Analisis 44
Gambar 4.2 Skema pengujian dengan pembangkit sinyal
Penulis mengasumsikan hasil ukur osiloskop (Scopemeter PM9750) jauh lebih akurat
diantara ketiga alat di atas. Bila pembangkit sinyal menunjukkan 2 Hz maka seharusnya alat
ukur menunjukkan setengahnya yaitu 1 Hz (karena alat ukur menganggap dua transisi naik
sebagai 0.5 Hz). Hasil pengujian adalah seperti diperlihatkan pada tabel 4.1.
Tabel 4.1 Hasil pengujian alat dengan input dari pembangkit sinyal
SampelHasil Ukur
Osiloskop(Hz)
Hasil Ukur Alat
(Hz)
1 0.952380952 0.937
2 1.428571429 1.348
3 1.904761905 1.891
4 2.380952381 2.355
5 2.857142857 2.851
6 3.333333333 3.389
7 3.80952381 3.752
8 4.285714286 4.33
9 4.761904762 4.83
10 5.238095238 5.389
11 5.714285714 5.844
Dari tabel 4.1. dapat dibuat grafik hasil alat ukur terhadap frekuensi sensor. Kemudian
dibuat regresi linier dari semua titik. Gambar 4.2. memperlihatkan kurva hasil pengujian dan
hasil regresi liniernya. Dari kurva regresi dapat diketahui bahwa hasil ukur alat merupakan
fungsi linier terhadap frekuensi masukan, dengan bentuk model matematis seperti pada
persamaan 4.1.
Hasil Ukur = 1,0379 f masukan – 0.1037 ..................................... (4.1)
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 57/88
Bab IV Pengujian dan Analisis 45
Selanjutnya, persamaan (4.1) dipergunakan untuk menghitung keluaran ideal pengukur
yang akan dijadikan referensi dalam perhitungan galat (error ) pengukuran. Galat pengukuran
dapat dihitung dengan persamaan (4.2). Hasil perhitungan diperlihatkan pada tabel 4.2.
( ) ( )( )
%100alatukurhasillinierregresi
alatukurhasilalatukurhasillinierregresi×
−
=galat .............(4.2)
y = 1.0379x - 0.1037
0
1
2
3
4
5
6
7
0 2 4 6
Hasil ukur osiloskop
H a s i l u k u r
a l a t
Series1
Linear (Series1)
Gambar 4.3 Kurva hasil ukur alat vs hasil ukur osiloskop
Tabel. 4.2. Hasil perhitungan galat pengukuran frekuensi.
SampelHasil Ukur
Osiloskop(Hz)
Hasil Ukur Alat
(Hz)
Hasil Ukur Alat
ideal (y fungsi)error error(% )
1 0.952380952 0.937 0.884776 -0.05222 -5.90249
2 1.428571429 1.348 1.379014 0.031014 2.249018
3 1.904761905 1.891 1.873252 -0.01775 -0.94742
4 2.380952381 2.355 2.36749 0.01249 0.527583
5 2.857142857 2.851 2.861729 0.010729 0.374898
6 3.333333333 3.389 3.355967 -0.03303 -0.984327 3.80952381 3.752 3.850205 0.098205 2.550637
8 4.285714286 4.33 4.344443 0.014443 0.332444
9 4.761904762 4.83 4.838681 0.008681 0.179407
10 5.238095238 5.389 5.332919 -0.05608 -1.0516
11 5.714285714 5.844 5.827157 -0.01684 -0.28904
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 58/88
Bab IV Pengujian dan Analisis 46
Standard deviasi dari prosentase galat = 2,218642. Dengan mengetahui nilai standard
deviasi maka dapat dihitung akurasi dari pengukur dalam mengukur frekuensi. Berdasarkan
tabel statistik Student-T pada jumlah sampel 11 diperoleh nilai akurasi pada beberapa level
konfiden, seperti diperlihatkan pada tabel 4.3.
Tabel 4.3. Hasil perhitungan akurasi pengukuran frekuensi pada beberapa level konfiden
No Standard Dev Level Konfiden Konstanta Student-T Akurasi
1 2,218642 68,3 % 1 2,218642
2 2,218642 95 % 2,201 4,883231
3 2,218642 99 % 3,106 6,891101
Berdasarkan pada tabel 4.3. dapat disimpulkan bahwa akurasi perangkat yang dibuat
dalam mengukur frekuensi adalah kurang dari 5% reading pada level konfiden 95% atau
kurang dari 7% reading pada level konfiden 99%. Nilai tersebut dianggap cukup baik untuk
dipergunakan dalam keseluruhan sistem eksprimentasi.
4.2.2 Pengujian dengan masukan dari sensor
Pengujian ini dilakukan untuk mengukur unjuk kerja sistem dalam pengukuran laju
aliran fluida. Konfigurasi pengujian diperlihatkan pada gambar 4.4. Pengujian dilakukan
dengan mengalirkan air melalui sensor paddlewheel dan selanjutnya ditampung dengan gelas
ukur. Dengan asumsi bahwa laju aliran air oleh pompa dianggap konstan, maka referensi
pengukuran laju aliran adalah volume air terukur pada gelas ukur dibagi dengan waktu yang
diperlukan. Ketidak-pastian pengukuran volumetrik dan pengukuran waktu dianggap tidak
signifikan dibanding ketidak-pastian alat ukur yang dibuat sehingga dapat diabaikan. Kedua
asumsi ini diambil karena dalam perancangan awal, laju aliran ini akan diukur menggunakan
tabung ukur yang volumetrik dan waktunya diukur menggunakan sistem pengukur level.
Namun hingga Tugas Akhir ini diselesaikan, perangkat ini belum dapat diselesaikan dengan
baik.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 59/88
Bab IV Pengujian dan Analisis 47
Gambar 4.4 Susunan alat untuk pengujian sensor
Daya hisap pompa diubah-ubah dengan mengatur besar tegangan catu yangdiumpankan ke pompa. Semakin besar daya hisap sensor semakin cepat laju aliran yang
dihasilkan. Air yang melewati sensor ditampung di gelas ukur dan waktu untuk mencapai
volume tertentu diukur. Hasil pengujian diperlihatkan pada tabel 4.4.
Tabel 4.4 Hasil pengujian alat dengan input dari sensor
Frekuensi sensor(Hz) Volume/Tegangan
Waktu(s) 1 2 3 Rata-rata
Laju aliranRata-rata
8.59 1.4 1.2 1.1 1.233333 93.13155
8.52 1.4 1.5 1.3 1.4 93.896718.36 1.4 1.47 1.36 1.41 95.69378
800ml/140V
8.29 1.57 1.47 1.35 1.463333 96.50181
8.17 1.65 1.55 1.49 1.563333 97.91922
8.12 1.58 1.56 1.47 1.536667 98.52217800ml/160V
8.06 1.7 1.6 1.8 1.7 99.25558
8.23 1.3 1.4 1.3 1.333333 97.20535
8.13 1.6 1.7 1.54 1.613333 98.40098800ml/180V
8.17 1.6 1.5 1.4 1.5 97.91922
8.02 1.8 1.9 1.7 1.8 99.75062800ml/220V
8.1 1.8 1.7 1.6 1.7 98.76543
5.1 1.7 1.6 1.5 1.6 98.03922
5.16 1.6 1.5 1.43 1.51 96.89922500ml/140
5.2 1.65 1.57 1.48 1.566667 96.15385
5.31 1.4 1.2 1.17 1.256667 94.16196
5.18 1.58 1.47 1.42 1.49 96.5251500ml/180ml
5.26 1.38 1.41 1.28 1.356667 95.05703
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 60/88
Bab IV Pengujian dan Analisis 48
Dari tabel 4.4. dapat dibuat grafik laju aliran rata-rata terhadap frekuensi sensor rata-
rata. Kemudian dibuat regresi linier dari semua titik. Gambar 4.5. memperlihatkan kurva hasil
pengujian dan hasil regresi liniernya. Dari kurva regresi dapat diketahui bahwa hasil ukur alat
merupakan fungsi linier terhadap frekuensi sensor, dengan bentuk model matematis seperti
pada persamaan 4.3.
Laju aliran rata-rata = 10,902 f sensor rata-rata + 80,505 ..................................... (4.3)
Selanjutnya, persamaan (4.3) dipergunakan untuk menghitung keluaran ideal pengukur
yang akan dijadikan referensi dalam perhitungan galat (error ) pengukuran. Galat pengukuran
dapat dihitung dengan persamaan (4.4). Hasil perhitungan diperlihatkan pada tabel 4.5.
( ) ( )( )
%100ratat-rataaliranlajulinierregresi
rata-rataaliranlajurata-rataaliranlajulinierregresi×
−=galat ...........(4.4)
y = 10.902x + 80.505
92
93
94
95
96
97
98
99
100
101
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
frekuensi sensor (Hz)
l a j u a l i r a n ( m l / s )
Series1
Linear (Series1)
Gambar 4.5 Kurva hasil pengujian laju aliran vs frekuensi sensor
Tabel 4.5 Hasil perhitungan galat pengukuran frekuensi sensor.
Frekuensi sensor (Hz) Volume/Tegangan
Waktu(s) 1 2 3 Rata-rata
LajuRata-rata
y fungsi galat(% )
800ml/140V 8.59 1.4 1.2 1.1 1.233333 93.13155 93.94333 0.864122
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 61/88
Bab IV Pengujian dan Analisis 49
8.52 1.4 1.5 1.3 1.4 93.89671 95.76 1.945788
8.36 1.4 1.47 1.36 1.41 95.69378 95.869 0.18277
8.29 1.57 1.47 1.35 1.463333 96.50181 96.45033 -0.05337
8.17 1.65 1.55 1.49 1.563333 97.91922 97.54033 -0.38844
8.12 1.58 1.56 1.47 1.536667 98.52217 97.24967 -1.30849800ml/160V
8.06 1.7 1.6 1.8 1.7 99.25558 99.03 -0.22779
8.23 1.3 1.4 1.3 1.333333 97.20535 95.03333 -2.28553
8.13 1.6 1.7 1.54 1.613333 98.40098 98.08533 -0.32181800ml/180V
8.17 1.6 1.5 1.4 1.5 97.91922 96.85 -1.10399
8.02 1.8 1.9 1.7 1.8 99.75062 100.12 0.368934800ml/220V
8.1 1.8 1.7 1.6 1.7 98.76543 99.03 0.267159
5.1 1.7 1.6 1.5 1.6 98.03922 97.94 -0.1013
5.16 1.6 1.5 1.43 1.51 96.89922 96.959 0.06165500ml/140
5.2 1.65 1.57 1.48 1.566667 96.15385 97.57667 1.458157
5.31 1.4 1.2 1.17 1.256667 94.16196 94.19767 0.0379085.18 1.58 1.47 1.42 1.49 96.5251 96.741 0.223177500ml/180ml
5.26 1.38 1.41 1.28 1.356667 95.05703 95.28767 0.242038
Standard deviasi dari prosentase galat = 0,954447. Dengan mengetahui nilai standard
deviasi maka dapat dihitung akurasi dari pengukur dalam mengukur frekuensi. Berdasarkan
tabel statistik Student-T pada jumlah sampel 18 diperoleh nilai akurasi pada beberapa level
konfiden, seperti diperlihatkan pada tabel 4.6.
Tabel 4.6. Hasil perhitungan akurasi pengukuran frekuensi pada beberapa level konfiden
No Standard DevLevel
Konfiden
Konstanta
Student-TAkurasi
1 0,954447 68,3 % 1 0,954447
2 0,954447 95% 2,101 2,005,294
3 0,954447 99% 2,878 2,746,898
Pengujian dengan cara ini mempunyai kelemahan yaitu rentang pengujian hanya dari
frekuensi 1,23Hz s.d 1,8Hz. Sedangkan rentang pengukuran adalah 0,5 Hz s.d 5,8Hz. Untuk
frekuensi di bawah 1,25 Hz belum bisa diuji karena pompa hanya dapat bekerja pada tegangan
minimal 140V yang menghasilkan frekuensi minimal 1,25Hz. Dari pengamatan terlihat bahwa
saat sensor dipenuhi air frekuensi paddlewheel menurun, artinya laju aliran air memang tidak
dapat terlalu tinggi.
Jika paddlewheel tidak berputar maka akan terukur sebagai laju aliran 80 ml/s. Hal
tersebut jelas merupakan kesalahan karena seharusnya laju aliran yang terukur adalah 0 ml/s.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 62/88
Bab IV Pengujian dan Analisis 50
Penulis mengasumsikan laju aliran sama dengan 0 ml/s bila frekuensi paddlewheel yang
terukur sama dengan 0Hz. Jadi rentang pengukuran laju aliran air adalah:
Tabel 4.7 Rentang pengukuran laju aliran air
Frekuensipaddlewheel
Frekuensi menurutalat ukur (Hz)
Laju aliran menurut alat ukur(ml/s)
0 - 0,49 Hz 0 Hz 0 ml/s
0,5 - 5,7 Hz 0,5 - 5,7 Hz 85.95 - 143.72 ml/s
4.3. Pengujian komunikasi
Pengujian ini dilakukan untuk menguji keberhasilan komunikasi serial. Pengujian
dilakukan dengan tiga cara, yang pertama pengujian perintah meminta kirimkan data, kedua
pengujian perintah simpan data di EEPROM, dan yang ketiga pengujian komunikasi antar
RS485.
Pengujian pertama dan kedua menggunakan PC yang dihubungkan dengan alat ukur.
Penulis menggunakan program “Terminal v1.9b” untuk mengirim data dari dan ke komputer
Gambar 4.6 memperlihatkan setup dari pengujian ini. Sedangkan pada pengujian ketiga
digunakan sepasang perangkat komunikasi RS485 yang terhubung melalui sebuah jalur bus.
Gambar 4.10 memperlihatkan setup dari pengujian ketiga ini.
Gambar 4.6 Skema pengujian komunikasi antara PC dengan alat ukur
1. Uji perintah meminta kirim data:
Bila kontroler ingin alat ukur ini mengirimkan data hasil perhitungan maka harusdengan mengirim urutan byte sebagai berikut “255 005 001 003 001 010 250” yang sudah
disepakati bersama. Bila semua urutan benar maka alat ini akan mengirim balik “255 007 003
001 006 *** *** *** 250”. Isi byte ke 6,7,8 tergantung dari hasil perhitungan mikrokontroler
terakhir.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 63/88
Bab IV Pengujian dan Analisis 51
Program Terminal v1.9b mempunyai fasilitas mengirim macro, dengan fasilitas ini
pengguna dapat mengirim beberapa byte data sekaligus dari PC ke sebuah alat lain. Selain itu
program ini mempunyai layar “receive” untuk menampilkan byte data yang diterima PC.
Gambar 4.7 memperlihatkan program Terminal v1.9b saat PC mengirim pesan yang berisi
“meminta kirim data” ke alat yang terhubung ke Port COM 1.
Gambar 4.7 Tampilan program Terminal v1.9b saat menguji pesan yang berisi “meminta kirim data”
Dari gambar terlihat layar “receive” berisi tulisan “FF 07 03 01 06 FF FF 95” yang
sama dengan “255 007 003 001 006 255 255 149 250”. Sehingga dapat disimpulkan bahwa
perintah meminta kirim data berhasil.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 64/88
Bab IV Pengujian dan Analisis 52
2. Uji perintah simpan data di EEPROM.
Pengujian ini untuk memastikan pengiriman data konstanta sudah benar, karena
kalibrasi sensor dilakukan pada kontroler. Untuk keperluan pengujian kontroler dapat diganti
dengan PC. Program Terminal v1.9b digunakan untuk mengirim urutan byte sebagai berikut
“255 005 001 003 001 010 250”.
Pada pengujian ini dikirim tiga byte data yaitu 82(52h), 101(65h), dan192(C0h).
Program pada alat ukur diatur agar mengirim nilai cheksum bila data yang diterima berisi
perintah simpan data di EEPROM. Kemudian data yang masuk disimpan di EEPROM pada
alamat 00h sampai 02h, kemudian program mengirim data ‘255’ ke PC untuk verifikasi data
sudah disimpan. Gambar 4.8 memperlihatkan program Terminal v1.9b saat PC mengirim
pesan yang berisi “simpan data di EEPROM” ke alat yang terhubung ke Port COM 1.
Gambar 4.8 Pengiriman data ke EEPROM
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 65/88
Bab IV Pengujian dan Analisis 53
Gambar di atas menunjukkan bahwa PC menerima 133 dan 255 artinya alat ukur
tersebut sudah menyimpan data di EEPROM. Untuk memastikan bahwa data benar-benar
sudah disimpan di EEPROM maka isi harus dibaca. Penulis menggunakan program ICprog
versi 1.05A yang terhubung ke alat ukur melalui Port paralel. Berikut hasil pembacaan
EEPROM pada mikrokontroler setelah menerima dan menyimpan data ke EEPROM.
Gambar 4.9 Hasil pembacaan EEPROM
Dari gambar di atas terlihat isi EEPROM pada alamat 00 sampai 02 adalah berturut-
turut 52, 65, dan C0 (heksadesimal). Isi EEPROM tersebut sesuai dengan data yang dikirim
melalui komunikasi. Hal tersebut menunjukkan bahwa perintah simpan data di EEPROM
berhasil.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 66/88
Bab IV Pengujian dan Analisis 54
3. Pengujian komunikasi antar RS485.
Pengujian ini dilakukan untuk menguji komunikasi antar device. Untuk keperluan pengujian
ini penulis menggunakan dua rangkaian sistem pengukuran laju aliran air, yang kemudian
dihubungkan satu sama lain seperti gambar di bawah ini.
Gambar 4.10 Skema pengujian komunikasi antara 2 node
Pengujian dilakukan dengan : node 1 mengirim data serial (pesan 7byte) yang berisi
perintah mengirimkan data hasil perhitungan. Program pada node 2 diatur sehingga akan
menampilkan “Ok” pada LCD bila menerima pesan 7byte yang benar (benar source,
destination, command dan checksumnya). Hasil pengujian menunjukkan bahwa node 2 dapat
menanggapi input pesan serial dengan menampilkan “Ok” pada LCD dan node tidak
menanggapi input yang salah.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 67/88
Bab V Kesimpulan dan Saran 55
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan proses perancangan, implementasi, pengujian dan analisis alat
pengukur laju aliran maka penulis dapat menarik kesimpulan:
1. Transmitter ini dapat bekerja mengukur frekuensi putaran kincir dan laju aliran,
mampu menerima dan merespon perintah meminta kirim data, dan simpan data
melalui bus komunikasi RS485.
2. Transduser reed switch menghasilkan bouncing yang mengganggu pengukuran. Proses
debouncing telah diimplementasikan secara software dengan menambah delay pada
rutin pengukuran. Namun demikian, metoda debouncing ini mengakibatkan frekuensi
paddlewheel maksimum yang dapat diukur dengan benar hanya 5,8 Hz, sehingga akan
mengurangi rentang pengukuran.
3. Pengujian pada pengukuran frekuensi pembangkit sinyal memperlihatkan bahwa alat
menghasilkan galat pengukuran sekitar 6,9% pada tingkat keyakinan 99%.
4. Hasil pengujian pengukuran laju aliran air, menunjukkan bahwa alat yang dibuat
menghasilkan galat sebesar kurang dari 3% pada tingkat keyakinan 99%. Rentang
pengukuran yang diperlihatkan oleh alat adalah pada 85 – 143 ml/detik. Sebagai
catatan bahwa hasil ini masih diperoleh dengan asumsi ketidak-pastian pengukuran
volumetrik dan pengukuran waktu dianggap tidak signifikan dibanding ketidak-pastian
alat ukur
5.2 Saran
Sistem pengukuran laju air ini masih memiliki kelemahan yang bisa diatasi di masa
dating, sehingga dapat menjadi sistem yang lebih baik. Adapun beberapa hal yang harus
diperhatikan antara lain:
1. Pengujian yang lebih baik dilakukan dengan cara menyatukan 3 alat dalam sistem
kendali ini menjadi satu (driver katup, pengukur laju aliran air dan pengukur
ketinggian air)
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 68/88
Bab V Kesimpulan dan Saran 56
2. Memakai fasilitas sleep pada mikrokontroler yang memungkinkan mikrokontroler
tidak aktif selama tidak ada interupsi. Jika fasilitas tersebut digunakan maka dapat
menghemat konsumsi listrik.
3. Memakai watchdog timer pada mikrokotroler yang dapat digunakan untuk mereset
mikrokontroler bila mikrokotroler sedang hang.
4. Semua pin mikrokotroler yang tidak terpakai dihubungkan dengan konektor, sehingga
pin-pin tersebut dapat digunakan bila suatu saat diperlukan.
5. Debouncing menggunakan hardware.
6. Transduser reed switch dapat diganti dengan Hall Effect Switch untuk mengatasi
bouncing.
7. Frekuensi paddlewheel terkecil yang dapat diukur adalah 0,5 Hz. Supaya dapat
mengukur frekuensi yang lebih rendah jumlah magnet permanen yang ditanam di
paddlewheel harus ditambah.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 69/88
54
DAFTAR PUSTAKA
[1] AVR200 Multiply and Divide Routines, http://atmel.com/dyn/resources
/prod_documents/DOC0936.PDF
[2] Datasheet AT90S2313, http://atmel.com/dyn/resources/prod_documents
/DOC1630.PDF
[3] Datasheet PC1601A-L, http://www.p-tec.net/PC1601A(LCD).pdf
[4] Datasheet MAX 485, http:// www.ortodoxism.ro/datasheets/maxim /MAX1487-
MAX491.pdf
[5] FlowmeterTutorial, http://www.omega.com/techref/pdf/FlowMeterTutorial.pdf
[6] Johan, Willy. Laporan Tugas Akhir: Perancangan sistem realtime dengan
kernel cooperative pada pengukur salinitas air laut . Departemen Teknik Elektro
ITB, 2004
[7] http://www.avrasm-tutorial.com/avr_en/index.html
[8] http:/www.bray.velenje.cx/avr/terminal[9] http://www.kalinskyassociates.com/Wpaper1.html
[10] http://www.qsl.net/pa3ckr/bascom%20and%20avr/rs232/
[11] Kurniawan, Rizky. Laporan Tugas Akhir: System embebbed dengan kernel
preemptive pada level meter. Departemen Teknik Elektro ITB, 2003 [12] Laplante, Jean J. Real Time System Design and Analysis. 2
nded. New York: IEEE
Press, 1997
[13] Nalwan, Paulus Andi. Panduan Praktis Penggunaan dan Antarmuka Modul LCD
M1632. Jakarta: PT Elex Media Komputindo, 2004
[14] Pont, Michael J. Pattern For Time Triggered Embedded System. London:
Addison-Wesley, 2001
[15] Pratomo, Andi. Panduan Praktis PemrogramanAVR Microkontroler AT90S2313.
Yogyakarta: ANDI, 2005
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 70/88
A. Skema Rangkaian
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 71/88
B. Layout PCB(100%)
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 72/88
C. Gambar Rangkaian
D. Susunan Alat Untuk Pengujian Sensor
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 73/88
D. Rincian Biaya Pembuatan Rangkaian
Komponen Jumlah Harga satuan Harga
AT90S2313 1 22500 22500
MAX485 1 17500 17500
7805 1 1500 1500
Crystal 1 2500 2500
Resistor 2 100 200
Kapasitor polar 2 200 400
Kapasitor keramik 2 150 300
Saklar 1 500 500
Header 3pin 1 750 750
Header 4 pin 1 1000 1000
Header 5pin 1 1750 1750
Biaya Film PCB 1 5000 5000
Biaya Cetak PCB 1 2500 2500
Total 56400
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 74/88
E. Source Code Program
;========================================
.include"2313def.inc"
.def xm =r1
.def reml =r2 ;remainderl
.def remm =r3
.def remh =r4
;.def divresl=r26 ;division
result
;.def divresm=r27
.def divresh=r7
.def rBin2H =r8 ;dipakai
rutin division
.def rBin2L =r9
.def chs =r11 ;checksum, rutin
check_uart
.def eep_addr =r13
.def eep_data =r14
;****************************************
.def temp =r16 ;Multi purpose
register,semuanya data sementara
.def tempa =r17 ;
.def dividendL=r18 ;konstanta
.def dividendM=r19
.def dividendH=r20
.def loopcounter=r21
.def tempb =r22 ;untuk counter
timer0 overflow isr(tdk boleh diubah)
.def statusjuga =r23;utk timing
disp lcd
.def status =r24 ;penting!!!,
dipake ISR
;bit 0 : 0=falling
edge ,1 =rising edge ;bit1-7 untuk uart
.equ baudrate=11 ;143=4800bps
11=57600 5=115200bps
.equ prescale=0x05
;.equ prescale=0x01
.equ kL =0x30 ;konstanta
frekuensi/kecepatan=149970
.equ kM =0xd0 ;kl duty cycle 50%
k=5265C0
.equ kH =0x59
.equ mem =0x0060 ;alamat bin2ascii,
alamat data lcd
.equ uart_address=0x0070
.equ eeprom_address=0x0080 ;tempat
konstanta k eeprom di sram
;lcd parameter************************
.EQU ftakt =11059200 ; Frequency
STK500 internal clock
.EQU cdivtc1 =6875 ; Dibvider for TC1
.EQU cdiv1s =67 ; Divider for 1 s
.EQU pLcdPort =PORTb ; LCD connected to
PORT A
.EQU pLcdDdr =DDRb ;
Datenrichtungsregister LCD-Port
.DEF rint =R15 ; Interrupt temp
register
.EQU cLcdWrite=0b11111111 ; Data
direction write the LCD
.EQU cLcdDummy=0b00111000 ; Dummy-
Function-Word
.EQU mLcdRs =0b00000001 ; RS-BitMask
.EQU bLcdEn =2 ; Enable Bit
.EQU c1s =200 ; Wait at start-up
time (200 * 5 ms)
.EQU c5ms =ftakt/1000 ; 1 ms Wait
after each control word
.EQU c50us =ftakt/100000 ; 10 us
Wait after each char
.MACRO enactive
nop
nop
nop
nop
nop
nop
nop.ENDMACRO
;****************************************
.cseg
.org $0000
rjmp reset
.org $0001
rjmp int0_ISR ;external
interupt service
.org $0004
rjmp tim_comp1 ;buat
timeout timer1
.org $0006
rjmp tim_ovf0 ;coop task
.org $0007
rjmp uart_rxc ;uart
service
reset:
ldi temp,low(ramend)
out spl,temp
clr tempb
clr statusjuga
clr status
rcall clear_sram
rcall lcd4init
rcall port_init
rcall init_int0_rising
rcall display_mem
rcall dispdate
rcall load_eeprom ;eeprom-
>mem
rcall init_timer_service
rcall start_timer0 ;start
timer0 service
ldi temp,baudrate ;setting
baud rate
out UBRR,temp
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 75/88
sbi ucr,7
sbi ucr,4
sei
ldi temp,0x31
mov r0,temp
rcall b_transmit
loop: rjmp loop
;****************************************
int0_ISR: ;(prioritas no 1)
sbrs statusjuga,1
rjmp rise1_handler ;status=0
rjmp fall1_handler ;status=1
rise1_handler:
rcall start_timer1
ldi temp,20
rise1_delay:
rcall LcdDelay5ms
dec temp
cpi temp,0
brne rise1_delay
rcall init_int0_fallingori statusjuga,0b00000010
reti
fall1_handler:
sbrs statusjuga,2
rjmp belum_fall
rjmp rise2_handler
belum_fall:
ldi temp,1
fall1_delay:
rcall LcdDelay5ms
dec temp
cpi temp,0
brne fall1_delay
rcall init_int0_risingori statusjuga,0b00000100
reti
rise2_handler:
ldi temp,0x00 ;matiin
timer1 utk debugging
out TCCR1B,temp
in XL,TCNT1L
in XM,TCNT1H
;in temp,tcnt1h
;cpi temp,1
;brlo fall2_deb
rcall start_timer1
ldi temp,20
rise2_delay:rcall LcdDelay5ms
dec temp
cpi temp,0
brne rise2_delay
rcall hitung_frekuensi
rcall init_int0_falling
ori statusjuga,0b00000001
;brarti udah ada data baru
andi statusjuga,0b11111011
;spy di int selanjutnya meriksa
fall dulu
fall2_end:
reti
fall2_deb:
ldi temp,0x05 ;matiin
timer1 utk debugging
out TCCR1B,temp
reti
;****************************************tim_comp1:
ldi temp,0x40 ;timcompare
n tim0ov disable
out timsk,temp
sei
rcall nolkan
;rcall start_timer1
ldi temp,0x42 ;timcompare n
tim0ov enable
out timsk,temp
reti
nolkan:
clr xl
clr xhclr divresh
ldi temp,5
ldi tempa,0x30
;isi ram 0060-0065 dengan "0"
rcall y_awal
clear_2:
st y+,tempa
dec temp
brne clear_2
;rcall display_mem
;andi
statusjuga,0b11111000 ;ulang dari awal
clr statusjuga
ldi temp,1
or statusjuga,temp
;nandain ada data
baruret
;****************************************
tim_ovf0: ;update tulisan di lcd
setiap 0.25s
sei ;enable semua
interupsi lain
wdr
inc tempb
cpi tempb,10
brsh display_lcd_ok
reti
display_lcd_ok:
sbrs statusjuga,0 ;ada
perubahan lambda kalo iya disp mem
reti
wdrrcall display_mem
clr tempb
clr statusjuga
reti
;****************************************
uart_rxc:
sbrc status,1
;bit1=0-->belum dapat start
rjmp tentukanjumlahdata
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 76/88
in temp,udr
cpi temp,255
ldi temp,0x00
;timcompare n tim0ov disable
out timsk,temp
sei
brne check_uart_keluar
ori status, 0b00000010
clr temparcall uart_sram_init
check_uart_keluar:
ldi temp,0x42 ;timcompare
n tim0ov enable
out timsk,temp
reti
tentukanjumlahdata:
sbrc status,2
rjmp simpanSRAM
simpanjumlah:
in temp,udr
mov tempa,temp
cpi tempa,9
brsh check_uart_restart1
ori status, 0b00000100
simpanSRAM:in temp,udr
st y+,temp
dec tempa
breq check_uart
rcall reenable1
reti
check_uart_restart1:
andi status,0b11111001
reenable1:
sbi ucr,7
sbi ucr,4
ldi temp,0x42 ;timcompare n
tim0ov enable
out timsk,temp
reti
check_uart:
rcall uart_sram_init
andi status,0b11111001
rcall uart_sram_init
checksum:
clr chs
clr tempa
ld tempa,y
ulangchs:
ld r0,y+
add chs,r0
dec tempa
cpi tempa,1
brne ulangchs
mov r0,chsrcall b_transmit
ld r0,y
cp chs,r0
brne checksumerror
ldi yl,low(uart_address+1)
ldi yh,high(uart_address)
ld tempa,y+
cpi tempa,1
brne check_uart_restart1
ld tempa,y+
cpi tempa,3
brne check_uart_restart1
ld tempa,y+
cpi tempa,0
breq wd_reset
cpi tempa,1
breq send_data
cpi tempa,2breq simpanEEPROM
rjmp
check_uart_restart
checksumerror:
clr chs
ldi temp,255 ;start
mov r0,temp
rcall b_transmit
ldi temp,5
;jml
rcall movedata
rcall b_transmit
ldi temp,3
;srcrcall movedata
rcall b_transmit
ldi temp,1
;dest
rcall movedata
rcall b_transmit
ldi temp,200
;cmd
rcall movedata
rcall b_transmit
mov r0,chs
;chs
rcall b_transmit
ldi temp,250 ;stop
mov r0,temp
rcall b_transmit
rcall resp
rjmp check_uart_restart
wd_reset:
cli
ldi temp,0b00001000
out wdtcr,temp
wd_loop:
rjmp wd_loop
send_data:
rcall send_data2
rjmp check_uart_restart
send_data2:clr chs
ldi temp,255 ;start
mov r0,temp
rcall b_transmit
ldi temp,7
;jml
rcall movedata
rcall b_transmit
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 77/88
ldi temp,3
;src
rcall movedata
rcall b_transmit
ldi temp,1
;dest
rcall movedata
rcall b_transmit
ldi temp,2
;cmd
rcall movedata
rcall b_transmit
mov temp,xh ;dataM
rcall movedata
rcall b_transmit
mov temp,xl ;datal
rcall movedata
rcall b_transmit
mov r0,chs
;chs
rcall b_transmit
ldi temp,250 ;stop
mov r0,temp
rcall b_transmit
;ldi temp,1
;rcall lcd4ctrl
ret
movedata:
mov r0,temp
add chs,temp
ret
simpanEEPROM:
ldi yl,low(uart_address+4)
ldi yh,high(uart_address)
ldi temp,0ldi tempa,3
clr eep_addr
simpanEEPROM1:
ld temp,y+
mov eep_data,temp
rcall eeprom_write
inc eep_addr
dec tempa
cpi tempa,0
breq check_uart_restart
rjmp simpanEEPROM1
rcall load_eeprom
check_uart_restart:
andi status,0b11111001
reenable:sbi ucr,7
sbi ucr,4
ldi temp,0x42 ;timcompare n
tim0ov enable
out timsk,temp
reti
uart_sram_init:
ldi yl,low(uart_address)
ldi yh,high(uart_address)
ret
;****************************************
clear_sram:
rcall y_awal
ldi temp,0x00
ldi tempa,0x6e
clear_lagi:
st y+,tempdec tempa
brne clear_lagi
ret
port_init:
ldi temp,0xff
out ddrb,temp
ldi temp,0x00
out ddrd,temp
ldi temp,0x04
;ldi temp,0x00 ;tanpa pullup
out portd,temp
;sbi portd,2
ret
init_int0_falling:
ldi temp,0x40 ;INT0: On INT1:
Off
out GIMSK,temp
ldi temp,0x02 ;INT0 Mode:
Falling Edge
out MCUCR,temp
ldi temp,0x40 ;write 1 to erase
intf0
out GIFR,temp
ret
init_int0_rising:
ldi temp,0x40 ;INT0: On INT1:
Off
out GIMSK,temp
ldi temp,0x03 ;INT0 Mode: RisingEdge
out MCUCR,temp
ldi temp,0x40
out GIFR,temp
ret
start_timer0:
ldi temp,prescale
;prescale 1024
out TCCR0,temp
ldi temp,0x05
out TCNT0,temp
ret
start_timer1:
ldi temp,0x00
out TCCR1A,templdi temp,prescale;prescale
ck/1024
out TCCR1B,temp
ldi temp,0x00
out TCNT1H,temp ;2^16-
10800=0xd5d0
ldi temp,0x00
out TCNT1L,temp
ret
init_timer_service:
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 78/88
ldi temp,0x42 ;enable timer1
compare n tim0 ovf int
out timsk,temp
ldi temp,0x2a
out OCR1AH,temp
ldi temp,0x30
out OCR1AL,temp
ret
;****************************************y_awal:
ldi yl,low(mem)
ldi yh,high(mem)
ret
;****************************************
hitung_frekuensi:
clr xh
;rcall load_eeprom
;rcall load_eeprom2reg
ldi dividendL,kL
ldi dividendM,kM
ldi dividendH,kH
DIVW21U:
;rutin pembagian 16bit fixed
pointclr reml
clr remm
clr remh
ldi loopcounter,24
DIVW21U1:
lsl dividendL
;R26=dividendL
rol dividendM
rol dividendH
;R27=dividendH
rol reml
rol remm
rol remh
sub reml,xl
;xl=divisorL
sbc remm,xm
;xm=divisorMsbc remh,xh
;xh=divisorH
brcc DIVW21U2
add reml,xl
adc remm,xm
adc remh,xh
rjmp DIVW21U3
DIVW21U2:
sbr dividendL,1
DIVW21U3:
dec loopcounter
brne DIVW21U1
mov xl,dividendL
mov xh,dividendM
mov divresh,dividendH
adiw xh:xl,50
adiw xh:xl,30rcall ubahformat
ret
ubahformat:
push zl
push zh
ldi zh,high(mem) ;initiate z
ldi zl,low(mem)
rcall Bin2ToAsc5 ;call
routine
pop zl
pop zh
ret
Bin2ToDigit:
clr temp ; digit count is zero
Bin2ToDigita:
cp xh,rBin2H ; Number bigger thandecimal?
brcs Bin2ToDigitc ; MSB smaller
than decimal
brne Bin2ToDigitb ; MSB bigger
than decimal
cp xl,rBin2L ; LSB bigger or
equal decimal
brcs Bin2ToDigitc ; LSB smaller
than decimal
Bin2ToDigitb:
sub xl,rBin2L ; Subtract LSB
decimal
sbc xh,rBin2H ; Subtract MSB
decimal
inc temp ; Increment digit count
rjmp Bin2ToDigita ; Next loop
Bin2ToDigitc:st z+,temp ; Save digit and
increment
ret ; done
Bin2ToBcd5:
push xh ; Save number
push xl
ldi temp,HIGH(10000) ; Start with
tenthousands
mov rBin2H,temp
ldi temp,LOW(10000)
mov rBin2L,temp
rcall Bin2ToDigit ; Calculate
digit
ldi temp,HIGH(1000) ; Next with
thousands
mov rBin2H,templdi temp,LOW(1000)
mov rBin2L,temp
rcall Bin2ToDigit ; Calculate
digit
ldi temp,HIGH(100) ; Next with
hundreds
mov rBin2H,temp
ldi temp,LOW(100)
mov rBin2L,temp
rcall Bin2ToDigit ; Calculate
digit
ldi temp,HIGH(10) ; Next with
tens
mov rBin2H,temp
ldi temp,LOW(10)
mov rBin2L,temp
rcall Bin2ToDigit ; Calculatedigit
st z,xl ; Remainder are
ones
sbiw ZL,4 ; Put
pointer to first BCD
pop xl ; Restore original binary
pop xh
ret ; and
return
Bin2ToAsc5:
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 79/88
rcall Bin2ToBcd5 ; convert binary
to BCD
ldi temp,4 ; Counter
is 4 leading digits
mov rBin2L,temp
Bin2ToAsc5a:
ld temp,z ; read a
BCD digit
tst temp ; check ifleading zero
brne Bin2ToAsc5b ; No, found
digit >0
ldi temp,'0' ; overwrite with
blank
st z+,temp ; store and
set to next position
dec rBin2L ; decrement
counter
brne Bin2ToAsc5a ; further
leading blanks
ld temp,z ; Read the
last BCD
Bin2ToAsc5b:
inc rBin2L ; one more
char
Bin2ToAsc5c:subi temp,-'0' ; Add ASCII-0
st z+,temp ; store and
inc pointer
ld temp,z ; read next
char
dec rBin2L ; more
chars?
brne Bin2ToAsc5c ; yes, go on
sbiw ZL,5 ; Pointer
to beginning of the BCD
ret ; done
;****************************************
; Transmiting routine
b_transmit:
sbi portb,3
sbi UCR,txenb_transmit1:
sbis USR,UDRE ;is UART
transmitter ready?
rjmp b_transmit1
out UDR,r0 ;sent out char
cbi UCR,txen
cbi portb,3
ret
;****************************************
; Receiving routine
b_receive:
sbi UCR,rxen
b_receive1:
sbis USR,RXC
rjmp b_receive1
in r0,UDR
cbi UCR,rxenret
;****************************************
dispdate:
clr temp ; Set LCD
home position
ldi ZH,HIGH(2*datet) ; display
Date-Text
ldi ZL,LOW(2*datet)
rcall Lcd4ZTxt ; Display
null-terminated string
disptime:
ldi temp,0x43 ; LCD Cursor to
start of line 2
ldi ZH,HIGH(2*kgs) ; Display
Time-Text
ldi ZL,LOW(2*kgs)
rcall Lcd4ZTxt ; Display
null-terminated string
ret ; Fertig
datet:
.DB "Flow=",0x00;,0x00
kgs:
.DB " ml/s",0x00;,0x00
koma:
.DB ",",0x00
resp:
clr temp ; Set LCD
home position
ldi ZH,HIGH(2*okf) ; display
Date-Text
ldi ZL,LOW(2*okf)
rcall Lcd4ZTxt ; Display
null-terminated string
ret ; Fertig
okf:
.DB "ok =",0x00,0x00
;****************************************
Lcd4Init:
rcall y_awal
ldi temp,0x30 ;karakter 0
st y+,temp
ldi temp,0x30 ;karakter 0
st y+,temp
ldi temp,0x30 ;karakter 0
st y+,temp
ldi temp,0x30 ;karakter 0
st y+,templdi temp,0x30 ;karakter 0
st y+,temp
ldi temp,0x20 ;karakter spasi
st y+,temp
rcall LcdDelay1s ; Wait a second
for the LCD
ldi temp,cLcdWrite ; Data
direction to output
out pLcdDdr,temp
ldi temp,cLcdDummy ; Dummy to
catch LCD
rcall Lcd4Set ; send three times
with 5 ms delay
rcall LcdDelay5ms
ldi temp,cLcdDummy
rcall Lcd4Setrcall LcdDelay5ms
ldi temp,cLcdDummy
rcall Lcd4Set
rcall LcdDelay5ms
ldi temp,0b00100000 ; Function
Set to 4 Bit
rcall Lcd4Ctrl ; output on the
Control Port LCD
ldi temp,0b00010100 ; Cursor
display shift
rcall Lcd4Ctrl
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 80/88
ldi temp,0b00001100 ; LCD on
rcall Lcd4Ctrl
ldi temp,0b00000110 ; Entry mode
rcall Lcd4Ctrl
Lcd4Clear:
ldi temp,0b00000001 ; Set Lcd
Clear
rcall Lcd4Ctrl
Lcd4Home:ldi temp,0b00000010 ; Set LCD
Home Position
;
; Output of temp on the Control-Port of
the LCD
;
Lcd4Ctrl:
push temp ; save byte
andi temp,0xF0 ; clear lower
nibble
rcall Lcd4Set ; output upper
nibble
pop temp ; restore byte
swap temp ; swap lower and upper
nibble
andi temp,0xF0 ; clear lower
nibblercall Lcd4Set ; output lower
nibble
rjmp LcdDelay5ms ; done.
;
; Display the packed BCD in temp on the
LCD
;
Lcd4PBcd:
push temp ; Save on stack
swap temp ; Higher to lower
nibble
rcall Lcd4PBcd1 ; Output nibble
pop temp ; Restore from stack
Lcd4PBcd1:
andi temp,0x0F ; Mask upper
nibble
ori temp,0x30 ; Nibble to ASCII;
; Display char in temp on the LCD
;
Lcd4Chr:
push temp ; save char
on stack
andi temp,0xF0 ; clear lower
nibble
sbr temp,mLcdRs ; Set RS-Bit
rcall Lcd4Set ; output nibble
pop temp ; get char
from stack
swap temp ; swap
nibbles
andi temp,0xF0 ; clear lower
nibble
sbr temp,mLcdRs ; Set RS-Bitrcall Lcd4Set ; output nibble
rjmp LcdDelay50us ; ready
;
; Send nibble in temp to LCD
;
Lcd4Set:
out pLcdPort,temp ; Byte to
output port
nop
sbi pLcdPort,bLcdEn ; Set Enable-
Bit
enactive ; Delay macro
cbi pLcdPort,bLcdEn ; Clear
Enable Bit
nop
ret
;
; Delay by 1 second on start-up
;
LcdDelay1s:ldi temp,c1s ; 200 * 5 ms wait
LcdDelay1s1:
rcall LcdDelay5ms
dec temp
brne LcdDelay1s1
ret
;
; Delay by 5 ms following each Control
Word
;
LcdDelay5ms:
push ZH ;tdk begitu
penting, karena tdk menginterup uart
push ZL
ldi ZH,HIGH(c5ms)
ldi ZL,LOW(c5ms)
LcdDelay5ms1:sbiw ZL,1
brne LcdDelay5ms1
pop ZL
pop ZH
ret
;
; Delay by 50 Microseconds after each
Char
;
LcdDelay50us:
ldi temp,c50us
LcdDelay50us1:
nop
dec temp
brne LcdDelay50us1
ret
;; Display at the position in temp the
string starting at Z (null-term.)
;
Lcd4ZTxt:
sbr temp,0b10000000 ; Set DD-RAM-
Adress
rcall Lcd4Ctrl
Lcd4ZTxt1:
lpm ; Get a char
tst R0 ; Null-Char?
breq Lcd4ZTxtR
mov temp,R0
rcall Lcd4Chr ; display the cahr
in temp
adiw ZL,1 ; next char
rjmp Lcd4ZTxt1 ; do it again
Lcd4ZTxtR:ret
; Display at the position in temp the
string starting at y (null-term.)
Lcd4ZMem:
sbr temp,0b10000000 ; Set DD-RAM-
Adress
rcall Lcd4Ctrl
Lcd4ZTxt1Mem:
dec tempa
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 81/88
ld R0,z+ ;
Get a char
dec zl
tst R0 ;
Null-Char?
breq Lcd4ZTxtRMem
mov temp,R0
rcall Lcd4Chr ; display
the cahr in rmpadiw zL,1 ;
next char
cpi tempa,0
breq Lcd4ZTxtRMem
rjmp Lcd4ZTxt1Mem ; do it
again
Lcd4ZTxtRMem:
ret
; Display temp chars from SRAM starting
at Z on the LCD
;
Lcd4RTxt:
mov R0,temp ;R0 is
counter
Lcd4RTxt1:
ld temp,Z+
;read charrcall Lcd4Chr
dec R0
brne Lcd4RTxt1
ret
display_mem:
clr temp
;Set LCD home position
ldi ZH,HIGH(2*datet);display
Date-Text
ldi ZL,LOW(2*datet)
rcall Lcd4ZTxt
;Display null-terminated string
ldi tempa,3
ldi temp,0x05 ;alamat
ddram(baris 1)ldi zH,HIGH(mem)
ldi zL,LOW(mem)
rcall Lcd4ZMem
ldi temp,0x40 ;LCD Cursor
to start of line 2
ldi ZH,HIGH(2*koma) ;Display
Time-Text
ldi ZL,LOW(2*koma)
rcall Lcd4ZTxt ;
ldi tempa,2
ldi temp,0x41 ;alamat
ddram(baris 2)
ldi zH,HIGH(mem)
ldi zL,LOW(mem+2)
rcall Lcd4ZMem
ldi temp,0x43 ;LCD Cursor
to start of line 2
ldi ZH,HIGH(2*kgs) ;Display
Time-Text
ldi ZL,LOW(2*kgs)
rcall Lcd4ZTxt
;Display null-terminated string
ret
;**********************************
eeprom_write:
sbic EECR,EEWE ;if EEWE
not clear
rjmp eeprom_write ; wait
more
out EEAR,eep_addr ;output
address out EEDR,eep_data ;output
data
sbi EECR,EEMWE
sbi EECR,EEWE ;set EEPROM
Write strobe
;This instruction takes 4 clock
cycles since
;it halts the CPU for two clock
cycles
nop
nop
nop
nop
nop
ret
eeprom_read:
sbic EECR,EEWE ;if EEWE
not clear
rjmp eeprom_read ; wait
more
out EEAR,eep_addr ;address
sbi EECR,EERE
nop
nop
nop
in eep_data,EEDR
ret
load_eeprom: ;eeprom ke
sramldi yl,low(eeprom_address)
ldi yh,high(eeprom_address)
ldi tempa,3 ;3
kali loop
ldi temp,0x00 ;alamat
load_eeprom_lagi:
mov eep_addr,temp ;set alamat
eeprom
rcall eeprom_read
st y+,eep_data ;pindahin
ke sram 0x0080
dec tempa
breq load_eeprom_end
inc temp
rjmp load_eeprom_lagi
load_eeprom_end:
ret
load_eeprom2reg: ;sram ke
register yang dipake rutin division
ldi yl,low(eeprom_address)
ldi yh,high(eeprom_address)
ld dividendH,y+
;pindahin dari sram ke reg
ld dividendM,y+
;dari sram+1
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 82/88
ld dividendL,y ;dari
sram+2
ret
;last edit:19ag05
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 83/88
PERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL
BERBASIS MIKROKONTROLER AT90S2313
Rian Amanda, 13200084, Departemen Teknik Elektro, Fakultas Teknologi Industri,
Institut Teknologi Bandung
Abstract - Tujuan tugas akhir ini adalah merancang
transmitter yang real time untuk mengukur laju aliran
(debit) air dalam pipa. Sistem pengukur ini merupakan
bagian dari kit sistem kendali proses. Parameter
masukan alat pengukur ini adalah periode dari pulsa
yang dihasilkan sensor paddlewheel, kemudian diolah
dan hasilnya ditampilkan oleh LCD dan dapat dikirim
melalui bus komunikasi serial. Proses pengambilan
data, penghitungan, penampilan LCD, dan komunikasi
diatur oleh program yang disebut kernel hybrid .
Frekuensi maksimum yang dapat diukur adalah 5,8 Hz
atau 143,7ml/s .
I. PENDAHULUAN
Pembuatan kit eksperimenter ini merupakan
pengembangan dari kit yang telah tersedia sebelumnya
di lab LSS. Pengurangan biaya dilakukan denganmemperkecil ukuran kit dan mengganti bahan
pembuatan namun diusahakan tidak mengurangi
kualitas keseluruhan. Peningkatan performa dilakukan
dengan menambahkan jenis sensor fluida,
menambahkan rangkaian kontroler, menjadikan output
sensor real time, dan memungkinkan kit untuk
dioperasikan melalui komputer.
II. TINJAUAN PUSTAKA
2.1 Metoda Pengukuran Pada Sensor Paddlewheel
Besaran yang diambil dari sensor paddlewheel adalah
frekuensi sinyal akibat buka-tutup reed switch.
2.2 Sistem Tertanam ( Embedded System )
Embedded System mempunyai setidaknya
sebuah pemroses yang dapat diprogram (biasanya
dalam bentuk chip mikrokontroler, mikroprosesor, atau
Digital Signal Processor) yang oleh pengguna tidak
dikenali sebagai computer [14].
2.3 Sistem Waktu Nyata ( Real Time System)
Real Time System adalah sistem yang dapat
merespon kejadian di dunia nyata (melalui sensor)
secara langsung [14].
2.3.3 Jenis Real Time System:
Event Triggered System
Event Triggered System merupakan suatu
sistem yang akan mengeksekusi program jika ada
permintaan berupa kejadian (event )[14].
Time Triggered System
Pada Time triggered system prosesor akan
mengeksekusi task dalam rentang waktu tertentu[14].
Time triggered system biasa dikenal dengan nama
cooperative system.
Sistem hibrida ( Hybrid System)
Hybrid system merupakan gabungan dari
preemptive system dan cooperative system [12]. Pada
hybrid system terdapat minimal 1 task preemptive dan 1
task cooperative.
2.4 MikrokontrolerAVR AT90S2313
Pertimbangan utama penulis menggunakan
AVR AT90S2313 adalah kecepatan proses, mampunyai
baud rate generator, 2 buah pewaktu, ketersediaanEEPROM dan harga yang relatif murah.
2.5 Komunikasi serial
Device UART mengubah data dari format 8 bit
menjadi 1 bit per-satuan waktu pada port serial seperti
RS 232 [12]. Alat yang dapat menangani lebih dari 2
node adalah RS 485.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 84/88
2.6 Display LCD PC1601A [13]
PC1601 adalah modul display LCD dot
matrix dengan konfigurasi 16 karakter dalam satu baris.
Setip karakter dibentuk oleh 8 baris pixel dan 5 kolom
pixel (baris terakhir pixel adalah kursor).III. PERANCANGAN DAN IMPLEMENTASI
Transmitter terdiri dari perangkat keras
(hardware) dan perangkat lunak (software). Diagram
blok transmitter terdapat pada Gambar 1.
Gambar 1. Diagram blok sistem pengukuran laju aliran air
Transmitter terdiri dari dua bagian yaitu
implementasi hardware dan perancangan software.
Penulis lebih condong memilih “implementasi
hardware” karena hardware transmitter sederhana dan
banyak diambil utuh dari referensi yang ada.
Penulis lebih condong memilih “perancangan
software” karena software TA ini “dibuat dari nol”
meskipun ada beberapa rutin yang diambil dari
referensi.
3.1 Implementasi Perangkat Keras
Implementasi hardware mengacu pada batasan
masalah pada BAB I, yaitu menekankan pada
minimalisasi biaya pembuatan dengan cara
menggunakan komponen sesedikit mungkin,
menggunakan PCB 1 lapis (single layer). .
3.2 Perancangan Perangkat Lunak
Ada empat task yang dikerjakan
1. Task interupsi eksternal diberi prioritas tertinggi
karena hal utama yang diukur adalah periode dari
sensor. Task ini tidak boleh tertunda oleh task lain.
2. Task komunikasi serial adalah task yang sensitif
terhadap interupsi dari task lain. Bila task sedang
menerima byte dari luar dan terinterupsi maka task akan
gagal memeriksa data serial.
3. Task timeout pengukuran periode dipicu oleh
interupsi timer-1 compare. Bila timer-1 sudah
menghitung selama sedetik maka laju aliran dianggapnol. Penundaan terlama tidak berarti bila dibanding satu
detik.
4. Task update display LCD dieksekusi berdasarkan
interupsi timer-0. Task update LCD ini dieksekusi bila
interupsi timer-0 sudah terjadi 10 kali dan pada saat itu
ada flag perubahan hasil perhitungan. Penundaan
terlama tidak terlalu terasa bagi mata.
3.3 Implementasi Perangkat Lunak
Pada saat sistem dinyalakan kernelmenginisialisasi port direction, timer interrupt, UART
baud rate, dan modul LCD.
3. 3.1 Task pengukuran periode
Dilakukan dengan mengukur lamanya waktu
antara transisi naik/turun dari sensor. Setelah terdeteksi
ada transisi naik maka timer-1 dinyalakan baru keluar
dari rutin interupsi setelah menunggu sesaat. Flowchart
pengukuran frekuensi paddlewheel dapat dilihat pada
Gambar 2.
Gambar 2. Flowchart pengukuran frekuensi paddlewheel
3.3.2 Task pemeriksaan data serial
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 85/88
Tiap data yang dikirim harus berisi informasi
node sumber dan node tujuan. Paket data protokol ada
pada Gambar 3.
Gambar 3. Paket data pada protokol
Flowchart periksa komunikasi serial dapat
dilihat pada Gambar 4.
Gambar 4. Flowchart periksa komunikasi serial
3.3.3 Task batas pengukuran periode
Task ini dipicu interupsi “timer-1 compare
match” berfungsi membatasi periode yang diukur. Bila
transmitter tidak menerima data baru lebih dari satu
detik maka kemungkinan besar paddlewheel memang
tidak berputar.
3.3.4 Task update display LCD
Task ini berfungsi menentukan kapan update
display LCD dilakukan. Bila interupsi timer-0 overflow
terjadi 10 kali maka kernel memeriksa apakah ada
perhitungan baru, bila ada maka hasil perhitungan akan
ditampilkan pada display LCD.
BAB IV. PENGUJIAN DAN ANALISIS
4.1 Pengujian karakteristik reed switch pada
berbagai macam frekuensiPengujian ini dilakukan untuk, megetahui karakteristik
sensor reed switch seperti bentuk sinyal terhadap
frekuensi paddlewheel. Untuk menguji hal ini, kedua
kaki reed switch dihubungkan ke resistor pull-up.
4.1 Pengujian dengan masukan dari pembangkit
sinyal (Goodwill Instrument GFG-80220G).
Pengujian ini untuk mensimulasikan masukan
dari sensor. Sebelum pengujian dilakukan, penulis
menambahkan waktu tunda (delay) pada program
pengukur periode untuk mengurangi efek bouncing.
Pembangkit
sinyal
Alat ukur
osiloskop
Gambar 5. Skema pengujian dengan pembangkit sinyal
Penulis mengasumsikan hasil ukur osiloskop
(Scopemeter PM9750) paling akurat diantara 3 alat di
atas. Bila pembangkit sinyal menunjukkan 2 Hz maka
seharusnya alat ukur menunjukkan setengahnya yaitu.
Hasil pengujian alat ukur dengan masukan sensor
terdapat pada Tabel 1 dan secara grafik pada Gambar 6.
Tabel 1. Perbandingan hasil ukur osiloskop dengan hasil alat ukur
SampelHasil Ukur
Osiloskop(Hz)
HasilUkur
Alat (Hz)
1 0.952381 0.937
2 1.4285714 1.348
3 1.9047619 1.891
4 2.3809524 2.355
5 2.8571429 2.851
6 3.3333333 3.389
7 3.8095238 3.752
8 4.2857143 4.33
9 4.7619048 4.83
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 86/88
10 5.2380952 5.389
y = 1.0379x - 0.1037
0
1
2
3
4
5
6
7
0 2 4 6
Hasil ukur osiloskop
H a s i l u k u r a l a t
Series1
Linear (Series1)
Gambar 6. Kurva hasil ukur alat vs hasil ukur osiloskop
Dari Gambar 6 didapat persamaan:
Hasil Ukur = 1,0379 f masukan – 0.1037..........................1
Persamaan 1 dipergunakan untuk menghitung keluaran
ideal pengukur yang akan dijadikan referensi dalam
perhitungan galat (error ) pengukuran. Galat
pengukuran dapat dihitung dengan persamaan.2. Hasil
perhitungan diperlihatkan pada Tabel 2.
( ) (( )
)%100
alatukurhasillinierregresi
alatukurhasilalatukurhasillinierregresi×
−
=galat ........2
Tabel 2. Hasil perhitungan galat pengukuran frekuensi
SampelHasil Ukur Alat ideal(y fungsi)
error error(% )
1 0.884776 -0.05222 -5.90249
2 1.379014 0.031014 2.249018
3 1.873252 -0.01775 -0.94742
4 2.36749 0.01249 0.527583
5 2.861729 0.010729 0.374898
6 3.355967 -0.03303 -0.98432
7 3.850205 0.098205 2.550637
8 4.344443 0.014443 0.332444
9 4.838681 0.008681 0.179407
10 5.332919 -0.05608 -1.0516
11 5.827157 -0.01684 -0.28904
Standard deviasi dari prosentase galat =2,218642. Dengan mengetahui nilai standard deviasi
maka dapat dihitung akurasi dari pengukur dalam
mengukur frekuensi. Berdasarkan tabel statistik
Student-T pada jumlah sampel 11 diperoleh nilai
akurasi pada beberapa level konfiden, seperti
diperlihatkan pada Tabel 3.
Tabel 3. Hasil perhitungan akurasi pengukuran frekuensi pada
beberapa level konfiden
NoStandard
Dev
Level
Konfiden
Konstanta
Student-T Akurasi
1 2,218642 68,3 % 1 2,218642
2 2,218642 95 % 2,201 4,8832313 2,218642 99 % 3,106 6,891101
4.2 Pengujian dengan masukan dari sensor
Pengujian ini dilakukan untuk memastikan
bahwa mikrokontroller mengolah data dengan benar
sinyal input dari sensor .
Pengujian dilakukan dengan mengalirkan air
pada sensor paddlewheel ini. Air dialirkan dengan
pompa yang daya hisapnya dapat berubah tergantung
pada tegangan sumber yang diberikan. Hasil pengujian
alat ukur dengan masukan sensor terdapat pada Tabel 4
dan secara grafik pada Gambar 7.
Tabel 4. Perbandingan hasil ukur osiloskop dengan hasil alat ukur
Volume/Tegangan
Waktu(s)
Frekuensisensor rata-
rata
Lajualiran
Rata-rata
8.59 1.233333 93.13155
8.52 1.4 93.89671
8.36 1.41 95.69378800ml/140V
8.29 1.463333 96.50181
8.17 1.563333 97.91922
8.12 1.536667 98.52217800ml/160V
8.06 1.7 99.25558
8.23 1.333333 97.20535
8.13 1.613333 98.40098800ml/180V
8.17 1.5 97.91922
8.02 1.8 99.75062800ml/220V
8.1 1.7 98.76543
5.1 1.6 98.03922
5.16 1.51 96.89922500ml/140
5.2 1.566667 96.15385
5.31 1.256667 94.161965.18 1.49 96.5251500ml/180ml
5.26 1.356667 95.05703
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 87/88
y = 10.902x + 80.505
92
93
94
95
96
97
98
99
100
101
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
frekuensi sensor (Hz)
l a j u a l i r a n ( m l / s )
Series1
Linear (Series1)
Gambar 7. Kurva hasil alat ukur vs hasil ukur osiloskop dan
regresinya.
Dari gambar 7 didapat persamaan:
Laju aliran rata-rata = 10,902 f sensor rata-rata + 80,505 ..................3
Persamaan 3 dipergunakan untuk menghitung keluaran
ideal pengukur yang akan dijadikan referensi dalamperhitungan galat (error ) pengukuran. Galat
pengukuran dapat dihitung dengan persamaan 4. Hasil
perhitungan diperlihatkan pada Tabel 5.
( ) (( )
)%100
ratat-rataaliranlajulinierregresi
rata-rataaliranlajurata-rataaliranlajulinierregresi×
−
=galat
...........4
Tabel 5 Hasil perhitungan galat pengukuran frekuensi
Volume/Tegangan
LajuRata-rata
y fungsi galat(% )
93.13155 93.94333 0.86412293.89671 95.76 1.945788
95.69378 95.869 0.18277800ml/140V
96.50181 96.45033 -0.05337
97.91922 97.54033 -0.38844
98.52217 97.24967 -1.30849800ml/160V
99.25558 99.03 -0.22779
97.20535 95.03333 -2.28553
98.40098 98.08533 -0.32181800ml/180V
97.91922 96.85 -1.10399
99.75062 100.12 0.368934800ml/220V
98.76543 99.03 0.267159
98.03922 97.94 -0.101396.89922 96.959 0.06165500ml/140
96.15385 97.57667 1.458157
94.16196 94.19767 0.037908
96.5251 96.741 0.223177500ml/180ml
95.05703 95.28767 0.242038Standard deviasi dari prosentase galat =
0,954447. Dengan mengetahui nilai standard deviasi
maka dapat dihitung akurasi dari pengukur dalam
mengukur frekuensi. Berdasarkan tabel statistik
Student-T pada jumlah sampel 18 diperoleh nilai
akurasi pada beberapa level konfiden, seperti
diperlihatkan pada Tabel 5.Tabel 6. Hasil perhitungan akurasi pengukuran frekuensi pada
beberapa level konfiden
NoStandard
DevLevel
KonfidenKonstantaStudent-T
Akurasi
1 2,218,642 68,3 % 1 221,864
2 2,218,642 95% 2,201 488,323
3 2,218,642 99% 3,106 689,110Pengujian dengan cara ini mempunyai
kelemahan yaitu rentang pengujian hanya dari frekuensi
1,25Hz s.d 1,85Hz. Sedangkan rentang pengukuran
adalah 0,5 Hz s.d 5,8Hz. Dari pengamatan terlihat
bahwa saat sensor dipenuhi air frekuensi kincir
menurun, artinya laju aliran air memang tidak dapat
terlalu tinggi.
4.3 Pengujian protokol menggunakan PC
Pengujian ini untuk memeriksa komunikasi
serial (UART) apakah sudah benar atau belum. Pada
pengujian ini digunakan driver RS 232. Penulis
menggunakan program “terminal.exe” untuk mengirim
data dari dan ke komputer.
1. Uji perintah meminta kirim data
Bila kontroler ingin alat ini mengirimkan data hasil
perhitungan maka harus dengan mengirim urutan data
sebagai berikut |255|005|001|003|001|010|250| sudah
disepakati besama. Bila semua urutan benar maka alat
ini akan mengirim balik |255|7|1|3|1|6|***|***|***|250|.
Tampilan program Terminal v1.9b saat menguji pesan
yang berisi “meminta kirim data” dapat dilihat pada
Gambar 8.
5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com
http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 88/88
Gambar 8 Tampilan program Terminal v1.9b saat menguji pesan
yang berisi “meminta kirim data”
2. Uji perintah kirim data dan simpan di EEPROM
Perintah kirim data dan perintah simpan data
konstanta ke EEPROM. Pengujian ini untuk
memastikan pengiriman data konstanta sudah benar,
karena kalibrasi sensor dilakukan pada kontroler. Untuk
keperluan pengujian kontroler dapat diganti dengan PC.
Hasil pembacaan EEPROM dapat dilihat pada Gambar
9.
Gambar 9. Hasil pembacaan EEPROM
3. Pengujian protokol menggunakan 2 rangkaian
pengukur laju aliran
Pengujian dilakukan dengan : node 1
mengirim data serial (pesan 7byte) yang berisi perintah
mengirimkan data hasil perhitungan. Program pada
node 2 diatur sehingga akan menampilkan “Ok” pada
LCD bila menerima pesan 7byte yang benar( benarsource, destination, command dan checksumnya).
Hasil pengujian menunjukkan bahwa node 2
dapat menanggapi input pesan serial dengan
menampilkan “Ok” pada LCD dan node tidak
menanggapi input yang salah.
V. KESIMPULAN
Setelah melakukan proses perancangan,
implementasi, pengujian dan analisis penulis dapat
menarik kesimpulan Transmitter ini dapat bekerja
mengukur frekuensi putaran kincir, mampu menerimadan merespon perintah “meminta kirim data”, dan
“simpan data” melalui bus komunikasi RS485.
VI. DAFTAR PUSTAKA
[1] AVR200 Multiply and Divide Routines, http://atmel.com/dyn/resources
/prod_documents/DOC0936.PDF
[2] DatasheetAT90S2313, http://atmel.com/dyn/resources/prod_documents
/DOC1630.PDF
[3] Datasheet PC1601A-L, http://www.p-tec.net/PC1601A(LCD).pdf
[4] Datasheet MAX 485, http:// www.ortodoxism.ro/datasheets/maxim /MAX1487-MAX491.pdf
[5]FlowmeterTutorial,http://www.omega.com/techref/pdf/FlowMeterTutorial.p
df
[6] Johan, Willy. Laporan Tugas Akhir: Perancangan sistem realtime
dengan kernel cooperative pada pengukur salinitas air laut . Departemen
Teknik Elektro ITB, 2004
[7] http://www.avrasm-tutorial.com/avr_en/index.html
[8] http://www.avrfreak.net/
[9] http://www.kalinskyassociates.com/Wpaper1.html
[10] http://www.qsl.net/pa3ckr/bascom%20and%20avr/rs232/
[11] Kurniawan, Rizky. Laporan Tugas Akhir: System embebbed dengan
kernel preemptive pada level meter. Departemen Teknik Elektro ITB,
2003 [12] Laplante, Jean J. Real Time System Design and Analysis. 2nd ed. New
York: IEEE Press, 1997
[13] Nalwan, Paulus Andi. Panduan Praktis Penggunaan dan Antarmuka
Modul LCD M1632. Jakarta: PT Elex Media Komputindo, 2004
[14] Pont, Michael J. Pattern For Time Triggered Embedded System. London:
Addison-Wesley, 2001
[15] Pratomo, Andi. Panduan Praktis PemrogramanAVR Microkontroler
AT90S2313. Yogyakarta: ANDI, 2005
top related