Top Banner
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
88

PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Feb 06, 2018

Download

Documents

trinhcong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 2: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 3: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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, adapun

frekuensi maksimum yang dapat diukur adalah 5,8 Hz atau 143.7ml/s.

Kata kunci: debit,system waktu nyata ,kernel hybrid, sensor paddlewheel

i

Page 4: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 is

proportional 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

ii

Page 5: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

iii

Page 6: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

iv

Page 7: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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…...…......….....…………...4

2.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

v

Page 8: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

vi

Page 9: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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] ..................................................................16

Gambar 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

vii

Page 10: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

viii

Page 11: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

ix

Page 12: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

DAFTAR PERSAMAAN

Persamaan 4.1...........................................................................................................44

Persamaan 4.2...........................................................................................................45

Persamaan 4.3...........................................................................................................48

Persamaan 4.4...........................................................................................................48

x

Page 13: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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:

Page 14: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 15: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 16: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 17: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 18: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 19: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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]

Page 20: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 21: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 22: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 posisi

magnet 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:

Page 23: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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]

Page 24: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 Serbaguna 832×– 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

Page 25: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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]

Page 26: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 27: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 bus multipoint. Aplikasi umum pada jaringan (network circuits) MAX485

Page 28: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 29: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 akan

hilang 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.

Page 30: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Bab II Tinjauan Pustaka 18

Gambar 2.17 Kode ASCII pada LCD HD44780 [3]

Page 31: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 32: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 33: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 34: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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,

Page 35: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 36: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 485

Sistem 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’

Page 37: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 ini

tergolong 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 periode

Timer-1 compare match 2 Time-out pengukuran periode

Page 38: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 terlamaPengukuran periode ± 2,1 msKomunikasi serial ± 3 msTimeout pengukuran periode ± 1 μsUpdate 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.

Page 39: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 40: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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:

Tkf = T = periode, dalam satuan count timer-1

Hzkf21

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

Page 41: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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:

067235400

==f + sisa 5400 frekuensi 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

vku a= (i) ;u = volumetric flow rate, v = fluid velocity,

0vfkv b += (ii) ;f = frekuensi paddlewheel

Tkf = (iii)

Substitusi persamaan (ii) ke persamaan(i)

0)( vkfkku aba += ;ganti dan dengan ak bk ck

0vkfku 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

Page 42: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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).

Page 43: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 44: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 45: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 Isi1 Start 2552 Jumlah 5 atau 83 Source ID 1 sd 44 Destination ID 1 sd 45 Command 0 sd 66 Data1 0 sd 2557 Data2 0 sd 2558 Data3 0 sd 2559 Checksum 0 sd 25510 Stop 250

Page 46: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Bab III Perancangan dan Implementasi 34

Tabel 3.4 Keterangan byte command dan byte ID

Command Keterangan Alat ID Alat name 0 Reset 1 Controller 1 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.

Page 47: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Bab III Perancangan dan Implementasi 35

Gambar 3.17 Flowchart periksa komunikasi serial

Page 48: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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:

Page 49: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 50: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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:

Page 51: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 52: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Bab III Perancangan dan Implementasi 40

R8 R9

Konversi Heksa Menjadi Desimal

R10 R11 Checksum R12 R13 R14

Tempat Data dan Alamat EEPROM

R15

R16 R17

Dapat dipakai semua task

R18 R19 R20 R21

Operasi Pembagian (membutuhkan immediate addressing)

R22 R23

Pewaktuan 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.

Page 53: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Bab III Perancangan dan Implementasi 41

0x00600x00680x00700x00780x00800x00880x00900x00980x00A00x00A80x00B00x00B80x00C00x00C80x00D00x00D8

Stack

SRAMHasil pembagian (ASCII)

Penyimpan data sementara dari komunikasi serial

temp EEPROM

Gambar 3.23 Alokasi SRAM

Page 54: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 putar kincir

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-

Page 55: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 56: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 fmasukan – 0.1037 ..................................... (4.1)

Page 57: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

( ) ( )( ) %100

alatukur hasillinier regresialatukur hasilalatukur hasillinier regresi

×−

=galat .............(4.2)

y = 1.0379x - 0.1037

0

1

2

3

4

5

6

7

0 2 4 6

Hasil ukur osiloskop

Hasi

l uku

r al

at

Series1Linear (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.98432

7 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

Page 58: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 59: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Bab IV Pengujian dan Analisis 47

Gambar 4.4 Susunan alat untuk pengujian sensor

Daya hisap pompa diubah-ubah dengan mengatur besar tegangan catu yang

diumpankan 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 aliran Rata-rata

8.59 1.4 1.2 1.1 1.233333 93.13155 8.52 1.4 1.5 1.3 1.4 93.89671 8.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.52217 800ml/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.40098 800ml/180V

8.17 1.6 1.5 1.4 1.5 97.91922 8.02 1.8 1.9 1.7 1.8 99.75062

800ml/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.89922 500ml/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.5251 500ml/180ml

5.26 1.38 1.41 1.28 1.356667 95.05703

Page 60: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 fsensor 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.

( ) ( )( ) %100

ratat-rataaliran laju linier regresirata-rataaliran laju rata-rataaliran laju linier regresi

×−

=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)

laju

alir

an (m

l/s)

Series1Linear (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

Laju Rata-rata y fungsi galat(%)

800ml/140V 8.59 1.4 1.2 1.1 1.233333 93.13155 93.94333 0.864122

Page 61: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

Bab IV Pengujian dan Analisis 49

8.52 1.4 1.5 1.3 1.4 93.89671 95.76 1.9457888.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.30849 800ml/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.32181 800ml/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.368934

800ml/220V 8.1 1.8 1.7 1.6 1.7 98.76543 99.03 0.2671595.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.06165 500ml/140

5.2 1.65 1.57 1.48 1.566667 96.15385 97.57667 1.4581575.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 Dev Level Konfiden

Konstanta Student-T Akurasi

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.

Page 62: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Frekuensi paddlewheel

Frekuensi menurut alat 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 harus

dengan 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.

Page 63: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 64: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Page 65: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 66: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 67: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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)

Page 68: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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.

Page 69: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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. 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

Page 70: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

A. Skema Rangkaian

Page 71: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

B. Layout PCB(100%)

Page 72: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

C. Gambar Rangkaian

D. Susunan Alat Untuk Pengujian Sensor

Page 73: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

D. Rincian Biaya Pembuatan Rangkaian

Komponen Jumlah Harga satuan Harga AT90S2313 1 22500 22500

MAX485 1 17500 175007805 1 1500 1500

Crystal 1 2500 2500Resistor 2 100 200

Kapasitor polar 2 200 400Kapasitor keramik 2 150 300

Saklar 1 500 500Header 3pin 1 750 750Header 4 pin 1 1000 1000Header 5pin 1 1750 1750

Biaya Film PCB 1 5000 5000Biaya Cetak PCB 1 2500 2500

Total 56400

Page 74: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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-Bit Mask .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

Page 75: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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_falling ori 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_rising ori 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 xh clr 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 baru ret ;**************************************** 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 wdr rcall display_mem clr tempb clr statusjuga reti ;**************************************** uart_rxc: sbrc status,1 ;bit1=0-->belum dapat start rjmp tentukanjumlahdata

Page 76: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 tempa rcall 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,chs rcall 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,2 breq 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 ;src rcall 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

Page 77: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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,0 ldi 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+,temp dec 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: Rising Edge 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,temp ldi 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:

Page 78: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 point clr 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=divisorM sbc 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,30 rcall 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 than decimal? 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,temp ldi 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 ; Calculate digit 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:

Page 79: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 if leading 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,txen b_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,rxen ret ;**************************************** 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+,temp ldi 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 Lcd4Set rcall 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

Page 80: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 nibble rcall 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-Bit rcall 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

Page 81: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

ld R0,z+ ; Get a char dec zl tst R0 ; Null-Char? breq Lcd4ZTxtRMem mov temp,R0 rcall Lcd4Chr ; display the cahr in rmp adiw 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 char rcall 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 sram ldi 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

Page 82: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

ld dividendL,y ;dari sram+2 ret ;last edit:19ag05

Page 83: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 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.

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, ketersediaan

EEPROM 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.

Page 84: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 dianggap

nol. 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 kernel

menginisialisasi 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

Page 85: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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 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.

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

Sampel Hasil Ukur Osiloskop(Hz)

Hasil Ukur

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

Page 86: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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

Hasi

l uku

r ala

t

Series1Linear (Series1)

Gambar 6. Kurva hasil ukur alat vs hasil ukur osiloskop

Dari Gambar 6 didapat persamaan:

Hasil Ukur = 1,0379 fmasukan – 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

alatukur hasillinier regresialatukur hasilalatukur hasillinier regresi

×−

=galat........2

Tabel 2. Hasil perhitungan galat pengukuran frekuensi

Sampel Hasil 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

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

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)

Frekuensi sensor rata-

rata

Laju aliran

Rata-rata

8.59 1.233333 93.131558.52 1.4 93.896718.36 1.41 95.69378

800ml/140V

8.29 1.463333 96.501818.17 1.563333 97.919228.12 1.536667 98.52217800ml/160V

8.06 1.7 99.255588.23 1.333333 97.205358.13 1.613333 98.40098800ml/180V

8.17 1.5 97.919228.02 1.8 99.75062

800ml/220V 8.1 1.7 98.765435.1 1.6 98.039225.16 1.51 96.89922500ml/140

5.2 1.566667 96.153855.31 1.256667 94.161965.18 1.49 96.5251 500ml/180ml

5.26 1.356667 95.05703

Page 87: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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)

laju

alir

an (m

l/s)

Series1Linear (Series1)

Gambar 7. Kurva hasil alat ukur vs hasil ukur osiloskop dan

regresinya.

Dari gambar 7 didapat persamaan: Laju aliran rata-rata = 10,902 fsensor rata-rata + 80,505 ..................3

Persamaan 3 dipergunakan untuk menghitung keluaran

ideal pengukur yang akan dijadikan referensi dalam

perhitungan galat (error) pengukuran. Galat

pengukuran dapat dihitung dengan persamaan 4. Hasil

perhitungan diperlihatkan pada Tabel 5. ( ) (

( )) %100

ratat-rataaliran laju linier regresirata-rataaliran laju rata-rataaliran laju linier regresi

×−

=galat

...........4 Tabel 5 Hasil perhitungan galat pengukuran frekuensi

Volume/ Tegangan

Laju Rata-rata y fungsi galat(%)

93.13155 93.94333 0.86412293.89671 95.76 1.94578895.69378 95.869 0.18277

800ml/140V

96.50181 96.45033 -0.05337 97.91922 97.54033 -0.38844 98.52217 97.24967 -1.30849 800ml/160V

99.25558 99.03 -0.22779 97.20535 95.03333 -2.28553 98.40098 98.08533 -0.32181 800ml/180V

97.91922 96.85 -1.10399 99.75062 100.12 0.368934

800ml/220V 98.76543 99.03 0.26715998.03922 97.94 -0.1013 96.89922 96.959 0.06165 500ml/140

96.15385 97.57667 1.45815794.16196 94.19767 0.03790896.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

No Standard Dev

Level Konfiden

Konstanta Student-T Akurasi

1 2,218,642 68,3 % 1 221,8642 2,218,642 95% 2,201 488,3233 2,218,642 99% 3,106 689,110

Pengujian 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.

Page 88: PERANCANGAN TRANSMITTER PADA FLOWMETER · PDF filePERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 Laporan Tugas Akhir Oleh : Rian Amanda 13200084/Teknik

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( 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.

V. KESIMPULAN

Setelah melakukan proses perancangan,

implementasi, pengujian dan analisis penulis dapat

menarik kesimpulan Transmitter ini dapat bekerja

mengukur frekuensi putaran kincir, mampu menerima

dan 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