Tugas Akhir Rian Amanda 13200084

88
 PERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL BERBASIS MIKROKONTROLER AT90S2313 LAPORAN TUGAS AKHIR Disusun oleh: Rian Amanda 13200084/C Program studi: Teknik Elektronika DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI INSTITUT TEKNOLOGI BANDUNG 2005

Transcript of Tugas Akhir Rian Amanda 13200084

Page 1: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 1/88

 

PERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL

BERBASIS MIKROKONTROLER AT90S2313

LAPORAN TUGAS AKHIR

Disusun oleh:

Rian Amanda

13200084/C

Program studi: Teknik Elektronika

DEPARTEMEN TEKNIK ELEKTRO

FAKULTAS TEKNOLOGI INDUSTRI

INSTITUT TEKNOLOGI BANDUNG

2005

Page 2: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 2/88

 

 

PERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL

BERBASIS MIKROKONTROLER AT90S2313 

Laporan Tugas Akhir

Oleh :

Rian Amanda

13200084/Teknik Elektronika

Telah diterima dan disahkan untuk memenuhi persyaratan memperoleh gelar

SARJANA TEKNIK ELEKTRO

INSTITUT TEKNOLOGI BANDUNG

Bandung, 5 September 2005

Disahkan Oleh:

Pembimbing I Pembimbing II

Prof .Dr. Ir.Adang Suwandi Ahmad Ir. Syahirul Hakim Ad Dairi

NIP 130672118 NIP 13199525

Page 3: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 3/88

 

ABSTRAK

Tujuan tugas akhir ini adalah merancang sistem waktu nyata untuk mengukur laju

aliran (debit) air dalam pipa. Sistem pengukur ini merupakan bagian dari kit sistem

kendali proses. Parameter masukan alat pengukur ini adalah periode dari pulsa yang

dihasilkan sensor paddlewheel. Dalam Tugas Akhir ini diasumsikan sensor  paddlewheel 

bersifat ideal artinya kecepatan linier paddlewheel sebanding dengan laju aliran.

Data dari sensor akan diolah oleh mikrokontroler dan hasilnya ditampilkan oleh

LCD. Bila mendapat permintaan untuk mengirim data hasil perhitungan maka

mikrokontroler akan mengirimkan hasil perhitungan terakhir kapada alat device) yang

meminta. Alat-alat pada sistem kendali proses ini terhubung satu sama lain melalui sebuah

bus komunikasi serial.

Proses pengambilan data, penghitungan, penampilan LCD, dan komunikasi diatur

oleh program yang disebut kernel hybrid . Kernel hybrid bertugas mengatur kapan tugas-

tugas tersebut dikerjakan berdasarkan kejadian pemicu dan selang waktu. Batas laju aliran

air yang dapat terukur tergantung pada diameter pipa dan frekuensi paddlewheel, adapunfrekuensi maksimum yang dapat diukur adalah 5,8 Hz atau 143.7ml/s.

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

Page 4: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 4/88

 

ABSTRACT

The main purpose of this Final Project is to realize a Real Time System to measure

water volumetric flow rate (debit) in pipe. This system is commonly called “transmitter”

and part of the process control system kit. The period from paddlewheel censor transducer

is measured in order to yield water flow rate value. This final project assumes the

paddlewheel censor is ideal thus the relation between water flow rate and paddlewheel

linear speed is proportional.

Microcontroller will calculate wavelength data from censor, put water flow rate

result to LCD panel and send it to other device when asked through serial communication

bus. All tasks above is managed by hybrid kernel program which responsible to determine

when the task will be executed. Kernel will executed tasks based on their priority so that

the more critical tasks will be guaranteed to be done first and the less priority tasks will be

delayed, nevertheless there is one task which is executed based on its time period that is the

LCD update task.

The maximum paddlewheel frequency that can be measured is 5.8 Hz, which isproportional to volumetric flow 143.7 mililiter/second when its relation is depend on pipe

diameter and relative velocity distribution across pipe.

Keyword : volumetric flow, real time system, hybrid kernel, paddlewheel censor 

Page 5: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 5/88

 

KATA PENGANTAR

Puji Syukur kepada Allah SWT penulis ucapkan karena berkat rahmat dan

hidayah-Nya penulis dapat melaksanakan kuliah di kampus hingga mengerjakan tugas

akhir ini dengan baik.

Judul laporan TA ini adalah “perancangan transmitter flowmeter paddlewheel

berbasis mikrokonrtoller AT90S2313”. Laporan ini merupakan hasil pengerjaan Tugas

akhir di Departemen Teknik Elektro ITB, disusun sebagai syarat kelulusan S1 di

Departemen Teknik Elektro ITB. Pada kesempatan ini penulis sudah sepantasnya

mengucapkan terima kasih yang sebesar-besarnya kepada: 

•  Ibu, Reza dan Lola yang selalu mendukung dan mendoakan penulis selama kuliah

di ITB.

•  Pamanku “Ma’ Buwh” yang telah membantu dalam berbagai hal.

•  Bapak Prof. Adang Suwandi Ahmad sebagai pembimbing satu, yang telah

meluangkan waktu untuk membantu penulis menyelesaikan Tugas Akhir ini.

•  Bapak Ir. Syahirul Hakin Ad Dairi sebagai pembimbing dua, yang telah

memberikan bimbingan dan fasilitas bagi penulis untuk menyelesaikan Tugas

Akhir ini.

•  Bapak Ir. Sumasono, yang telah banyak membantu penulis dalam memecahkan

masalah yang terasa pelik bagi penulis.

•  Segenap dosen Departemen Teknik Elektro ITB yang berperan besar memberi

ilmu pengetahuan kepada penulis selama kuliah.

•  Staf Tata Usaha Departemen Teknik Elektro ITB dan Tata Usaha Laboratorium

Teknik Elektronika ITB.

•  Ade Sholihuddin dan Agung Surya yang telah bersama-sama dengan penulis

mengerjakan tugas akhir ini, senang bekerjasama dengan kalian.

•  Teman-teman mahasiswa Elektro, khususnya Elektro 2000.

•  Teman-teman kos yang konyol-konyol namun dapat diajak bertukar pikiran.

•  Seluruh pihak yang telah memberikan bantuan dan dorongan.

Semoga laporan Tugas Akhir ini dapat bermanfaat dan dapat digunakan untuk 

pengembangan dan penelitian lebih lanjut. Penulis menyadari terdapat banyak kekurangan

Page 6: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 6/88

 

dan kesalahan dalam penulisan laporan ini. Untuk itu penulis menyambut baik kritik dan

saran. Akhir kata penulis memohon maaf bila ada kata-kata yang tidak berkenan. Terima

Kasih.

Bandung, Agustus 2005

Penulis

Page 7: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 7/88

 

DAFTAR ISI

ABSTRAK………………………………………………........……………………………..i

ABSTRACT…………………………………………………........………………………...ii

KATA PENGANTAR………………………………………………........………………..iii

DAFTAR ISI…………………………………………………………........……………….iv

DAFTAR GAMBAR………………………………………...……………........…………vii

DAFTAR TABEL………………………………………….……………………........……ix

DAFTAR PERSAMAAN......................................................................................................x

BAB I Pendahuluan………………………………………………………….........1

1.1 Latar Belakang……………………………………………………….........1

1.2 Tujuan…………………………………………………………….…..........1

1.3 Batasan Masalah……………………………………………………...........2

1.4 Sistematika Penulisan………………………………………………......….2

BAB II Tinjauan Pustaka……………………………………………………......…4

2.1 Metoda Pengukuran Pada Sensor Paddlewheel…...…......….....…………...42.2 Sistem tertanam………………..………………………………......………5

2.3 Sistem waktu nyata…………………………………………………......….5

2.4 Sensor paddlewheel……………………………..…………………......…10

2.5 Mikrokontroler AT90S2313……………………………………….......…11

2.6 Komunikasi serial…………………………………………………….......15

2.7 Display LCD PC1601A…………………………………………......……16

BAB III Perancangan dan Implementasi………….……………….…………........19

3.1 Deskripsi Proses Kendali Eksperimenter…..……......……………...……19

3.2 Deskripsi sensor………………………..……………......……………….20

3.3 Perancangan dan implementasi transmitter…………….........……………22

3.3.1 Implementasi perangkat keras………………..…….....…………23

3.3.2 Perancangan perangkat lunak………………...……….....………25

3.3.3 Implementasi perangkat lunak………………….…………......….27

3.3.3.1 Task pengukuran periode……..……………...…….....…27

3.3.3.2 Task pemeriksaan data serial…………………….....……33

3.3.3.3 Task batas waktu pengukuran periode……………..........36

Page 8: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 8/88

 

3.3.3.4 Task update display LCD…………………………....….37

3.3 Alokasi memori dan register…..…………………………….……......….39

BAB IV Pengujian dan Analisis…………………………………………….......…42

4.1 Pengujian karakteristik reed switch pada berbagai frekuensi …….......…42

4.2 Pengujian perangkat lunak…………………………………….….….......43

4.2.1 Pengujian dengan masukan dari pembangkit sinyal…..….….......…43

4.2.1 Pengujian dengan masukan dari sensor…………………..…….......46

4.3 Pengujian komunikasi………………………………………………....... 50

BAB V Kesimpulan dan Saran……………………………………...................………..…55

5.1 Kesimpulan……………………………………………………........…….55

5.2 Saran………………………………………………………………......….56

DAFTAR PUSTAKA…………………………………………………………….…..........57

LAMPIRAN………………………………………………………………………….........58

Page 9: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 9/88

 

DAFTAR GAMBAR

Gambar 2.1 Pengukuran frekuensi berdasarkan banyaknya siklus........................................4

Gambar 2.2 Pengukuran frekuensi berdasarkan periode....................................4

Gambar 2.3 Real Time Kernel sebagai abstraction layer antara aplikasi perangkat lunak 

dan perangkat keras [9]....................................................................................6

Gambar 2.4 Layanan yang disediakan Real Time Kernel [9]................................................6

Gambar 2.5 Perbandingan pewaktuan pemindahan tugas [9]................................................7

Gambar 2.6 Diagram waktu Event-Triggered System [12]....................................................9

Gambar 2.7 Diagram waktu Time-Triggered System [12]....................................................9

Gambar 2.8 Gambar penampang samping sensor paddlewheel..........................................10

Gambar 2.9 Pull-up resistor..................................................................................................10

Gambar 2.10 Sinyal keluaran sensor paddlewheel...............................................................10

Gambar 2.11 Konfigurasi pin AT90S2313 [2] ....................................................................11

Gambar 2.12 Diagram Blok AT90S2313 [2] ......................................................................13

Gambar 2.13 Peta Memori AT90S2313 [2] ........................................................................14

Gambar 2.14 RS 485 Half Duplex Network [4] ..................................................................16Gambar 2.15 RS 485 Full Duplex Network [4] ..................................................................16

Gambar 2.16 Hubungan HD44780 dengan layer LCD [13]…………………….........……17

Gambar 2.17 Kode ASCII pada LCD HD44780 [3] ...........................................................18

Gambar 3.1 Diagram blok sistem pengukuran laju aliran air...............................................19

Gambar 3.2 Diagram blok sistem.........................................................................................19

Gambar 3.3 Sensor pada posisi vertikal...............................................................................20

Gambar 3.4 Penggunaan internal pull-up resistor................................................................21

Gambar 3.5 Perbandingan sinyal ideal dengan sebenarnya.................................................21

Gambar 3.6 Diagram blok transmitter..................................................................................22

Gambar 3.7 ISP Fun Card....................................................................................................23

Gambar 3.8 Antarmuka mikrokontroler dan LCD...............................................................24

Gambar 3.9 Antarmuka mikrokontroler dan MAX485........................................................24

Gambar 3.10 Flowchart Inisialisasi program.......................................................................27

Gambar 3.11 Pulsa sepanjang 1 periode..............................................................................28

Gambar 3.12 Flowchart pengukuran frekuensi paddlewheel...............................................30

Gambar 3.13 Flowchart operasi pembagian 24 bit fixed point............................................31

Page 10: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 10/88

 

Gambar 3.14 Konversi 2 Byte Binary ke desimal…………........................………………32

Gambar 3.15 Konversi Desimal ke ASCII...........................................................................33

Gambar 3.16 Paket data pada protokol.................................................................................33

Gambar 3.17 Flowchart periksa komunikasi serial..............................................................35

Gambar 3.18 Flowchart batas waktu pengukuran periode................................36

Gambar 3.19 Task update LCD............................................................................................37

Gambar 3.20 Inisialisasi LCD..............................................................................................38

Gambar 3.21 Tulis karakter ke LCD....................................................................................39

Gambar 3.22 Alokasi Register.............................................................................................40

Gambar 3.23 Alokasi SRAM...............................................................................................41

Gambar 4.1 Skema pengujian reed switch...........................................................................42

Gambar 4.2 Pengujian dengan pembangkit sinyal...............................................................44

Gambar 4.3 Hasil ukur alat vs hasil ukur osiloskop.............................................................45

Gambar 4.4 Susunan alat untuk pengujian sensor................................................................47

Gambar 4.5 Laju aliran vs frekuensi sensor.........................................................................48

Gambar 4.6 Skema pengujian komunikasi antara PC dengan alat ukur...............................50

Gambar 4.7 Tampilan program Terminal v1.9b saat menguji pesan yang berisi meminta

kirim data.......................................................................................................51

Gambar 4.8 Pengiriman data ke EEPROM..........................................................................52

Gambar 4.9 Hasil pembacaan EEPROM..............................................................................53

Gambar 4.10 Skema pengujian komunikasi antara 2 node..................................................54

Page 11: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 11/88

 

DAFTAR TABEL

Tabel 2.1 Reset and vektor Interupsi [2]..............................................................................15

Tabel 3.1 Prioritas Tugas......................................................................................................26

Tabel 3.2 Waktu eksekusi terlama........................................................................................27

Tabel 3.3 Isi tiap byte pada pesan yang dikirim...................................................................34

Tabel 3.4 Keterangan byte command dan byte ID...............................................................34

Tabel 4.1 Hasil pengujian alat dengan input dari pembangkit sinyal...................................43

Tabel 4.2 Hasil perhitungan galat pengukuran frekuensi.....................................................45

Tabel 4.3 Hasil perhitungan akurasi frekuensi pada beberapa level konfiden.....................46

Tabel 4.4 Hasil pengujian alat dengan input dari sensor......................................................47

Tabel 4.5 Hasil perhitungan galat pengukuran frekuensi.....................................................48

Tabel 4.6 Hasil perhitungan akurasi frekuensi pada beberapa level konfiden.....................49

Tabel 4.7 Rentang pengukuran laju aliran air......................................................................50

Page 12: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 12/88

 

DAFTAR PERSAMAAN

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

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

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

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

Page 13: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 13/88

 

 Bab I Pendahuluan 1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Sistem Pengukuran merupakan bagian yang penting dalam dunia industri. Melalui

pengukuran, dapat diperoleh berbagai masukan untuk menentukan informasi dan kendali

proses serta jaminan kualitas proses. Pengukuran dilakukan terhadap beragam parameter,

dan salah satu parameter yang banyak digunakan dalam dunia industri adalah fluida (air).

Kemampuan untuk mengendalikan proses dibutuhkan bagi para teknisi sebagai

modal untuk menghadapi dunia industri nyata. Untuk itu, disamping mempelajari secara

teoritis, dibutuhkan pula suatu alat eksperimental yang dapat memodelkan suatu sistem

kendali proses baik secara manual maupun otomatis.

Kit proses kendali eksperimenter ini dibuat untuk membantu mensimulasikan

kendali proses. Dengan menggunakan fluida sebagai parameter kendali, dapat diperoleh

berbagai informasi pengukuran seperti aliran, tekanan, ataupun level. Informasi yang

diperoleh tersebut digunakan sebagai masukan untuk kendali aliran debit air pada sistem.

Pembuatan kit eksperimenter ini merupakan pengembangan dari kit yang telah

tersedia sebelumnya di lab LSS. Perbaikan yang dilakukan antara lain pengurangan biaya

pembuatan dan peningkatan performa. Pengurangan biaya dilakukan dengan memperkecil

ukuran kit dan mengganti bahan pembuatan namun diusahakan tidak mengurangi kualitas

keseluruhan. Peningkatan performa dilakukan dengan menambahkan jenis sensor fluida,

menambahkan rangkaian kontroler, menjadikan output sensor real time, dan

memungkinkan kit untuk dioperasikan melalui komputer.

1.2 Tujuan

Tujuan umum dilakukan TA ini adalah untuk memenuhi syarat kelulusan mata

kuliah EL40Z2, Sekaligus sebagai syarat kelulusan Strata1 di Departemen Teknik Elektro

ITB. Adapun tujuan khusus yang hendak dicapai pada Tugas Akhir ini , antara lain:

Page 14: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 14/88

 

 Bab I Pendahuluan 2

a.  Merancang dan mengimplementasikan transmitter pada flowmeter paddlewheel yang

cepat, tepat, dapat menampilkan hasil pengukuran pada LCD, dan mengirim hasil

pengukuran bila diminta dengan mengutamakan minimalisasi biaya pembuatan.

b.  Menerapkan sistem pengaturan berupa kernel hybrid.

1.3 Batasan masalah 

Pada laporan tugas akhir ini akan dibahas implementasi pengukuran kecepatan alir air

dalam pipa dengan menggunakan sensor jenis  paddlewheel. Berikut beberapa batasan

masalah pada tugas akhir ini.

a. Menggunakan sensor flowmeter jenis  paddlewheel dengan transduser saklar buluh

(reed switch). 

b. Dalam Tugas Akhir sensor tidak menjadi perhatian utama. Penulis menitikberatkan

pada realisasi transmitter dengan kernel hybrid.

c. Parameter yang diukur adalah periode dari output sensor.

d. Arah aliran fluida (air) adalah maju saja, tidak ada arah aliran mundur .

e Menggunakan mikrokontroller AT90S2313.

f.  Tidak memiliki rangkaian kalibrasi sensor, kalibrasi dilakukan melalui komunikasi

serial.

1.4 Sistematika Penulisan 

Laporan Tugas Akhir ini terdiri dari lima bab, antara lain:

BAB I Pendahuluan. Bab ini berisi latar belakang dilaksanakannya Tugas Akhir,

tujuan yang hendak dicapai dari pelaksanaan Tugas Akhir, serta batasan masalah yang

digunakan.

BAB II Tinjauan Pustaka. Pada Bab ini dijelaskan konsep dasar real time system,

cara kerja sensor flowmeter jenis paddlewheel, sistem mikrokontroler, dan RS485.

BAB III Perancangan dan Implementasi. Bab ini berisi perancangan dan

implementasi perangkat lunak dan keras. Sedangkan pembahasan sensor dibatasi pada

pembahasan spesifikasi.

BAB IV Pengujian dan Analisis. Bab ini berisi pengujian sistem pengukuran dengan

masukan dari generator sinyal, pengujian output sensor, pencarian konstanta pada pada

perangkat lunak, serta pengujian komunikasi serial.

Page 15: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 15/88

 

 Bab I Pendahuluan 3

BAB V Kesimpulan dan Saran. Bab ini berisi kesimpulan yang didapatkan penulis

setelah melakukan perancangan, implementasi, hingga pengujian. Kemudian diberikan

saran-saran sehingga dapat dibuat suatu sistem pengukuran laju aliran air yang lebih baik.

Page 16: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 16/88

 

 Bab II Tinjauan Pustaka 4  

BAB II

TINJAUAN PUSTAKA

Bab ini membahas teori dasar yang mendukung perancangan dan implementasi

sensor kincir ( paddlewheel), meliputi  Real Time System, metoda pengukuran pada sensor

 paddlewheel, mikrokontroler, komunikasi serial, dan display LCD dot matrix.

2.1 Metoda Pengukuran Pada Sensor Paddlewheel

Besaran yang diambil dari sensor paddlewheel adalah frekuensi sinyal akibat buka-tutup reed switch. Ada dua cara menghitung frekuensi

1.  Dengan cara menghitung jumlah siklus dalam selang waktu tertentu. Misal rentang

waktu pengukuran = 1 detik Bila dalam rentang waktu tersebut ada 4 kali transisi naik 

maka frekuensi sinyal = 2Hz.

Gambar 2.1 Pengukuran frekuensi berdasarkan banyaknya siklus

2. Dengan cara menghitung waktu untuk satu siklus. Bila 1 periode = t detik maka

frekuensi = (1/2t)Hz.

Gambar 2.2 Pengukuran frekuensi berdasarkan periode

Cara pertama rentan terhadap kesalahan perhitungan karena adanya ketidaktepatan

waktu mulai pengamatan, sehingga tidak akurat. Implementasi cara pertama ini juga tidak 

cocok karena resource mikrokontroler akan terpakai selama penghitungan banyak siklus

input. Hal tersebut terjadi karena selama menghitung banyak siklus, mikrokontroller

Page 17: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 17/88

 

 Bab II Tinjauan Pustaka 5  

sedang menjalankan rutin interupsi sehingga tidak dapat melakukan hal lain seperti

pengecekan komunikasi, dan lain-lain.

Cara kedua lebih baik karena cpu mulai menghitung pada saat ada transisi naik 

atau turun pada gelombang yang diamati. Selebihnya CPU akan bekerja pada background (

berprioritas rendah dan sewaktu-waktu dapat diinterupsi/biasanya superloop).

Satuan yang hendak dihasilkan oleh sistem pengukuran ini adalah Volume/satuan

waktu. Asumsikan kecepatan sudut kincir flowmeter berbanding lurus dengan laju aliran

air di dalam pipa maka laju aliran air dalam pipa u = k.f (k adalah konstanta). Nilai k dapat

dicari mengalirkan air dengan laju konstan pada pipa.

2.2 Sistem Tertanam ( Embedded System )

 Embedded System mempunyai setidaknya sebuah pemroses yang dapat diprogram

(biasanya dalam bentuk  chip mikrokontroller, mikroprosesor, atau Digital Signal

Processor) yang oleh pengguna tidak dikenali sebagai computer [14].  Embedded System 

biasanya tersembunyi di dalam alat-alat elektronik.   Embedded System  umumnya tidak 

berhubungan dengan pengguna seperti pada PC melalui mouse, keyboard dan monitor.

  Embedded System berhubungan dengan dunia luar melalui antarmuka yang tidak biasa

seperti sensor,aktuator dan lain-lain.

2.3 Sistem Waktu Nyata ( Real Time System)

  Real Time System adalah sistem yang dapat merespon kejadian di dunia nyata

(melalui sensor) secara langsung [14]. Sebagai contoh sistem autopilot pada pesawat

terbang harus merespon secara langsung untuk membetulkan deviasi arah terbang.

Ketepatan dan kepastian waktu proses perhitungan menjadi hal utama dalam sistem real

time [14].

2.3.1 Real Time Kernel

Real Time Kernel adalah inti sistem operasi (Operating System/OS) yang bekerja

pada  Real Time System. Kernel adalah lapis abstraksi (abstraction layer ) antara aplikasi

perangkat lunak dengan perangkat keras [9]. Istilah mengenai abstraction layer ini sering

tidak konsisten, banyak orang menggunakan istilah  Real Time Operating System (RTOS),

ada juga yang menggunakan istilah  Real Time Kernel. Ada yang menganggap keduanya

sama, ada juga yang menganggap kernel adalah bagian dari OS yang melakukan layanan

(service) paling dasar saja. Untuk seterusnya penulis memilih istilah Real Time Kernel.

Page 18: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 18/88

 

 Bab II Tinjauan Pustaka 6  

Gambar 2.3 Real Time Kernel sebagai abstraction layer antara aplikasi perangkat lunak 

dan perangkat keras [9].

Dalam menyediakan abstraction layer  ini Real Time Kernel melakukan lima

kategori utama dari service dasar aplikasi, seperti pada Gambar 2.4.

Gambar 2.4 Layanan yang disediakan Real Time Kernel [9]

Kategori paling mendasar pada service kernel adalah manajemen tugas (task ).

Bagian ini pemrogram mendesain program sebagai blok-blok yang terpisah. Masing-

masing menangani suatu topik tertentu, tujuan tertentu, dan barangkali batas waktu real-

time itu sendiri. Masing-masing blok yang terpisah disebut task . Service dalam kategori ini

meliputi kemampuan menjalankan task dan memberi prioritas kepada masing-masing task .

Service utama Real Time Kernel adalah penjadwalan task  pada system embedded  yang

sedang bekerja. Penjadwal task mengendalikan eksekusi task aplikasi, juga membuatnya

berjalan dengan tepat waktu

Page 19: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 19/88

 

 Bab II Tinjauan Pustaka 7  

Kategori kedua pada service kernel, ada di puncak Gambar 2.4, Komunikasi dan

sinkronisasi antar task . Service ini memungkinkan task memberikan informasi satu sama

lain, tanpa bahaya informasi tersebut rusak. Service kernel memungkinkan kernel untuk 

mengkoordinir task-task , sehingga task-task  tersebut dapat secara produktif bekerja sama

dengan satu sama lain. Tanpa bantuan dari service Real Time Kernel, task  bisa saja

mengirimkan informasi yang salah.

Banyak system embedded mempunyai kebutuhan pewaktuan (timing) yang ketat,

sehingga banyak Real Time Kernel menyediakan service pewaktu (timer ), seperti task 

delay dan time-out . Ini ditunjukkan pada sisi kanan sisi Gambar 2.4.

2.3.2 Perbedaan Real Time OS dengan non Real Time OS

Banyak sistem operasi non-real-time juga menyediakan layanan (service) kernel

serupa. Perbedaan mendasar antara general purpose kernel dan real-time kernel adalah

kebutuhan akan kepastian pewaktuan (deterministic timing behavior ) dalam kernel real-

time. Secara formal, deterministic timing berarti service sistem operasi itu hanya

mengkonsumsi waktu sebanyak yang diketahui dan diharapkan. Dalam teori, service ini

bisa dinyatakan seperti rumusan matematis. Rumusan ini harus tidak meliputi komponen

pewaktuan acak. Komponen acak dalam selang waktu service menyebabkan delay acak pada program aplikasi dan menyebabkan aplikasi melanggar batas waktu real time yang

mana tidak boleh terjadi pada sistem real-time. 

Gambar 2.5 Perbandingan pewaktuan pemindahan tugas [9]

Page 20: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 20/88

 

 Bab II Tinjauan Pustaka 8  

Sistem operasi non-real-time seringkali bersifat tak dapat dipastikan (non-

deterministic). Service sistem operasi serbaguna dapat membangkitkan delay acak ke

dalam aplikasi program dan menyebabkan respon lambat yang tak diinginkan. Jika

pengembang suatu sistem operasi non-real-time ditanya apa rumusan aljabar yang

menggambarkan perilaku pewaktuan salah satu dari servicenya ( seperti pengiriman suatu

pesan dari tugas ke tugas), mereka tidak akan memberikan suatu rumusan aljabar. Sifat

deterministik bukan hal penting dalam merancang general-computing operating system [9].

Sebagian besar service kernel real-time konstan tanpa dipengaruhi beban CPU.

Dengan kata lain, rumusan aljabar sederhana: T(Message_Send) = tetap [9], tanpa

tergantung dengan panjang pesan yang dikirim, atau lain faktor seperti banyaknya task dan

antrian pesan yang ditangani oleh Real Time Kernel.

2.3.3 Jenis Real Time System:

Event Triggered System

 Event Triggered System merupakan suatu sistem yang akan mengeksekusi program

  jika ada permintaan berupa kejadian (event )[14]. Pada event triggered system dikenal

adanya urutan prioritas. Jika suatu task  sedang dijalankan dan ada interupsi dengan

prioritas lebih tinggi maka prosesor akan langsung mengeksekusi task  interupsi dan

menunda task  yang sedang berjalan.   Event Triggered System biasa dikenal dengan

Preemptive System. 

Masing-masing task dalam suatu aplikasi software harus diberi prioritas, prioritas

yang lebih tinggi yang berarti membutuhkan respon yang lebih cepat. Kemampuan respon

yang sangat cepat dimungkinkan oleh penjadwal (scheduler )  preemptive. Penjadwal

preemptive dapat menghentikan suatu task  kapan saja dan mengeksekusi task  lain yang

prioritasnya lebih tinggi.

Ketentuan dasar pada penjadwalan preemptive adalah pada setiap saat, task yang

mempunyai Prioritas tertinggi selalu siap dijalankan. Dengan kata lain, jika baik  task  

berprioritas tinggi maupun berprioritas lebih tinggi siap dijalankan, scheduler  akan

membuat task berprioritas lebih tinggi dieksekusi lebih dulu. Task dengan prioritas rendah

hanya dapat berjalan setelah task berprioritas tinggi telah selesai dieksekusi. Pemilihan

prioritas task  merupakan hal penting pada penjadwalan preemptive, karena bila task  

berprioritas tinggi sedang bekerja dan muncul event pemicu task berprioritas rendah maka

task berprioritas rendah tidak tertunda terlalu lama atau bahkan tidak dilaksanakan sama

sekali.

Page 21: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 21/88

 

 Bab II Tinjauan Pustaka 9  

Gambar 2.6 Diagram waktu Event-Triggered System [12]

Time Triggered System

Pada Time triggered system prosesor akan mengeksekusi task dalam rentang waktu

tertentu[14]. Tidak ada prioritas (service interupsi yang dipakai hanya service interupsi

pewaktu) dalam system ini. Time triggered system biasa dikenal dengan nama cooperative

system.

Ada perbedaan mendasar antara time triggered system dengan superloop. Pada

superloop system dijalankan saat catu daya dinyalakan secara kontinu dan berhenti saat

catu daya dipadamkan. Pada superloop semua task  dijalankan secara berurutan, tanpa

diketahui berapa lama eksekusi suatu program (biasanya waktu eksekusi program tidak 

selalu sama/nondeterministic). Sedangkan pada time triggered system, terdapat kernel yang

mengatur pemanggilan task-task secara periodik dan pengaturan lama eksekusi serta

komunikasi antar task .

Gambar 2.7 Diagram waktu Time-Triggered System [12]

Sistem hibrida ( Hybrid System)

  Hybrid system merupakan gabungan dari   preemptive system dan cooperative

system [12]. Pada hybrid system terdapat minimal 1 task    preemptive dan 1 task  

cooperative. Task  preemptive biasa digunakan untuk menangani error atau input atau

apapun yang membutuhkan perhatian segera.

Page 22: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 22/88

 

 Bab II Tinjauan Pustaka 10  

2.4 Sensor Paddlewheel

Sensor kincir ( paddlewheel) terdapat pada di dalam pipa yang dialiri air.

 paddlewheel ini berputar bila air yang melewatinya mengalir. Pada  paddlewheel tersebut

ditanam sebuah magnet permanent pada posisi tertentu seperti pada gambar di bawah ini:

Gambar 2.8 Gambar penampang samping sensor paddlewheel

Pada rumah (casing) sensor ditanam sebuah saklar buluh (reed switch). Reed

switch ini akan menutup (short circuit ) bila terkena medan magnet melebihi ambang,

contoh bila didekati oleh magnet permanen. Bila saat paddlewheel

berputar dan posisimagnet dekat dengan reed switch maka akan dihasilkan output LOW, dan jika posisi

magnet jauh dari reed switch output akan di pull-up menjadi HIGH.

Gambar 2.9 Pull-up resistor

Bila air pada pipa mengalir akan mengakibatkan  paddlewheel berputar. Kecepatan

putar  paddlewheel tergantung pada kecepatan air. Semakin cepat air mengalir semakin

cepat  paddlewheel berputar dan semakin tinggi frekuensi sinyal output sensor, begitu juga

sebaliknya. Bentuk sinyal yang dihasilkan:

Page 23: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 23/88

 

 Bab II Tinjauan Pustaka 11  

Gambar 2.10 Sinyal keluaran sensor paddlewheel

Keunggulan jenis paddlewheel ini adalah sensor dapat digunakan untuk 

bermacam–macam jenis fluida/cairan . Tidak seperti sensor jenis lain yang dapat saja

bergantung pada sifat konduktivitas cairan.

Kelemahan sensor  paddlewheel adalah mengurangi laju air di dalam pipa.

 paddlewheel mempunyai massa tertentu sehingga mempunyai kelembaman. Semakin besar

massa kincir semakin besar pula kelembamannya sehingga perlu gaya yang lebih besar

untuk memutarnya, akibatnya laju air menjadi lebih lambat. Selain karena massa kincir,

gesekan antara poros kincir dengan sumbunya juga dapat memperlambat aliran cairan

dalam pipa.

Kompensasi kelemahan sensor  paddlewheel dengan software dan hardware.

Dengan software kesalahan pengukuran akibat massa dan gesekan kincir dapat dikurangi

meskipun hanya melalui cara pendekatan. Sedangkan dengan cara hardware yaitu dengan

cara menambah jumlah magnet karena resolusi pengukuran tergantung pada banyaknya

magnet yang terpasang pada kincir. Tetapi banyak magnet akan membuat massa kincir

membesar yang mengakibatkan berkurangnya laju air dalam pipa. Oleh karena itu untuk 

membuat sensor yang akurat dan beresolusi tinggi relatif sulit

2.5 MikrokontrolerAVR AT90S2313

Gambar 2.11 Konfigurasi pin AT90S2313 [2]

Page 24: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 24/88

 

 Bab II Tinjauan Pustaka 12  

AT90S2313 merupakan mikrokontroler CMOS 8-bit berarsitektur RISC

( Reduced Intruction Set Computer ). Dengan pelaksanaan satu instruksi dalam satu siklus

clock, mikrokontroller AT90S2313 mendekati 1 MIPS (Million Instruction Per Second)

pada 1 MHZ, yang memungkinkan pengguna mengoptimalkan perbandingan konsumsi

energi terhadap kecepatan proses. Deskripsi singkat Mikrokontroler AT90S2313:

• AVR – Arsitektur RISC berunjuk kerja tinggi dan berkonsumsi daya rendah.

– 118 Instruksi – Hampir semua instruksi hanya perlu satu clock 

– Register Serbaguna832×

– Mendekati 10 MIPS pada 10 MHz

• Data and Non-volatile Program Memory

– 2K Byte In-System Programmable Flash, ketahanan 1,000 kali baca/tulis

– 128 Byte SRAM

– 128 Byte In-System Programmable EEPROM, ketahanan: 100,000 kali baca/tulis

– Programming Lock untuk keamanan data Flash memory dan EEPROM

• Peripheral yang tersedia

– One 8-bit Timer/Counter dengan Prescaler terpisah

– One 16-bit Timer/Counter dengan Prescaler terpisah, Compare, Capture Mode dan 8-,

9-, atau 10-bit PWM– On-chip Analog Comparator

– Programmable Watchdog Timer dengan On-chip Oscillator

– SPI Serial Interface untuk In-System Programming

– Full Duplex UART

• Fasilitas khusus pada mikrokontroler ini:

– Low-power Idle dan mode power-down

– Sumber interupsi eksternal dan internal

• Spesifikasi

– Low-power, High-speed CMOS Process Technology

– Fully Static Operation

• Konsumsi daya pada 4 MHz, 3V, 25°C

– Aktif: 2.8 mA

– Mode Idle: 0.8 mA

– Mode Power-down: <1 µA

• Jumlah pin Input/Output dan kemasan IC

– 15 Programmable I/O Lines

Page 25: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 25/88

 

 Bab II Tinjauan Pustaka 13  

– 20-pin PDIP and SOIC

• Rekomendasi tegangan kerja

– 2.7 s.d 6.0V (AT90S2313-4)

– 4.0 s.d 6.0V (AT90S2313-10)

• Rekomendasi frekuensi kerja

– 0 s.d 4 MHz (AT90S2313-4)

– 0 s.d 10 MHz (AT90S2313-10)

Mikrokontroller AVR mengkombinasikan set instruksi dengan 32 register

serbaguna (general purpose working registers). Semua 32 register terhubung secara

langsung ke Logic Unit (ALU), memungkinkan dua register diakses dalam satu eksekusi

instruksi yang hanya membutuhkan satu siklus clock. Arsitektur yang dihasilkan lebih

efisien mencapai 10 kali lebih cepat daripada mikrokontroler CISC konvensional.

Gambar 2.12. Diagram Blok AT90S2313 [2]

Page 26: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 26/88

 

 Bab II Tinjauan Pustaka 14  

ROM jenis On-chip In-System Programmable Flash memungkinkan penulisan

ulang program melalui suatu SPI serial interface atau oleh suatu  programmer  

konvensional. Mikrokontroller AVR AT90S2313 didukung oleh development tools 

mencakup: C compiler, asembler makro, program debugger/simulators, In-Circuit

Emulators dan kit evaluasi.

Memori yang terdapat pada AT90S2313 adalah 2KByte Programmable Flash

memory, 128 Byte EEPROM, dan 128 Byte SRAM. Flash memory digunakan untuk 

tempat penyimpanan program dengan kemampuan dapat ditulis ulang sampai 1000kali.

EEPROM biasa digunakan untuk menyimpan data sebelum sistem dimatikan, isi EEPROM

tidak berubah ketika sistem dinyalakan kembali. Sedangkan SRAM digunakan untuk 

menyimpan data sementara, isi SRAM akan hilang saat sistem dimatikan.

Gambar 2.13. Peta Memori AT90S2313 [2]

Reset and Penanganan Interupsi ( Interrupt Handling)

AT90S2313 menyediakan 10 sumber interupsi. Interupsi-interupsi tersebut

mempunyai program vector terpisah di flash memory. Untuk mengaktifkan interupsi setiap

bit enable dan bit I pada status register harus diset high. Alamat yang paling rendah di

dalam memori program secara otomatis berfungsi sebagai  Reset  dan vektor interupsi

( Interrupt Vectors). Daftar lengkap vector interupsi diperlihatkan oleh tabel 2. Daftar juga

Page 27: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 27/88

 

 Bab II Tinjauan Pustaka 15  

menentukan tingkat prioritas setiap interupsi. Semakin rendah alamat , semakin tinggi

tingkat prioritasnya. Reset mempunyai prioritas tertinggi, diikuti oleh INT0 (external

interrupt request 0).

Tabel 2.1 Reset and vektor Interupsi [2]

2.6 Komunikasi Serial (Universal Asynchronous Receiver/Transmitter)

Sebuah device Universal Asynchronous Receiver/Transmitter (UART) mengubah

data dari format 8 bit menjadi 1 bit per-satuan waktu pada port serial seperti RS 232 [12].

Tiap karakter dikirim dalam sebuah paket yang terdiri dari start bit, data 8 bit, dan stop bit.

Komunikasi serial dengan protokol UART bersifat asinkron sehingga kecepatan

pengiriman data harus tetap sehingga device penerima dapat membaca data yang masuk 

dengan benar. Kecepatan pengiriman data pada komunikasi serial UART dikenal dengan

nama baud rate. Pada AVR setiap byte data yang dikirim secara serial secara otomatis

ditambahi bit start di awal dan bit stop di akhir message. Dengan menggunakan UART

mikrokontroler dapat berkomunikasi dengan PC (dengan driver RS 232 yang berfungsi

mengubah level tegangan ).

Pada sistem kendali ini terdapat lebih dari dua alat (device) maka tidak cukup 1

karakter pada setiap penerimaan/pengiriman data. Alat yang dapat menangani lebih dari 2

node dapat digunakan RS 485. Setiap pengiriman data, node mengirim beberapa karakter

yang berisi alamat unik node, tujuan, data dan sebagainya tergantung keperluan.

MAX485 adalah transceivers untuk komunikasi.RS-485 dan RS-422. Transceiver  

MAX485 dirancang untuk komunikasi data dua arah (half duplex dan full duplex) pada

  jalur transmisi busmultipoint . Aplikasi umum pada jaringan (network circuits) MAX485

Page 28: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 28/88

 

 Bab II Tinjauan Pustaka 16  

ditunjukkan pada Gambar 2.13 dan 2.14. MAX485 dapat juga digunakan sebagai line

repeaters, dengan panjang kabel lebih dari 4000 kaki. Untuk memperkecil pemantulan,

pada kedua sisi line sebaiknya diberi resistansi sebesar impedansi karakteristiknya

(umumnya 120 ohm), dan panjang line utama sebaiknya sependek mungkin. MAX483 dan

MAX487–MAX489 lebih baik dalam mentoleransi efek pemantulan.

Gambar 2.14 RS 485 Half Duplex Network [4]

Gambar 2.15. RS 485 Full Duplex Network [4]

2.7 Display LCD PC1601A [13]

PC1601 adalah modul display LCD dot matrix dengan konfigurasi 16 karakter

dalam satu baris. Setip karakter dibentuk oleh 8 baris pixel dan 5 kolom pixel (baris

terakhir pixel adalah kursor). Gambar 2.16 menunjukkan hubungan antara layer LCD

Page 29: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 29/88

 

 Bab II Tinjauan Pustaka 17  

dengan dengan HD44780 yang merupakan mikrokontroler pengendali LCD. HD44780

buatan Hitachi ini sudah tertanam pada modul PC1601A ini.

Gambar 2.16 Hubungan HD44780 dengan layer LCD [13]

Modul LCD PC1601A memiliki beberapa jenis memori yang digunakan untuk 

menyimpan atau memproses data-data yang akan ditampilkan pada layer LCD. Setiap jenis

memori mempunyai fungsi tersendiri.

DDRAM adalah memori tempat karakter yang ditampilkan berada. Contohnya

karakter ‘A’ atai 41h yang ditulis pada alamat 00 akan tampil pada baris pertama dan

kolom pertama dari LCD. Apabila karakter tersebut ditulis pada alamat 40h, karakter

tersebut akan tampil pada baris kanan dari LCD

CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan bentuk 

karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori ini akan hilang saat

power supply dimatikan, sehingga pola karakter akan hilang.

CGROM adalah memori untuk menggambarkan pola sebuah karater dan pola

tersebut sudah ditentukan secara permanent dari HD44780 sehingga pengguna tidak dapat

mengubahnya. Oleh karena ROM bersifat permanen, pola karakter tersebut tidak akanhilang walau catu daya dimatikan.

Gambar 2.16 menunjukkan pola-pola karakter yang tersimpan dalam lokasi-lokasi

tertentu dalam CGROM. Saat HD44780akan menampilkan data 41h yang tersimpan pada

DDRAM, HD44780 akan mengambil data di alamat 41h yang ada pada CGROM, yaitu

pola karakter ’A’. Alamat karakter pada CGROM serupa dengan kode ASCII.

Page 30: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 30/88

 

 Bab II Tinjauan Pustaka 18  

Gambar 2.17 Kode ASCII pada LCD HD44780 [3] 

Page 31: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 31/88

 

 Bab III Perancangan dan Implementasi 19 

BAB III

PERANCANGAN DAN IMPLEMENTASI

Bab ini membahas perancangan bagian elektronik (transmitter) pada sistem

pengukuran debit air. Sistem pengukuran ini terdiri dari bagian mekanis dan elektronik.

Bagian mekanis berupa sensor  paddlewheel, sedangkan transmitter  adalah rangkaian

elektronik yang berfungsi mengolah data dari bagian mekanis. Transmitter  terdiri dari

perangkat keras (hardware) dan perangkat lunak (software).

Gambar 3.1 Diagram blok sistem pengukuran laju aliran air

3.1 Deskripsi Sistem Kendali Proses

Gambar 3.2 Diagram blok sistem 

Page 32: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 32/88

 

 Bab III Perancangan dan Implementasi 20 

Kit eksperimental ini terdiri atas empat bagian utama, yaitu sensor, kontroller, BUS,

serta SCADA. Masukan berupa fluida berasal dari reservoir yang diatur oleh pompa

dengan switch terhubung pada kontroller. Dua jenis sensor yang digunakan adalah sensor

laju aliran air dan sensor level air. Keseluruhan hasil pengukuran menjadi masukan bagi

kontroller. Kontroller merespon masukan dengan mengubah laju air dengan menggunakan

control valve. Namun demikian, terdapat pula katup air yang dikendalikan secara manual

untuk simulasi kendali manual. BUS menjembatani hubungan antara data output dari

sensor dengan kontroller, juga hubungan antara kontroller dengan SCADA. PC digunakan

untuk memudahkan monitoring dan pengontrolan sistem secara keseluruhan. PC juga dapat

menggantikan fungsi kontroller.

3.2 Deskripsi Sensor

Biaya pembuatan sensor diusahakan seminimal mungkin. Rumah sensor (casing)

dibuat dari PVC sedangkan  paddlewheelnya dibuat dari resin. Casing dari bahan PVC

lebih ringan daripada yang dibuat dari logam. Awalnya dibuat master untuk paddlewheel

dari bahan PVC, kemudian paddlewheel dicetak dengan bahan resin, meskipun lebih berat

daripada PVC namun dapat diperbanyak dengan murah dan cepat.

Sensor bekerja dengan baik pada kondisi tertentu. Posisi pemasangan sensor yang

baik adalah mendatar (horizontal). Pada posisi ini air yang masuk pada inlet sensor dapat

lebih baik menggerakkan  paddlewheel yang terdapat di dalam sensor, bila posisi sensor

vertikal maka air yang masuk ke inlet mengenai bagian depan  paddlewheel sehingga

 paddlewheel hanya berputar sedikit meskipun laju aliran air yang masuk tinggi, bahkan

 paddlewheel dapat tidak berputar sama sekali. Lihat gambar di bawah ini, saat aliran “A”

mengenai  paddlewheel maka akan mengimbangi aliran “B” sehingga kecepatan sudut

 paddlewheel berkurang. Hal tersebut harus dihindari karena membuat kecepatan sudut

 paddlewheel tidak berbanding lurus dengan laju aliran air.

Gambar 3.3 Sensor pada posisi vertikal

Page 33: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 33/88

 

 Bab III Perancangan dan Implementasi 21 

Sifat saklar buluh (reed switch) penting diamati karena reed switch adalah

pengubah dari gerakan berputar menjadi gelombang kotak yang akan dijadikan input

mikrokontroler. Reed switch adalah saklar yang “closed” bila terkena flux medan magnet

melebihi kerapatan tertentu. Bila jumlah flux magnet yang mengenai reed switch di bawah

flux ambang maka switch ini akan “open”. Kemudian switch tersebut dihubungkan dengan

pin I/O mikrokotroler, beruntung AT90S23213 sudah dilengkapi dengan internal pull-up

resistor yang dapat digunakan untuk mengubah gerakan buka-tutup reed switch menjadi

gelombang kotak.

Gambar 3.4 Penggunaan internal pull-up resistor

Bila switch open maka keadaan pin input “high”, dan bila switch closed maka

keadaan pin input “low”. Gerakan buka-tutup reed switch tidak sempurna dan memang

tidak ada switch yang dapat berpindah state tanpa mengalami pemantulan sesaat

(bouncing). Pada saat terjadi bouncing keadaan saklar berubah-ubah antara buka dan tutup

dengan cepat dan berkali-kali. Gambar di bawah ini menunjukkan perbedaan sinyal kotak 

ideal dengan sinyal kotak sebenarnya yang dihasilkan sensor.

Gambar 3.5 Perbandingan sinyal ideal dengan sebenarnya

Pada pengukuran laju aliran air ini adanya bouncing sangat mengganggu karena

membuat pengukuran panjang gelombang menjadi salah. Pengukuran panjang gelombang

Page 34: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 34/88

 

 Bab III Perancangan dan Implementasi 22 

dimulai saat transisi naik dan diakhiri transisi naik berikutnya. Adanya bouncing akan

membuat mikrokontroler salah mengartikan sinyal dengan menganggap transisi naik 

bouncing sebagai transisi naik sebenarnya, akibatnya hasil perhitungan menunjukkan

frekuensi tinggi. Oleh karena itu diperlukan suatu proses penghilangan pemantulan

(debouncing) untuk menghilangkan gangguan tersebut. Proses penghilangan pemantulan

dipilih secara software.

3.3 Perancangan dan Implementasi Transmitter

Bagian elektronik terdiri dari dua bagian yaitu implementasi hardware dan

perancangan software. Penulis lebih condong memilih “implementasi hardware” daripada

“perancangan hardware” karena hardware transmitter ini relatif sederhana dan banyak 

diambil utuh dari referensi yang sudah ada. Sedangkan untuk software penulis lebih

condong memilih “perancangan software” karena software TA ini “dibuat dari nol”

meskipun ada beberapa rutin yang diambil dari referensi.

Gambar 3.6 Diagram blok transmitter

3.3.1 Implementasi Perangkat Keras

Implementasi hardware mengacu pada batasan masalah pada BAB I, yaitu

menekankan pada minimalisasi biaya pembuatan. Pendekatan yang penulis gunakan adalah

dengan menggunakan komponen sesedikit mungkin, sedangkan pada pembuatan PCB

dengan menggunakan papan 1 lapis (single layer).

Transduser dan Pengkondisi Sinyal

Transduser adalah sebuah saklar buluh (reed switch). Pengkondisi sinyal berupa

 pull-up resistor internal yang sudah tersedia pada mikrokontroler. Dengan menggunakan

 pull-up resistor internal maka tidak diperlukan rangkaian tambahan.

Pengkondisi sinyal yang baik dapat meminimalisir gangguan pada jalur koneksi

dengan sensor.   Reed switch akan menghasilkan bouncing yang akan mengganggu

perhitungan data sehingga harus ada mekanisme debouncing pada pengkondisi sinyal,

Page 35: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 35/88

 

 Bab III Perancangan dan Implementasi 23 

namun karena belum menemukan cara yang tepat dan akan menambah komponen maka

yang dipakai adalah debouncing software.

Mikrokontroler

Alasan menggunakan Atmel AVR AT90S2313 antara lain karena mikrokontroler

ini dapat mengeksekusi hampir semua perintah/instruksi dalam satu siklus clock Hal ini

penting karena alat pemroses data real time harus dapat mengerjakan perhitungan dalam

waktu yang singkat (dibandingkan selang waktu perubahan sinyal).

AT90S2313 berharga murah dan mempunyai fasilitas terbatas, meskipun demikian

fasilitas cocok dengan kebutuhan seperti eksternal interrupt request , internal baud rate

generator , dua buah timer, mempunyai 20 pin sehingga secara fisik berukuran kecil. 

 In-System Programming (ISP) AT90S2313 dapat dengan mudah dibuat dan tidak 

butuh banyak komponen. Penulis menggunakan ISP Funcard (lihat gambar 3.6) karena

rangkaiannya sederhana dan tidak perlu banyak komponen tambahan.

Gambar 3.7 ISP Fun Card

Display LCD Dot Matrix

Display LCD dipilih karena tidak membebani CPU dengan proses multiplexing 

dan lain-lain seperti yang dibutuhkan display seven segment . Semua hal mengenai tampilan

karakter sudah dikerjakan oleh prosesor internal pada modul LCD. Terdapat berbagai

macam merek display LCD di pasaran, namun semua bekerja dengan cara yang sama.

Ada dua macam cara pengiriman atau penerimaan data ke LCD. Pertama dengan

antarmuka 8 bit (8 bit interface), artinya data dikirim atau diterima sekaligus 8 bit ke LCD.

Page 36: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 36/88

 

 Bab III Perancangan dan Implementasi 24 

Untuk cara ini perlu 8+3 pin I/O yaitu 11 pin. Ada 3 pin tambahan yaitu untuk bit RS, RW,

dan EN. Cara kedua dengan antarmuka 4 bit (4 bit interface), pada cara ini data

dikirim/diterima 2 kali masing-masing 4 bit. Untuk cara ini perlu 4+3 pin I/O yaitu 7 pin.

Sehingga cara 4 bit interface lebih hemat pemakaian port IO meskipun proses kirim data

dan perintah dua kali lebih lama daripada 8 bit interface. Pada TA ini digunkan

mikrokontroller AT90S2313 yang hanya mempunyai 15 pin IO maka cara 4 bit interface 

lebih cocok digunakan. 

Gambar 3.8 Antarmuka mikrokontroler dan LCD

Komunikasi Serial RS 485Sistem kendali ini menggunakan beberapa sensor yang terhubung dengan

kontroler, supaya sistem tetap sederhana perlu alat yang dapat menampung banyak 

terminal sekaligus. Salah satu alat yang mampu melakukannya adalah RS485. Tidak 

seperti RS232 yang hanya dapat menghubungkan dua terminal saja Pada RS485 dapat

ditampung sampai dengan 32 terminal dengan baud rate mencapai 115200bps.

Gambar 3.9 Antarmuka mikrokontroler dan MAX485

Pin PB3 dpilih berfungsi menentukan mode komunikasi. Bila PB3 berlogika ‘1’

maka MAX485 berfungsi sebagai driver (mode kirim data), bila PB3 berlogika ‘0’

Page 37: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 37/88

 

 Bab III Perancangan dan Implementasi 25 

MAX485 berfungsi sebagai receiver. Pada setiap saat hanya ada satu alat yang berfungsi

sebagai driver dan alat lainnya harus berfungsi sebagai receiver, bila lebih dari satu

berfungsi sebagai driver maka komunikasi akan gagal.

3.3.2 Perancangan Perangkat Lunak

Penggunaan real time kernel penting dalam pengukuran ini karena data yang

dihasilkan akan dipakai kembali oleh bagian lain. Sistem ini terdiri dari macam-macam alat

seperti pengukur laju aliran air, pengukur tekanan air dan pengukur level air, supaya

system keseluruhan real time maka pengukur laju aliran air juga harus real time. Sehingga

data yang dihasilkan harus terjamin akurasi dan kecepatannya.

Ada beberapa tugas (task ) yang dikerjakan oleh mikrokontroler pada TA ini.

Pertama: mengukur lama antara 2 transisi naik pada sinyal input, maka akan didapat waktu

setengah panjang gelombang. Kedua: membatasi panjang gelombang agar bisa mendeteksi

laju aliran nol. Bila setelah waktu tertentu tidak terdeteksi ada perubahan state maka

frekuensi  paddlewheel dianggap nol. Setelah panjang  gelombang diukur maka

mikrokontroler mengolahnya menjadi dalam satuan laju aliran air yaitu liter/detik. Ketiga:

berkomunikasi dengan alat lain dengan komunikasi serial (UART).

Ketiga task tersebut dieksekusi bila ada pemicu interupsi yang dapat terjadi kapan saja

sehingga task-task tersebut tergolong task  preemptive. Task-task   preemptive tersebut dapat

diatur sehingga bila terjadi dua task  sekaligus maka task  berprioritas lebih tinggi dapat

menunda task  berprioritas rendah, artinya task berprioritas tinggi memesan lebih dulu

( preempt ) task berprioritas lebih rendah.

Mikrokontroler harus menampilkan data hasil perhitungan pada display LCD.

Untuk task ini mikrokontroler mengupdate tampilan setiap selang waktu tertentu, sehingga

task display tergolong task time triggered . Lama selang waktu ini diusahakan ergonomis.

Kernel mengatur task baik secara preemptive maupun cooperative maka kernel initergolong kernel hybrid [10]

Jadi terdapat 4 task yang harus dilakukan oleh mikrokontroler. Karena pengerjaan

task  secara preemptive dan cooperative maka kernel yang mengaturnya disebut kernel

hybrid. Berikut daftar task dan prioritasnya. Alasan pemilihan prioritas task terdapat pada

sub Bab 3.2.3 .

Sumber Interupsi Prioritas Tugas (Task)

External interrupt Request 0 1 Mengukur periodeTimer-1 compare match 2 Time-out pengukuran periode

Page 38: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 38/88

 

 Bab III Perancangan dan Implementasi 26 

Receive Complete Interrupt 3 Komunikasi serial

Timer-0 overflow interrupt 4 Update Display(time triggered )

Tabel 3.1 Prioritas Tugas

Mikrokontroler AVR AT90S2313 mempunyai 10 sumber interupsi. Secara default  

setiap permintaan interupsi akan dilayani kapan saja, asalkan bit sei berlogika ‘1’ dan flag

interupsi yang bersangkutan berlogika ‘1’. Jadi untuk membuat suatu task berprioritas

tertinggi disable-kan semua interupsi lain (sehingga flag yang bersangkutan selalu

berlogika nol). Sedangkan untuk membuat suatu task berprioritas terendah enable-kan

semua interupsi lain dan enable-kan global interrupt (sehingga flag yang bersangkutan

dapat berlogika ‘1’ jika ada kejadian yang memincunya).

Pemilihan Prioritas Task

Task  interupsi eksternal diberi prioritas tertinggi karena hal utama yang diukur

adalah periode dari sensor. Task ini tidak boleh tertunda oleh task lain karena bila tertunda

akan menganggu proses perhintungan di dalamnya. Berikut adalah tabel yang

menunjukkan waktu terlama (kemungkinan terburuk) untuk mengeksekusi task .

.

Task Waktu eksekusi terlama

Pengukuran periode ± 2,1 ms

Komunikasi serial ± 3 ms

Timeout pengukuran periode ± 1 μs

Update display LCD ±1 ms  

Tabel 3.2 Waktu eksekusi terlama

Task komunikasi serial adalah task yang sensitif terhadap interupsi dari task lain.

Pada komunikasi ini penulis menggunakan protokol yang terdiri dari deretan byte. Bila

task sedang menerima byte dari luar dan terinterupsi maka task akan tertunda, penundaan

ini menyebabkan deretan data yang masuk tidak lengkap maka deretan data dianggap salah

oleh rutin interupsi dan komunikasi gagal, oleh karena itu task  ini diberi prioritas nomor

dua.

Task  timeout pengukuran periode dipicu oleh interupsi timer-1 compare. Bila

timer-1 sudah menghitung selama 1 detik maka laju aliran dianggap nol. Bila task  ini

tertunda selama 3ms (waktu task terlama) maka lama penundaan itu tidak berarti bila

dibanding dengan lama 1 detik. Karena task  ini tidak sepenting komunikasi serial maka

task ini diberi prioritas nomor tiga.

Page 39: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 39/88

 

 Bab III Perancangan dan Implementasi 27 

Task  update display LCD dieksekusi berdasarkan interupsi timer-0. Task  update

LCD ini dieksekusi bila interupsi timer-0 sudah terjadi 10 kali dan pada saat itu ada flag

perubahan hasil perhitungan. Pelaksaan task ini tidak menuntut adanya pewaktuan yang

ketat, keterlambatan eksekusi selama beberapa puluh milidetik karena interupsi timer-0

tertunda tidak menjadi masalah bagi penglihatan manusia. Berdasarkan hal di atas interupsi

timer-0 diberi prioritas nomor empat/terendah.

3.3.3 Implementasi Perangkat Lunak

Pada saat sistem dinyalakan kernel menginisialisasi port direction, timer interrupt,

UART baud rate, dan modul LCD. Kemudian setiap ‘ x ’ detik kernel mengeksekusi task 

update LCD. Task  yang event triggered  dalam keadaan terhalang (blocked ), task-task  

tersebut baru dieksekusi bila ada interupsi. Di bawah ini adalah  flowchart  inisialisasi

program.

Gambar 3.10 Flowchart Inisialisasi program

3.2.3.1 Task Pengukuran Periode

Pengukuran frekuensi bisa berdasarkan lamanya low level yang dihasilkan sensor

 paddlewheel. Low level terjadi saat magnet pada  paddlewheel berada segaris dengan reed 

switch, idealnya duty cycle sinyal output dari sensor tetap. Lama low level terjadi dua kali

dalam satu putaran penuh paddlewheel, sehingga cara ini paling optimal untuk pengukuran

Page 40: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 40/88

 

 Bab III Perancangan dan Implementasi 28 

periode sinyal. Tetapi ada ketidakpastian respon buka tutup reed swich karena tergantung

pada kecepatan sudut paddlewheel.

Alternatif lain adalah dengan mengukur lamanya waktu antara  falling/rising edge 

dari sensor. Meskipun cara ini tidak beresolusi setinggi cara pertama namun cara kedua ini

lebih presisi karena duty cycle-nya tidak terpengaruh perubahan kecepatan sudut

 paddlewheel, cara inilah yang dipilih untuk mengukur periode input.

Penjelasan cara mendapatkan konstanta:

•  Paddlewheel berputar 1 putaran penuh, menghasilkan pulsa:

Gambar 3.11 Pulsa sepanjang 1 periode

•  1 Hz berarti paddlewheel berputar 1 kali setiap detik.

•  Jika paddlewheel berputar setengah putaran akan menghasilkan 2 transisi

naik/turun berurutan.

•  Bila dalam 1 detik terjadi 2 transisi naik/turun maka frekuensi paddlewheel = ½

Hz.

•  Frekuensi crystal adalah 11.059.200 Hz, bila frekuensi timer-1 = frekuensi crystal

dibagi (prescale) 1024 maka frekuensi timer-1=10800Hz. Artinya bila timer

menghitung sebanyak 10800 kali maka memakan waktu satu detik.

Bila waktu antara dua transisi sama dengan satu detik maka:

k  f  = T = periode, dalam satuan count timer-1

 Hzk 

 f 2

1

10800==  

5400=k   

Pembagian menggunakan fixed point 24 bit mempunyai jangkauan 0 – 16777216.

Operasi fixed point ini tidak menghasilkan angka dibelakang koma ( pecahan), karena

pecahan masih berupa remainder/sisa. Jadi untuk menghasilkan ketelitian 1 angka

dibelakang koma, nilai k dikali sepuluh, kalau ingin menghasilkan 3 angka dibelakang

Page 41: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 41/88

 

 Bab III Perancangan dan Implementasi 29 

koma maka pembagi harus dikali 1000. Pilih k=5400000 untuk menghasilkan 3 angka

dibelakang koma.

Contoh T=6723, seharusnya F=0,80321…Hz

Jika pembagi tidak dikali terlebih dahulu:

06723

5400== f  + sisa 5400frekuensi dianggap nol

Pembagi dikali 1000 terlebih dahulu:

8036723

5400000== f   

Tinggal tambahkan string “0” dan “,” didepan MSBnya dan string “Hz” dibelakang LSB,

akan didapat: 0.803Hz

Nilai konstanta berlaku untuk menampilkan satuan “Hz” di LCD,

tetapi tidak bisa untuk menampilkan satuan liter/detik. Untuk menampilkan satuan

liter/detik nilai k dikali dengan konstanta lain. Berikut hubungan (mengabaikan distribusi

kecepatan relatif dalam pipa dsb) antara besaran dan konstantanya.

5400000=k 

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

0v f k v b += (ii) ; f = frekuensi paddlewheel

k  f  = (iii)

Substitusi persamaan (ii) ke persamaan(i)

0)( vk  f k k u aba+= ;ganti dan denganak  bk  ck 

0vk  f k u ac += u

Parameter untuk menghitung debit seperti , dan hanya bisa didapat dari

pengujian. Untuk memudahkan perhitungan diasumsikan nol, maka debit tinggal

bergantung kepada sehingga hubungan antara debit dan frekuensi berbanding lurus.

Jadi untuk mendapatkan debit, konstanta k dikali dengan .

ck  ak  0v

0v

ck 

ck 

Awalnya mikrokontroler mendeteksi transisi naik sinyal input. Timer-1 segera

dinyalakan setelah terdeteksi ada transisi naik dan baru berhenti setelah ada transisi naik 

berikutnya. Kemudian nilai count  terakhir timer-1 akan diproses sehingga menghasilkan

frekuensi. Cara tersebut peka terhadap bouncing dari sinyal input. Untuk menghilangkan

Page 42: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 42/88

 

 Bab III Perancangan dan Implementasi 30 

pengaruh bouncing harus ditambah delay beberapa saat. Jadi setelah terdeteksi ada transisi

naik maka timer-1 dinyalakan maka tunggu sesaat baru keluar dari rutin interupsi.

Gambar 3.12 Flowchart pengukuran frekuensi paddlewheel

Operasi Pembagian 24 bit FixedPoint

Operasi ini merupakan bagian dari task pengukuran periode Operasi pembagian 24

bit fixed point dipilih karena ukuran kode yang kecil bila dibandingkan dengan operasi

floating point 32bit. Selain ukuran, operasi fixed point memerlukan waktu eksekusi yang

 jauh lebih singkat daripada floating point.

Kedua sifat fixed point diatas(ukuran dan waktu eksekusi) cocok 

diimplementasikan pada mikrokontroller AT90S2313 karena ukuran flash memory yang

tersedia hanya 2kB dan mikrokontroller harus cukup cepat melakukan operasi

penghitungan karena sistem embedded ini harus dapat menanggapi perubahan input dan

permintaan update data secara real time (event triggered ).

Page 43: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 43/88

 

 Bab III Perancangan dan Implementasi 31 

Gambar 3.13 Flowchart operasi pembagian 24 bit fixed point 

Konversi Biner ke ASCII 

Pada mikrokontroller semua perhitungan terjadi dalam basis 2. Karena isi register

AVR 8 bit maka ada 8 digit biner untuk setiap operasi. Sedangkan untuk keperluan display

dibutuhkan data dalam format decimal, pada display LCD data yang dikiirmkan

menggunakan format ASCII, sehingga data format decimal tadi harus dikonversi dulu

menjadi ASCII. Hal ini dapat dilakukan dengan menambahkan 30h ke tiap digit decimal.

Di bawah ini adalah flowchart konversi 2 byte binary menjadi decimal.

Page 44: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 44/88

 

 Bab III Perancangan dan Implementasi 32 

Gambar 3.14 Konversi 2 Byte Binary ke desimal

Konversi Desimal ke ASCII

Setelah format menjadi desimal selanjutnya format data diubah lagi menjadi

ASCII. Di bawah ini adalah diagram alir ( flowchart ) konversi decimal ke ASCII

Page 45: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 45/88

 

 Bab III Perancangan dan Implementasi 33 

Gambar 3.15 Konversi Desimal ke ASCII

3.3.3.2 Task Pemeriksaan Data Serial

Pada jaringan RS485 sebuah node akan mengirim data ke semua node lain. Misal

ada 4 node dalam sebuah jaringan, node1 ingin mengirim data ke node3, maka node1

mengirim data melalui bus yang terhubung ke semua node, akibatnya node 2,3,dan4

menerima data yang sama. Jadi tiap data yang dikirim harus berisi informasi node sumber

dan node tujuan. Setiap node hanya menanggapi data untuknya saja. Jadi untuk setiap

pengiriman data disertakan juga alamat pengirim, alamat tujuan dan lain-lain sehingga

menjadi sebuah paket pesan (message). Di bawah ini adalah protokol pesan yang kami

pakai.

Gambar 3.16 Paket data pada protokol

Tabel 3.3 Isi tiap byte pada pesan yang dikirim

Byte Jenis Isi

1 Start 255

2 Jumlah 5 atau 83 Source ID 1 sd 4

4 Destination ID 1 sd 4

5 Command 0 sd 6

6 Data1 0 sd 255

7 Data2 0 sd 255

8 Data3 0 sd 255

9 Checksum 0 sd 255

10 Stop 250  

Page 46: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 46/88

 

 Bab III Perancangan dan Implementasi 34 

Tabel 3.4 Keterangan byte command dan byte ID

Command Keterangan A la t ID A la t name

0 Reset 1 Controller1 Meminta kirim data 2 Valve driver

2 Kirim data 3 Flowmeter

3 Set katup absolut 4 Level meter

4 Buka katup relatif 

5 Tutup katup relatif 

6 Hentikan katup

200 Checksum error

Prioritas interupsi UART satu tingkat dibawah prioritas tertinggi. Sistem ini harus

cukup tanggap dengan dalam melakukan komunikasi dengan alat (device) lain. Setiap

mendapat interupsi RXC (Receive complete) mikrokontroler akan memeriksa apakah data

yang masuk merupakan byte start, bila iya maka urutan byte selanjutnya akan disimpan di

memori. Setelah semua tersimpan akan diperiksa byte checksum, jika benar akan diperiksa

byte sumber dan tujuan, jika keduanya cocok dilanjutkan dengan memeriksa byte

command apakah minta kirim data atau simpam data ke EEPROM. Jika byte command

berisi perintah minta kirim data maka mikrokontroler akan mengirim urutan byte ke alat  

sumber yang berisi data hasil perhitungan. Jika byte command berisi perintah simpan data

ke EEPROM, maka byte data tersebut dicopy dari SRAM ke EEPROM. Jika byte

command bukan keduanya maka command tersebut tidak diproses dan mikrokontroler

kembali menunggu interupsi untuk memeriksa byte start. Di bawah ini adalah Flowchart  

pemeriksaan data serial.

Page 47: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 47/88

 

 Bab III Perancangan dan Implementasi 35 

Gambar 3.17 Flowchart periksa komunikasi serial

Page 48: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 48/88

 

 Bab III Perancangan dan Implementasi 36 

3.3.3.3 Task Batas Waktu (time-out) Pengukuran Periode

Task ini dipicu oleh interupsi timer-1 compare match berfungsi membatasi panjang

gelombang yang diukur. Bila transmitter tidak menerima data baru lebih dari satu detik 

maka kemungkinan besar paddlewheel memang tidak berputar, atau mungkin transduser

reed switch rusak.

Gambar 3.18 Flowchart batas waktu pengukuran panjang gelombang

Untuk itu perlu rutin yang dapat mendeteksi hal tersebut, yaitu dengan cara

membandingkan isi timer-1 dengan nilai tertentu yang mewakili 1 detik. Frekuensi timer-

1=10800Hz, maka selama 1 detik timer-1 akan menghitung sampai 10800kali. Jadi isi

timer-1 dibandingkan dengan 10800, bila sudah mencapai nilai tersebut maka kernel akan

mengeksekusi task menampilkan ’00,000’ pada LCD.

3.3.3.4 Task Update Display LCD

Task ini berfungsi menentukan kapan update display LCD dilakukan. Bila

interupsi timer-0 overflow terjadi 10 kali maka kernel memeriksa apakah ada perhitungan

baru, bila ada maka hasil perhitungan akan ditampilkan pada display LCD. Pengecekan‘data baru’ penting karena task  update LCD memerlukan waktu sekitar 3 ms untuk 

menulis karakter-karakter pada LCD, bila data tidak berubah maka tampilannya di LCD

tidak perlu diubah. Berikut flowchart task interupsi timer-0:

Page 49: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 49/88

 

 Bab III Perancangan dan Implementasi 37 

Gambar 3.19 Task update LCD

 Flowchart Inisialisasi LCD

Untuk menggunakan sebuah modul LCD, harus dilakukan inisialisasi terlebih

dahulu untuk menentukan panjang data, jumlah baris LCD yang aktif dan bentuk font.

Inisialisasi dilakukan cukup sekali saja pada pemakaian LCD. Flowchart pada gambar 3.12

menunjukkan proses yang selalu terjadi saat inisialisasi modul LCD dilakukansebelum

masuk ke bagian pengaturan mode. Sistem harus menunggu selama 15 ms atau lebih

setelah catu daya mencapai tegangan 4,5 volt

Page 50: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 50/88

 

 Bab III Perancangan dan Implementasi 38 

Gambar 3.20 Inisialisasi LCD

Setelah proses inisialisasi maka modul LCD siap menerima data untuk ditampilkan

pada layer LCD. Task tulis LCD hanya dieksekusi bila syarat tick timer-0 dan flag tanda

ada hasil perhitungan baru terpenuhi. Berikut flowchart tulis karakter (update) ke LCD:

Page 51: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 51/88

 

 Bab III Perancangan dan Implementasi 39 

Gambar 3.21 Tulis karakter ke LCD

3.4 Alokasi Register dan Memori

AT90S2313 menyediakan 32 byte multipurpose register ,128 byte SRAM dan

EEPROM. Register R16-R32 mendukung operasi immediate(seperti CPI, ANDI, dan ORI)

namun tidak demikian register R0-R15. Register R0-R15 hanya mendukung operasi antara

dua register. R16-R32 dapat digunakan untuk operasi yang menggunakan data dari flash

memory.

Register Fungsi

R0 Tempat data sementara untuk komunikasi serial

R1

R2

R3

R4

R5

R6

R7

Operasi Pembagian

Page 52: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 52/88

 

 Bab III Perancangan dan Implementasi 40 

R8

R9Konversi Heksa Menjadi Desimal

R10

R11 Checksum

R12

R13

R14Tempat Data dan Alamat EEPROM

R15

R16

R17Dapat dipakai semua task

R18

R19

R20

R21

Operasi Pembagian(membutuhkan immediate addressing)

R22

R23Pewaktuan Display LCD

R24 Status INT0 dan UART

R25

R26(XL)

R27(XH)

Operasi Pembagian(membutuhkan pointer SRAM)

R28(YL)

R29(YH)Pointer SRAM

R30(ZL)

R31(ZH)Pointer SRAM dan Flash(khusus LCD)

Gambar 3.22 Alokasi Register

SRAM digunakan sebagai penyimpan data sementara bila tidak ada tempat lagi di

Register. Proses baca-tulis SRAM membutuhkan pointer untuk menunjukkan alamatnya,

register yang dapat digunakan sebagai pointer SRAM adalah register X,Y, dan Z. SRAM

  juga digunakan sebagai tempat penyimpanan stack (informasi saat operasi jump). Stack 

dimulai di alamat SRAM paling bawah dan akan mengisi alamat diatasnya bila ada data

baru. Alamat data sementara diusahakan jauh dari alamat mulai stack, jika tidak stack 

dapat menimpa data sementara sehingga mengacaukan task yang bersangkutan. Di bawah

ini adalah tabel alokasi SRAM.

Page 53: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 53/88

 

 Bab III Perancangan dan Implementasi 41 

0x0060

0x0068

0x0070

0x0078

0x0080

0x0088

0x0090

0x0098

0x00A0

0x00A8

0x00B0

0x00B8

0x00C0

0x00C80x00D0

0x00D8

Stack

SRAM

Hasil pembagian (ASCII)

Penyimpan data sementara dari komunikasi serial

temp EEPROM

 Gambar 3.23 Alokasi SRAM

Page 54: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 54/88

 

 Bab IV Pengujian dan Analisis 42 

BAB IV

PENGUJIAN DAN ANALISIS

Bab ini menjelaskan pengujian sistem pada berbagai keadaan. Kemudian hasil tersebut

pengujian dianalisis sehingga masalah yang ditemukan setelah pengujian dapat diketahui.

4.1 Pengujian karakteristik reed switch pada berbagai macam frekuensi

Pengujian ini dilakukan untuk, megetahui karakteristik sensor reed switch seperti

bentuk sinyal terhadap frekuensi  paddlewheel. Untuk menguji hal ini, kedua kaki reed switch

dihubungkan ke resistor pull-up. Sebuah osiloskop analog dipergunakan untuk mengamati

bentuk gelombang keluaran. Gambar 4.1 memperlihatkan setup dari pengujian ini.

Vcc

Arah putarkincir

Mikrokontroler

Reed switch

Osiloskop Magnet permanen

 

Gambar 4.1 Skema pengujian reed switch

Pengujian ini gagal dilakukan karena osiloskop analog membutuhkan frekuensi sinyal

input yang tetap agar gambar diam. Penulis memutar paddlewheel dengan tangan sehingga

mustahil mendapat frekuensi yang tetap.

Namun dari pengamatan hasil ukur alat didapat bahwa nilai frekuensi paddlewheel

berubah-ubah dengan cepat. Penulis mencoba dengan memutar paddlewheel perlahan-lahan,

kira-kira satu putaran per detik agar mendapat hasil ukur sekitar 1 Hz namun hasil ukur

menunjukkan 2 Hz kemudian lompat menjadi 25 Hz kemudian turun menjadi 8 Hz dan lain-

Page 55: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 55/88

 

 Bab IV Pengujian dan Analisis 43 

lain yang sama sekali tidak mendekati 1 Hz. Jadi penulis menyimpulkan terjadi bouncing pada

reed switch. Penyebab bouncing antara lain:

1.  Karakter reed switch yang bersangkutan.  Reed switch yang dipakai dapat digantikan oleh

reed switch dengan Hg.

2.  Getaran pada paddlewheel. Getaran tersebut menyebabkan medan magnet yang mengenai

reed switch tidak mulus akibatnya buka-tutup reed switch tidak mulus, hal tersebut dapat

diatasi dengan menggunakan bantalan (bearing) pada sumbu paddlewheel.

Dengan pertimbangan waktu dan biaya pelaksanaan Tugas Akhir, maka penulis mengatasi

masalah bouncing pada level perangkat lunak. Hal ini dilakukan dengan menambahkan waktu

tunda (delay) pada program pengukur panjang gelombang untuk menghilangkan bouncing

tersebut. Awalnya di setiap transisi naik dan turun ditambahkan delay 1 ms namun hasil

pengukuran masih naik-turun tak beraturan. Setelah delay ditambah menjadi 2 ms baru hasil

pengukuran menunjukkan kira-kira 1 Hz dan sudah tidak ada lonjakan hasil pengukuran lagi

namun frekuensi tertinggi yang dapat diukur dengan benar hanya 5,8 Hz.

4.2. Pengujian Perangkat Lunak

Pengujian perangkat lunak dilakukan untuk mengukur unjuk kerja sistem pengukuran

laju aliran fluida yang terdeteksi pada  paddlewheel. Pengujian ini dilakukan dalam dua tahap.

Pertama pengujian secara simulasi, dengan menggunakan pembangkit sinyal (signal

generator ) yang mensimulasikan  paddlewheel. Kedua pengujian menyeluruh dengan

menggunakan paddlewheel yang telah dibuat.

4.2.1 Pengujian dengan masukan dari pembangkit sinyal.

Pengujian ini dilakukan untuk mengetahui unjuk kerja sistem dalam mengukur

frekuensi. Sebuah pembangkit sinyal (Goodwill Instrument GFG-80220G) digunakan untuk 

mensimulasikan sensor  paddlewheel dan diumpankan ke alat ukur. Selain itu, pembangkit

sinyal juga diukur dengan menggunakan osiloskop (Scopemeter PM9750) sebagai referensi.

Keseluruhan konfigurasi pengujian diperlihatkan pada gambar 4.2.

Page 56: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 56/88

 

 Bab IV Pengujian dan Analisis 44 

Gambar 4.2 Skema pengujian dengan pembangkit sinyal

Penulis mengasumsikan hasil ukur osiloskop (Scopemeter PM9750) jauh lebih akurat

diantara ketiga alat di atas. Bila pembangkit sinyal menunjukkan 2 Hz maka seharusnya alat

ukur menunjukkan setengahnya yaitu 1 Hz (karena alat ukur menganggap dua transisi naik 

sebagai 0.5 Hz). Hasil pengujian adalah seperti diperlihatkan pada tabel 4.1.

Tabel 4.1 Hasil pengujian alat dengan input dari pembangkit sinyal

SampelHasil Ukur

Osiloskop(Hz)

Hasil Ukur Alat

(Hz)

1 0.952380952 0.937

2 1.428571429 1.348

3 1.904761905 1.891

4 2.380952381 2.355

5 2.857142857 2.851

6 3.333333333 3.389

7 3.80952381 3.752

8 4.285714286 4.33

9 4.761904762 4.83

10 5.238095238 5.389

11 5.714285714 5.844  

Dari tabel 4.1. dapat dibuat grafik hasil alat ukur terhadap frekuensi sensor. Kemudian

dibuat regresi linier dari semua titik. Gambar 4.2. memperlihatkan kurva hasil pengujian dan

hasil regresi liniernya. Dari kurva regresi dapat diketahui bahwa hasil ukur alat merupakan

fungsi linier terhadap frekuensi masukan, dengan bentuk model matematis seperti pada

persamaan 4.1.

 Hasil Ukur = 1,0379 f masukan – 0.1037  ..................................... (4.1) 

Page 57: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 57/88

 

 Bab IV Pengujian dan Analisis 45 

Selanjutnya, persamaan (4.1) dipergunakan untuk menghitung keluaran ideal pengukur

yang akan dijadikan referensi dalam perhitungan galat (error ) pengukuran. Galat pengukuran

dapat dihitung dengan persamaan (4.2). Hasil perhitungan diperlihatkan pada tabel 4.2.

( ) ( )( )

%100alatukurhasillinierregresi

alatukurhasilalatukurhasillinierregresi×

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

y = 1.0379x - 0.1037

0

1

2

3

4

5

6

7

0 2 4 6

Hasil ukur osiloskop

   H  a  s   i   l  u   k  u  r

  a   l  a   t

Series1

Linear (Series1)

 

Gambar 4.3 Kurva hasil ukur alat vs hasil ukur osiloskop

Tabel. 4.2. Hasil perhitungan galat pengukuran frekuensi.

SampelHasil Ukur

Osiloskop(Hz)

Hasil Ukur Alat

(Hz)

Hasil Ukur Alat

ideal (y fungsi)error error(% )

1 0.952380952 0.937 0.884776 -0.05222 -5.90249

2 1.428571429 1.348 1.379014 0.031014 2.249018

3 1.904761905 1.891 1.873252 -0.01775 -0.94742

4 2.380952381 2.355 2.36749 0.01249 0.527583

5 2.857142857 2.851 2.861729 0.010729 0.374898

6 3.333333333 3.389 3.355967 -0.03303 -0.984327 3.80952381 3.752 3.850205 0.098205 2.550637

8 4.285714286 4.33 4.344443 0.014443 0.332444

9 4.761904762 4.83 4.838681 0.008681 0.179407

10 5.238095238 5.389 5.332919 -0.05608 -1.0516

11 5.714285714 5.844 5.827157 -0.01684 -0.28904  

Page 58: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 58/88

 

 Bab IV Pengujian dan Analisis 46 

Standard deviasi dari prosentase galat = 2,218642. Dengan mengetahui nilai standard

deviasi maka dapat dihitung akurasi dari pengukur dalam mengukur frekuensi. Berdasarkan

tabel statistik Student-T pada jumlah sampel 11 diperoleh nilai akurasi pada beberapa level

konfiden, seperti diperlihatkan pada tabel 4.3.

Tabel 4.3. Hasil perhitungan akurasi pengukuran frekuensi pada beberapa level konfiden

No Standard Dev Level Konfiden Konstanta Student-T Akurasi

1 2,218642 68,3 % 1 2,218642

2 2,218642 95 % 2,201 4,883231

3 2,218642 99 % 3,106 6,891101

Berdasarkan pada tabel 4.3. dapat disimpulkan bahwa akurasi perangkat yang dibuat

dalam mengukur frekuensi adalah kurang dari 5% reading pada level konfiden 95% atau

kurang dari 7% reading pada level konfiden 99%. Nilai tersebut dianggap cukup baik untuk 

dipergunakan dalam keseluruhan sistem eksprimentasi.

4.2.2 Pengujian dengan masukan dari sensor

Pengujian ini dilakukan untuk mengukur unjuk kerja sistem dalam pengukuran laju

aliran fluida. Konfigurasi pengujian diperlihatkan pada gambar 4.4. Pengujian dilakukan

dengan mengalirkan air melalui sensor  paddlewheel dan selanjutnya ditampung dengan gelas

ukur. Dengan asumsi bahwa laju aliran air oleh pompa dianggap konstan, maka referensi

pengukuran laju aliran adalah volume air terukur pada gelas ukur dibagi dengan waktu yang

diperlukan. Ketidak-pastian pengukuran volumetrik dan pengukuran waktu dianggap tidak 

signifikan dibanding ketidak-pastian alat ukur yang dibuat sehingga dapat diabaikan. Kedua

asumsi ini diambil karena dalam perancangan awal, laju aliran ini akan diukur menggunakan

tabung ukur yang volumetrik dan waktunya diukur menggunakan sistem pengukur level.

Namun hingga Tugas Akhir ini diselesaikan, perangkat ini belum dapat diselesaikan dengan

baik.

Page 59: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 59/88

 

 Bab IV Pengujian dan Analisis 47 

Gambar 4.4 Susunan alat untuk pengujian sensor

Daya hisap pompa diubah-ubah dengan mengatur besar tegangan catu yangdiumpankan ke pompa. Semakin besar daya hisap sensor semakin cepat laju aliran yang

dihasilkan. Air yang melewati sensor ditampung di gelas ukur dan waktu untuk mencapai

volume tertentu diukur. Hasil pengujian diperlihatkan pada tabel 4.4.

Tabel 4.4 Hasil pengujian alat dengan input dari sensor

Frekuensi sensor(Hz) Volume/Tegangan

Waktu(s) 1 2 3 Rata-rata

Laju aliranRata-rata

8.59 1.4 1.2 1.1 1.233333 93.13155

8.52 1.4 1.5 1.3 1.4 93.896718.36 1.4 1.47 1.36 1.41 95.69378

800ml/140V

8.29 1.57 1.47 1.35 1.463333 96.50181

8.17 1.65 1.55 1.49 1.563333 97.91922

8.12 1.58 1.56 1.47 1.536667 98.52217800ml/160V

8.06 1.7 1.6 1.8 1.7 99.25558

8.23 1.3 1.4 1.3 1.333333 97.20535

8.13 1.6 1.7 1.54 1.613333 98.40098800ml/180V

8.17 1.6 1.5 1.4 1.5 97.91922

8.02 1.8 1.9 1.7 1.8 99.75062800ml/220V

8.1 1.8 1.7 1.6 1.7 98.76543

5.1 1.7 1.6 1.5 1.6 98.03922

5.16 1.6 1.5 1.43 1.51 96.89922500ml/140

5.2 1.65 1.57 1.48 1.566667 96.15385

5.31 1.4 1.2 1.17 1.256667 94.16196

5.18 1.58 1.47 1.42 1.49 96.5251500ml/180ml

5.26 1.38 1.41 1.28 1.356667 95.05703

Page 60: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 60/88

 

 Bab IV Pengujian dan Analisis 48 

Dari tabel 4.4. dapat dibuat grafik laju aliran rata-rata terhadap frekuensi sensor rata-

rata. Kemudian dibuat regresi linier dari semua titik. Gambar 4.5. memperlihatkan kurva hasil

pengujian dan hasil regresi liniernya. Dari kurva regresi dapat diketahui bahwa hasil ukur alat

merupakan fungsi linier terhadap frekuensi sensor, dengan bentuk model matematis seperti

pada persamaan 4.3.

 Laju aliran rata-rata = 10,902 f sensor rata-rata + 80,505 ..................................... (4.3)

Selanjutnya, persamaan (4.3) dipergunakan untuk menghitung keluaran ideal pengukur

yang akan dijadikan referensi dalam perhitungan galat (error ) pengukuran. Galat pengukuran

dapat dihitung dengan persamaan (4.4). Hasil perhitungan diperlihatkan pada tabel 4.5.

( ) ( )( )

%100ratat-rataaliranlajulinierregresi

rata-rataaliranlajurata-rataaliranlajulinierregresi×

−=galat  ...........(4.4)

y = 10.902x + 80.505

92

93

94

95

96

97

98

99

100

101

1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2

frekuensi sensor (Hz)

   l  a   j  u  a   l   i  r  a  n   (  m   l   /  s   )

Series1

Linear (Series1)

 

Gambar 4.5 Kurva hasil pengujian laju aliran vs frekuensi sensor

Tabel 4.5 Hasil perhitungan galat pengukuran frekuensi sensor.

Frekuensi sensor (Hz) Volume/Tegangan

Waktu(s) 1 2 3 Rata-rata

LajuRata-rata

y fungsi galat(% )

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

Page 61: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 61/88

 

 Bab IV Pengujian dan Analisis 49 

8.52 1.4 1.5 1.3 1.4 93.89671 95.76 1.945788

8.36 1.4 1.47 1.36 1.41 95.69378 95.869 0.18277

8.29 1.57 1.47 1.35 1.463333 96.50181 96.45033 -0.05337

8.17 1.65 1.55 1.49 1.563333 97.91922 97.54033 -0.38844

8.12 1.58 1.56 1.47 1.536667 98.52217 97.24967 -1.30849800ml/160V

8.06 1.7 1.6 1.8 1.7 99.25558 99.03 -0.22779

8.23 1.3 1.4 1.3 1.333333 97.20535 95.03333 -2.28553

8.13 1.6 1.7 1.54 1.613333 98.40098 98.08533 -0.32181800ml/180V

8.17 1.6 1.5 1.4 1.5 97.91922 96.85 -1.10399

8.02 1.8 1.9 1.7 1.8 99.75062 100.12 0.368934800ml/220V

8.1 1.8 1.7 1.6 1.7 98.76543 99.03 0.267159

5.1 1.7 1.6 1.5 1.6 98.03922 97.94 -0.1013

5.16 1.6 1.5 1.43 1.51 96.89922 96.959 0.06165500ml/140

5.2 1.65 1.57 1.48 1.566667 96.15385 97.57667 1.458157

5.31 1.4 1.2 1.17 1.256667 94.16196 94.19767 0.0379085.18 1.58 1.47 1.42 1.49 96.5251 96.741 0.223177500ml/180ml

5.26 1.38 1.41 1.28 1.356667 95.05703 95.28767 0.242038 

Standard deviasi dari prosentase galat = 0,954447. Dengan mengetahui nilai standard

deviasi maka dapat dihitung akurasi dari pengukur dalam mengukur frekuensi. Berdasarkan

tabel statistik Student-T pada jumlah sampel 18 diperoleh nilai akurasi pada beberapa level

konfiden, seperti diperlihatkan pada tabel 4.6.

Tabel 4.6. Hasil perhitungan akurasi pengukuran frekuensi pada beberapa level konfiden

No Standard DevLevel

Konfiden

Konstanta

Student-TAkurasi

1 0,954447 68,3 % 1 0,954447

2 0,954447 95% 2,101 2,005,294

3 0,954447 99% 2,878 2,746,898

Pengujian dengan cara ini mempunyai kelemahan yaitu rentang pengujian hanya dari

frekuensi 1,23Hz s.d 1,8Hz. Sedangkan rentang pengukuran adalah 0,5 Hz s.d 5,8Hz. Untuk 

frekuensi di bawah 1,25 Hz belum bisa diuji karena pompa hanya dapat bekerja pada tegangan

minimal 140V yang menghasilkan frekuensi minimal 1,25Hz. Dari pengamatan terlihat bahwa

saat sensor dipenuhi air frekuensi  paddlewheel menurun, artinya laju aliran air memang tidak 

dapat terlalu tinggi.

Jika  paddlewheel tidak berputar maka akan terukur sebagai laju aliran 80 ml/s. Hal

tersebut jelas merupakan kesalahan karena seharusnya laju aliran yang terukur adalah 0 ml/s.

Page 62: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 62/88

 

 Bab IV Pengujian dan Analisis 50 

Penulis mengasumsikan laju aliran sama dengan 0 ml/s bila frekuensi  paddlewheel yang

terukur sama dengan 0Hz. Jadi rentang pengukuran laju aliran air adalah:

Tabel 4.7 Rentang pengukuran laju aliran air

Frekuensipaddlewheel

Frekuensi menurutalat ukur (Hz)

Laju aliran menurut alat ukur(ml/s)

0 - 0,49 Hz 0 Hz 0 ml/s

0,5 - 5,7 Hz 0,5 - 5,7 Hz 85.95 - 143.72 ml/s

4.3. Pengujian komunikasi

Pengujian ini dilakukan untuk menguji keberhasilan komunikasi serial. Pengujian

dilakukan dengan tiga cara, yang pertama pengujian perintah meminta kirimkan data, kedua

pengujian perintah simpan data di EEPROM, dan yang ketiga pengujian komunikasi antar

RS485.

Pengujian pertama dan kedua menggunakan PC yang dihubungkan dengan alat ukur.

Penulis menggunakan program “Terminal v1.9b” untuk mengirim data dari dan ke komputer

Gambar 4.6 memperlihatkan setup dari pengujian ini. Sedangkan pada pengujian ketiga

digunakan sepasang perangkat komunikasi RS485 yang terhubung melalui sebuah jalur bus.

Gambar 4.10 memperlihatkan setup dari pengujian ketiga ini.

Gambar 4.6 Skema pengujian komunikasi antara PC dengan alat ukur

1. Uji perintah meminta kirim data:

Bila kontroler ingin alat ukur ini mengirimkan data hasil perhitungan maka harusdengan mengirim urutan byte sebagai berikut “255 005 001 003 001 010 250” yang sudah

disepakati bersama. Bila semua urutan benar maka alat ini akan mengirim balik “255 007 003

001 006 *** *** *** 250”. Isi byte ke 6,7,8 tergantung dari hasil perhitungan mikrokontroler

terakhir.

Page 63: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 63/88

 

 Bab IV Pengujian dan Analisis 51 

Program Terminal v1.9b mempunyai fasilitas mengirim macro, dengan fasilitas ini

pengguna dapat mengirim beberapa byte data sekaligus dari PC ke sebuah alat lain. Selain itu

program ini mempunyai layar “receive” untuk menampilkan byte data yang diterima PC.

Gambar 4.7 memperlihatkan program Terminal v1.9b saat PC mengirim pesan yang berisi

“meminta kirim data” ke alat yang terhubung ke Port COM 1.

Gambar 4.7 Tampilan program Terminal v1.9b saat menguji pesan yang berisi “meminta kirim data”

Dari gambar terlihat layar “receive” berisi tulisan “FF 07 03 01 06 FF FF 95” yang

sama dengan “255 007 003 001 006 255 255 149 250”. Sehingga dapat disimpulkan bahwa

perintah meminta kirim data berhasil.

Page 64: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 64/88

 

 Bab IV Pengujian dan Analisis 52 

2. Uji perintah simpan data di EEPROM.

Pengujian ini untuk memastikan pengiriman data konstanta sudah benar, karena

kalibrasi sensor dilakukan pada kontroler. Untuk keperluan pengujian kontroler dapat diganti

dengan PC. Program Terminal v1.9b digunakan untuk mengirim urutan byte sebagai berikut

“255 005 001 003 001 010 250”.

Pada pengujian ini dikirim tiga byte data yaitu 82(52h), 101(65h), dan192(C0h).

Program pada alat ukur diatur agar mengirim nilai cheksum bila data yang diterima berisi

perintah simpan data di EEPROM. Kemudian data yang masuk disimpan di EEPROM pada

alamat 00h sampai 02h, kemudian program mengirim data ‘255’ ke PC untuk verifikasi data

sudah disimpan. Gambar 4.8 memperlihatkan program Terminal v1.9b saat PC mengirim

pesan yang berisi “simpan data di EEPROM” ke alat yang terhubung ke Port COM 1.

Gambar 4.8 Pengiriman data ke EEPROM

Page 65: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 65/88

 

 Bab IV Pengujian dan Analisis 53 

Gambar di atas menunjukkan bahwa PC menerima 133 dan 255 artinya alat ukur

tersebut sudah menyimpan data di EEPROM. Untuk memastikan bahwa data benar-benar

sudah disimpan di EEPROM maka isi harus dibaca. Penulis menggunakan program ICprog

versi 1.05A yang terhubung ke alat ukur melalui Port paralel. Berikut hasil pembacaan

EEPROM pada mikrokontroler setelah menerima dan menyimpan data ke EEPROM.

Gambar 4.9 Hasil pembacaan EEPROM

Dari gambar di atas terlihat isi EEPROM pada alamat 00 sampai 02 adalah berturut-

turut 52, 65, dan C0 (heksadesimal). Isi EEPROM tersebut sesuai dengan data yang dikirim

melalui komunikasi. Hal tersebut menunjukkan bahwa perintah simpan data di EEPROM

berhasil.

Page 66: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 66/88

 

 Bab IV Pengujian dan Analisis 54 

3. Pengujian komunikasi antar RS485.

Pengujian ini dilakukan untuk menguji komunikasi antar device. Untuk keperluan pengujian

ini penulis menggunakan dua rangkaian sistem pengukuran laju aliran air, yang kemudian

dihubungkan satu sama lain seperti gambar di bawah ini.

Gambar 4.10 Skema pengujian komunikasi antara 2 node

Pengujian dilakukan dengan : node 1 mengirim data serial (pesan 7byte) yang berisi

perintah mengirimkan data hasil perhitungan. Program pada node 2 diatur sehingga akan

menampilkan “Ok” pada LCD bila menerima pesan 7byte yang benar (benar source,

destination, command dan checksumnya). Hasil pengujian menunjukkan bahwa node 2 dapat

menanggapi input pesan serial dengan menampilkan “Ok” pada LCD dan node tidak 

menanggapi input yang salah.

Page 67: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 67/88

 

 Bab V Kesimpulan dan Saran 55

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Setelah melakukan proses perancangan, implementasi, pengujian dan analisis alat

pengukur laju aliran maka penulis dapat menarik kesimpulan:

1. Transmitter ini dapat bekerja mengukur frekuensi putaran kincir dan laju aliran,

mampu menerima dan merespon perintah meminta kirim data, dan simpan data 

melalui bus komunikasi RS485.

2. Transduser reed switch menghasilkan bouncing yang mengganggu pengukuran. Proses

debouncing telah diimplementasikan secara software dengan menambah delay pada

rutin pengukuran. Namun demikian, metoda debouncing ini mengakibatkan frekuensi

 paddlewheel maksimum yang dapat diukur dengan benar hanya 5,8 Hz, sehingga akan

mengurangi rentang pengukuran.

3. Pengujian pada pengukuran frekuensi pembangkit sinyal memperlihatkan bahwa alat

menghasilkan galat pengukuran sekitar 6,9% pada tingkat keyakinan 99%.

4. Hasil pengujian pengukuran laju aliran air, menunjukkan bahwa alat yang dibuat

menghasilkan galat sebesar kurang dari 3% pada tingkat keyakinan 99%. Rentang

pengukuran yang diperlihatkan oleh alat adalah pada 85 – 143 ml/detik. Sebagai

catatan bahwa hasil ini masih diperoleh dengan asumsi ketidak-pastian pengukuran

volumetrik dan pengukuran waktu dianggap tidak signifikan dibanding ketidak-pastian

alat ukur

5.2 Saran

Sistem pengukuran laju air ini masih memiliki kelemahan yang bisa diatasi di masa

dating, sehingga dapat menjadi sistem yang lebih baik. Adapun beberapa hal yang harus

diperhatikan antara lain:

1. Pengujian yang lebih baik dilakukan dengan cara menyatukan 3 alat dalam sistem

kendali ini menjadi satu (driver katup, pengukur laju aliran air dan pengukur

ketinggian air)

Page 68: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 68/88

 

 Bab V Kesimpulan dan Saran 56

2. Memakai fasilitas sleep pada mikrokontroler yang memungkinkan mikrokontroler

tidak aktif selama tidak ada interupsi. Jika fasilitas tersebut digunakan maka dapat

menghemat konsumsi listrik.

3. Memakai watchdog timer pada mikrokotroler yang dapat digunakan untuk mereset  

mikrokontroler bila mikrokotroler sedang hang.

4. Semua pin mikrokotroler yang tidak terpakai dihubungkan dengan konektor, sehingga

pin-pin tersebut dapat digunakan bila suatu saat diperlukan.

5.  Debouncing menggunakan hardware.

6. Transduser reed switch dapat diganti dengan   Hall Effect Switch untuk mengatasi

bouncing.

7.  Frekuensi  paddlewheel terkecil yang dapat diukur adalah 0,5 Hz. Supaya dapat

mengukur frekuensi yang lebih rendah jumlah magnet permanen yang ditanam di

 paddlewheel harus ditambah.

Page 69: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 69/88

 

  54

 

DAFTAR PUSTAKA

[1] AVR200 Multiply and Divide Routines, http://atmel.com/dyn/resources

 /prod_documents/DOC0936.PDF

[2] Datasheet AT90S2313, http://atmel.com/dyn/resources/prod_documents

 /DOC1630.PDF

[3] Datasheet PC1601A-L, http://www.p-tec.net/PC1601A(LCD).pdf 

[4] Datasheet MAX 485, http:// www.ortodoxism.ro/datasheets/maxim  /MAX1487-

MAX491.pdf 

[5] FlowmeterTutorial, http://www.omega.com/techref/pdf/FlowMeterTutorial.pdf 

[6] Johan, Willy. Laporan Tugas Akhir: Perancangan sistem realtime dengan

kernel cooperative pada pengukur salinitas air laut . Departemen Teknik Elektro

ITB, 2004

[7] http://www.avrasm-tutorial.com/avr_en/index.html

[8] http:/www.bray.velenje.cx/avr/terminal[9] http://www.kalinskyassociates.com/Wpaper1.html

[10] http://www.qsl.net/pa3ckr/bascom%20and%20avr/rs232/ 

[11] Kurniawan, Rizky.   Laporan Tugas Akhir:  System embebbed dengan kernel

 preemptive pada level meter. Departemen Teknik Elektro ITB, 2003 [12] Laplante, Jean J. Real Time System Design and Analysis. 2

nded. New York: IEEE

Press, 1997

[13] Nalwan, Paulus Andi. Panduan Praktis Penggunaan dan Antarmuka Modul LCD

 M1632. Jakarta: PT Elex Media Komputindo, 2004

[14] Pont, Michael J. Pattern For Time Triggered Embedded System. London:

Addison-Wesley, 2001

[15] Pratomo, Andi. Panduan Praktis PemrogramanAVR Microkontroler AT90S2313.

Yogyakarta: ANDI, 2005

Page 70: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 70/88

 

A.  Skema Rangkaian

Page 71: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 71/88

 

 B. Layout PCB(100%)

Page 72: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 72/88

 

C. Gambar Rangkaian

D. Susunan Alat Untuk Pengujian Sensor

Page 73: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 73/88

 

D. Rincian Biaya Pembuatan Rangkaian

Komponen Jumlah Harga satuan Harga

AT90S2313 1 22500 22500

MAX485 1 17500 17500

7805 1 1500 1500

Crystal 1 2500 2500

Resistor 2 100 200

Kapasitor polar 2 200 400

Kapasitor keramik 2 150 300

Saklar 1 500 500

Header 3pin 1 750 750

Header 4 pin 1 1000 1000

Header 5pin 1 1750 1750

Biaya Film PCB 1 5000 5000

Biaya Cetak PCB 1 2500 2500

Total 56400

 

Page 74: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 74/88

 

 

E. Source Code Program

;========================================

.include"2313def.inc"

.def xm =r1

.def reml =r2 ;remainderl

 

.def remm =r3

.def remh =r4

;.def divresl=r26 ;division

result

;.def divresm=r27

.def divresh=r7

.def rBin2H =r8 ;dipakai

rutin division

.def rBin2L =r9

.def chs =r11 ;checksum, rutin

check_uart

.def eep_addr =r13

.def eep_data =r14

;****************************************

.def temp =r16 ;Multi purpose

register,semuanya data sementara

.def tempa =r17 ;

.def dividendL=r18 ;konstanta

.def dividendM=r19

.def dividendH=r20

.def loopcounter=r21

.def tempb =r22 ;untuk counter

timer0 overflow isr(tdk boleh diubah)

.def statusjuga =r23;utk timing

disp lcd

.def status =r24 ;penting!!!,

dipake ISR

;bit 0 : 0=falling

edge ,1 =rising edge ;bit1-7 untuk uart

.equ baudrate=11 ;143=4800bps

11=57600 5=115200bps

.equ prescale=0x05

;.equ prescale=0x01

.equ kL =0x30 ;konstanta

frekuensi/kecepatan=149970

.equ kM =0xd0 ;kl duty cycle 50%

k=5265C0

.equ kH =0x59

.equ mem =0x0060 ;alamat bin2ascii,

alamat data lcd

.equ uart_address=0x0070

.equ eeprom_address=0x0080 ;tempat

konstanta k eeprom di sram

;lcd parameter************************

.EQU ftakt =11059200 ; Frequency

STK500 internal clock

.EQU cdivtc1 =6875 ; Dibvider for TC1

.EQU cdiv1s =67 ; Divider for 1 s

.EQU pLcdPort =PORTb ; LCD connected to

PORT A

.EQU pLcdDdr =DDRb ;

Datenrichtungsregister LCD-Port

.DEF rint =R15 ; Interrupt temp

register

.EQU cLcdWrite=0b11111111 ; Data

direction write the LCD

.EQU cLcdDummy=0b00111000 ; Dummy-

Function-Word

.EQU mLcdRs =0b00000001 ; RS-BitMask

.EQU bLcdEn =2 ; Enable Bit

.EQU c1s =200 ; Wait at start-up

time (200 * 5 ms)

.EQU c5ms =ftakt/1000 ; 1 ms Wait

after each control word

.EQU c50us =ftakt/100000 ; 10 us

Wait after each char

.MACRO enactive

nop

nop

nop

nop

nop

nop

nop.ENDMACRO

;****************************************

.cseg

.org $0000

rjmp reset

.org $0001

rjmp int0_ISR ;external

interupt service

.org $0004

rjmp tim_comp1 ;buat

timeout timer1

.org $0006

rjmp tim_ovf0 ;coop task

.org $0007

rjmp uart_rxc ;uart

service

reset:

ldi temp,low(ramend)

out spl,temp

clr tempb

clr statusjuga

clr status

rcall clear_sram

rcall lcd4init

rcall port_init

rcall init_int0_rising

rcall display_mem

rcall dispdate

rcall load_eeprom ;eeprom-

>mem

rcall init_timer_service

rcall start_timer0 ;start

timer0 service

ldi temp,baudrate ;setting

baud rate

out UBRR,temp

Page 75: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 75/88

 

sbi ucr,7

sbi ucr,4

sei

ldi temp,0x31

mov r0,temp

rcall b_transmit

loop: rjmp loop

;****************************************

int0_ISR: ;(prioritas no 1)

sbrs statusjuga,1

rjmp rise1_handler ;status=0

rjmp fall1_handler ;status=1

rise1_handler:

rcall start_timer1

ldi temp,20

rise1_delay:

rcall LcdDelay5ms

dec temp

cpi temp,0

brne rise1_delay

rcall init_int0_fallingori statusjuga,0b00000010

reti

fall1_handler:

sbrs statusjuga,2

rjmp belum_fall

rjmp rise2_handler

belum_fall:

ldi temp,1

fall1_delay:

rcall LcdDelay5ms

dec temp

cpi temp,0

brne fall1_delay

rcall init_int0_risingori statusjuga,0b00000100

reti

rise2_handler:

ldi temp,0x00 ;matiin

timer1 utk debugging

out TCCR1B,temp

in XL,TCNT1L

in XM,TCNT1H

;in temp,tcnt1h

;cpi temp,1

;brlo fall2_deb

rcall start_timer1

ldi temp,20

rise2_delay:rcall LcdDelay5ms

dec temp

cpi temp,0

brne rise2_delay

rcall hitung_frekuensi

rcall init_int0_falling

ori statusjuga,0b00000001

;brarti udah ada data baru

andi statusjuga,0b11111011

;spy di int selanjutnya meriksa

fall dulu

fall2_end:

reti

fall2_deb:

ldi temp,0x05 ;matiin

timer1 utk debugging

out TCCR1B,temp

reti

;****************************************tim_comp1:

ldi temp,0x40 ;timcompare

n tim0ov disable

out timsk,temp

sei

rcall nolkan

;rcall start_timer1

ldi temp,0x42 ;timcompare n

tim0ov enable

out timsk,temp

reti

nolkan:

clr xl

clr xhclr divresh

ldi temp,5

ldi tempa,0x30

;isi ram 0060-0065 dengan "0"

rcall y_awal

clear_2:

st y+,tempa

dec temp

brne clear_2

;rcall display_mem

;andi

statusjuga,0b11111000 ;ulang dari awal

clr statusjuga

ldi temp,1

or statusjuga,temp

;nandain ada data

baruret

;****************************************

tim_ovf0: ;update tulisan di lcd

setiap 0.25s

sei ;enable semua

interupsi lain

wdr

inc tempb

cpi tempb,10

brsh display_lcd_ok

reti

display_lcd_ok:

sbrs statusjuga,0 ;ada

perubahan lambda kalo iya disp mem

reti

wdrrcall display_mem

clr tempb

clr statusjuga

reti

;****************************************

uart_rxc:

sbrc status,1

;bit1=0-->belum dapat start

rjmp tentukanjumlahdata

Page 76: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 76/88

 

in temp,udr

cpi temp,255

ldi temp,0x00

;timcompare n tim0ov disable

out timsk,temp

sei

brne check_uart_keluar

ori status, 0b00000010

clr temparcall uart_sram_init

check_uart_keluar:

ldi temp,0x42 ;timcompare

n tim0ov enable

out timsk,temp

reti

tentukanjumlahdata:

sbrc status,2

rjmp simpanSRAM

simpanjumlah:

in temp,udr

mov tempa,temp

cpi tempa,9

brsh check_uart_restart1

ori status, 0b00000100

simpanSRAM:in temp,udr

st y+,temp

dec tempa

breq check_uart

rcall reenable1

reti

check_uart_restart1:

andi status,0b11111001

reenable1:

sbi ucr,7

sbi ucr,4

ldi temp,0x42 ;timcompare n

tim0ov enable

out timsk,temp

reti

check_uart:

rcall uart_sram_init

andi status,0b11111001

rcall uart_sram_init

checksum:

clr chs

clr tempa

ld tempa,y

ulangchs:

ld r0,y+

add chs,r0

dec tempa

cpi tempa,1

brne ulangchs

mov r0,chsrcall b_transmit

ld r0,y

cp chs,r0

brne checksumerror

ldi yl,low(uart_address+1)

ldi yh,high(uart_address)

ld tempa,y+

cpi tempa,1

brne check_uart_restart1

ld tempa,y+

cpi tempa,3

brne check_uart_restart1

ld tempa,y+

cpi tempa,0

breq wd_reset

cpi tempa,1

breq send_data

cpi tempa,2breq simpanEEPROM

rjmp

check_uart_restart

checksumerror:

clr chs

ldi temp,255 ;start

mov r0,temp

rcall b_transmit

ldi temp,5

;jml

rcall movedata

rcall b_transmit

ldi temp,3

;srcrcall movedata

rcall b_transmit

ldi temp,1

;dest

rcall movedata

rcall b_transmit

ldi temp,200

;cmd

rcall movedata

rcall b_transmit

mov r0,chs

;chs

rcall b_transmit

ldi temp,250 ;stop

mov r0,temp

rcall b_transmit

rcall resp

rjmp check_uart_restart

wd_reset:

cli

ldi temp,0b00001000

out wdtcr,temp

wd_loop:

rjmp wd_loop

send_data:

rcall send_data2

rjmp check_uart_restart

send_data2:clr chs

ldi temp,255 ;start

mov r0,temp

rcall b_transmit

ldi temp,7

;jml

rcall movedata

rcall b_transmit

Page 77: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 77/88

 

ldi temp,3

;src

rcall movedata

rcall b_transmit

ldi temp,1

;dest

rcall movedata

rcall b_transmit

ldi temp,2

;cmd

rcall movedata

rcall b_transmit

mov temp,xh ;dataM

rcall movedata

rcall b_transmit

mov temp,xl ;datal

rcall movedata

rcall b_transmit

mov r0,chs

;chs

rcall b_transmit

ldi temp,250 ;stop

mov r0,temp

rcall b_transmit

;ldi temp,1

;rcall lcd4ctrl

ret

movedata:

mov r0,temp

add chs,temp

ret

simpanEEPROM:

ldi yl,low(uart_address+4)

ldi yh,high(uart_address)

ldi temp,0ldi tempa,3

clr eep_addr

simpanEEPROM1:

ld temp,y+

mov eep_data,temp

rcall eeprom_write

inc eep_addr

dec tempa

cpi tempa,0

breq check_uart_restart

rjmp simpanEEPROM1

rcall load_eeprom

check_uart_restart:

andi status,0b11111001

reenable:sbi ucr,7

sbi ucr,4

ldi temp,0x42 ;timcompare n

tim0ov enable

out timsk,temp

reti

uart_sram_init:

ldi yl,low(uart_address)

ldi yh,high(uart_address)

ret

;****************************************

clear_sram:

rcall y_awal

ldi temp,0x00

ldi tempa,0x6e

clear_lagi:

st y+,tempdec tempa

brne clear_lagi

ret

port_init:

ldi temp,0xff

out ddrb,temp

ldi temp,0x00

out ddrd,temp

ldi temp,0x04

;ldi temp,0x00 ;tanpa pullup

out portd,temp

;sbi portd,2

ret

init_int0_falling:

ldi temp,0x40 ;INT0: On INT1:

Off

out GIMSK,temp

ldi temp,0x02 ;INT0 Mode:

Falling Edge

out MCUCR,temp

ldi temp,0x40 ;write 1 to erase

intf0

out GIFR,temp

ret

init_int0_rising:

ldi temp,0x40 ;INT0: On INT1:

Off

out GIMSK,temp

ldi temp,0x03 ;INT0 Mode: RisingEdge

out MCUCR,temp

ldi temp,0x40

out GIFR,temp

ret

start_timer0:

ldi temp,prescale

;prescale 1024

out TCCR0,temp

ldi temp,0x05

out TCNT0,temp

ret

start_timer1:

ldi temp,0x00

out TCCR1A,templdi temp,prescale;prescale

ck/1024

out TCCR1B,temp

ldi temp,0x00

out TCNT1H,temp ;2^16-

10800=0xd5d0

ldi temp,0x00

out TCNT1L,temp

ret

init_timer_service:

Page 78: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 78/88

 

ldi temp,0x42 ;enable timer1

compare n tim0 ovf int

out timsk,temp

ldi temp,0x2a

out OCR1AH,temp

ldi temp,0x30

out OCR1AL,temp

ret

;****************************************y_awal:

ldi yl,low(mem)

ldi yh,high(mem)

ret

;****************************************

hitung_frekuensi:

clr xh

;rcall load_eeprom

;rcall load_eeprom2reg

ldi dividendL,kL

ldi dividendM,kM

ldi dividendH,kH

DIVW21U:

;rutin pembagian 16bit fixed

pointclr reml

clr remm

clr remh

ldi loopcounter,24

DIVW21U1:

lsl dividendL

;R26=dividendL

rol dividendM

rol dividendH

;R27=dividendH

rol reml

rol remm

rol remh

sub reml,xl

;xl=divisorL

sbc remm,xm

;xm=divisorMsbc remh,xh

;xh=divisorH

brcc DIVW21U2

add reml,xl

adc remm,xm

adc remh,xh

rjmp DIVW21U3

DIVW21U2:

sbr dividendL,1

DIVW21U3:

dec loopcounter

brne DIVW21U1

mov xl,dividendL

mov xh,dividendM

mov divresh,dividendH

adiw xh:xl,50

adiw xh:xl,30rcall ubahformat

ret

ubahformat:

push zl

push zh

ldi zh,high(mem) ;initiate z

ldi zl,low(mem)

rcall Bin2ToAsc5 ;call

routine

pop zl

pop zh

ret

Bin2ToDigit:

clr temp ; digit count is zero

Bin2ToDigita:

cp xh,rBin2H ; Number bigger thandecimal?

brcs Bin2ToDigitc ; MSB smaller

than decimal

brne Bin2ToDigitb ; MSB bigger

than decimal

cp xl,rBin2L ; LSB bigger or

equal decimal

brcs Bin2ToDigitc ; LSB smaller

than decimal

Bin2ToDigitb:

sub xl,rBin2L ; Subtract LSB

decimal

sbc xh,rBin2H ; Subtract MSB

decimal

inc temp ; Increment digit count

rjmp Bin2ToDigita ; Next loop

Bin2ToDigitc:st z+,temp ; Save digit and

increment

ret ; done

Bin2ToBcd5:

push xh ; Save number

push xl

ldi temp,HIGH(10000) ; Start with

tenthousands

mov rBin2H,temp

ldi temp,LOW(10000)

mov rBin2L,temp

rcall Bin2ToDigit ; Calculate

digit

ldi temp,HIGH(1000) ; Next with

thousands

mov rBin2H,templdi temp,LOW(1000)

mov rBin2L,temp

rcall Bin2ToDigit ; Calculate

digit

ldi temp,HIGH(100) ; Next with

hundreds

mov rBin2H,temp

ldi temp,LOW(100)

mov rBin2L,temp

rcall Bin2ToDigit ; Calculate

digit

ldi temp,HIGH(10) ; Next with

tens

mov rBin2H,temp

ldi temp,LOW(10)

mov rBin2L,temp

rcall Bin2ToDigit ; Calculatedigit

st z,xl ; Remainder are

ones

sbiw ZL,4 ; Put

pointer to first BCD

pop xl ; Restore original binary

pop xh

ret ; and

return

Bin2ToAsc5:

Page 79: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 79/88

 

rcall Bin2ToBcd5 ; convert binary

to BCD

ldi temp,4 ; Counter

is 4 leading digits

mov rBin2L,temp

Bin2ToAsc5a:

ld temp,z ; read a

BCD digit

tst temp ; check ifleading zero

brne Bin2ToAsc5b ; No, found

digit >0

ldi temp,'0' ; overwrite with

blank

st z+,temp ; store and

set to next position

dec rBin2L ; decrement

counter

brne Bin2ToAsc5a ; further

leading blanks

ld temp,z ; Read the

last BCD

Bin2ToAsc5b:

inc rBin2L ; one more

char

Bin2ToAsc5c:subi temp,-'0' ; Add ASCII-0

st z+,temp ; store and

inc pointer

ld temp,z ; read next

char

dec rBin2L ; more

chars?

brne Bin2ToAsc5c ; yes, go on

sbiw ZL,5 ; Pointer

to beginning of the BCD

ret ; done

;****************************************

; Transmiting routine

b_transmit:

sbi portb,3

sbi UCR,txenb_transmit1:

sbis USR,UDRE ;is UART

transmitter ready?

rjmp b_transmit1

out UDR,r0 ;sent out char

cbi UCR,txen

cbi portb,3

ret

;****************************************

; Receiving routine

b_receive:

sbi UCR,rxen

b_receive1:

sbis USR,RXC

rjmp b_receive1

in r0,UDR

cbi UCR,rxenret

;****************************************

dispdate:

clr temp ; Set LCD

home position

ldi ZH,HIGH(2*datet) ; display

Date-Text

ldi ZL,LOW(2*datet)

rcall Lcd4ZTxt ; Display

null-terminated string

disptime:

ldi temp,0x43 ; LCD Cursor to

start of line 2

ldi ZH,HIGH(2*kgs) ; Display

Time-Text

ldi ZL,LOW(2*kgs)

rcall Lcd4ZTxt ; Display

null-terminated string

ret ; Fertig

datet:

.DB "Flow=",0x00;,0x00

kgs:

.DB " ml/s",0x00;,0x00

koma:

.DB ",",0x00

resp:

clr temp ; Set LCD

home position

ldi ZH,HIGH(2*okf) ; display

Date-Text

ldi ZL,LOW(2*okf)

rcall Lcd4ZTxt ; Display

null-terminated string

ret ; Fertig

okf:

.DB "ok =",0x00,0x00

;****************************************

Lcd4Init:

rcall y_awal

ldi temp,0x30 ;karakter 0

st y+,temp

ldi temp,0x30 ;karakter 0

st y+,temp

ldi temp,0x30 ;karakter 0

st y+,temp

ldi temp,0x30 ;karakter 0

st y+,templdi temp,0x30 ;karakter 0

st y+,temp

ldi temp,0x20 ;karakter spasi

st y+,temp

rcall LcdDelay1s ; Wait a second

for the LCD

ldi temp,cLcdWrite ; Data

direction to output

out pLcdDdr,temp

ldi temp,cLcdDummy ; Dummy to

catch LCD

rcall Lcd4Set ; send three times

with 5 ms delay

rcall LcdDelay5ms

ldi temp,cLcdDummy

rcall Lcd4Setrcall LcdDelay5ms

ldi temp,cLcdDummy

rcall Lcd4Set

rcall LcdDelay5ms

ldi temp,0b00100000 ; Function

Set to 4 Bit

rcall Lcd4Ctrl ; output on the

Control Port LCD

ldi temp,0b00010100 ; Cursor

display shift

rcall Lcd4Ctrl

Page 80: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 80/88

 

ldi temp,0b00001100 ; LCD on

rcall Lcd4Ctrl

ldi temp,0b00000110 ; Entry mode

rcall Lcd4Ctrl

Lcd4Clear:

ldi temp,0b00000001 ; Set Lcd

Clear

rcall Lcd4Ctrl

Lcd4Home:ldi temp,0b00000010 ; Set LCD

Home Position

;

; Output of temp on the Control-Port of

the LCD

;

Lcd4Ctrl:

push temp ; save byte

andi temp,0xF0 ; clear lower

nibble

rcall Lcd4Set ; output upper

nibble

pop temp ; restore byte

swap temp ; swap lower and upper

nibble

andi temp,0xF0 ; clear lower

nibblercall Lcd4Set ; output lower

nibble

rjmp LcdDelay5ms ; done.

;

; Display the packed BCD in temp on the

LCD

;

Lcd4PBcd:

push temp ; Save on stack

swap temp ; Higher to lower

nibble

rcall Lcd4PBcd1 ; Output nibble

pop temp ; Restore from stack

Lcd4PBcd1:

andi temp,0x0F ; Mask upper

nibble

ori temp,0x30 ; Nibble to ASCII;

; Display char in temp on the LCD

;

Lcd4Chr:

push temp ; save char

on stack

andi temp,0xF0 ; clear lower

nibble

sbr temp,mLcdRs ; Set RS-Bit

rcall Lcd4Set ; output nibble

pop temp ; get char

from stack

swap temp ; swap

nibbles

andi temp,0xF0 ; clear lower

nibble

sbr temp,mLcdRs ; Set RS-Bitrcall Lcd4Set ; output nibble

rjmp LcdDelay50us ; ready

;

; Send nibble in temp to LCD

;

Lcd4Set:

out pLcdPort,temp ; Byte to

output port

nop

sbi pLcdPort,bLcdEn ; Set Enable-

Bit

enactive ; Delay macro

cbi pLcdPort,bLcdEn ; Clear

Enable Bit

nop

ret

;

; Delay by 1 second on start-up

;

LcdDelay1s:ldi temp,c1s ; 200 * 5 ms wait

LcdDelay1s1:

rcall LcdDelay5ms

dec temp

brne LcdDelay1s1

ret

;

; Delay by 5 ms following each Control

Word

;

LcdDelay5ms:

push ZH ;tdk begitu

penting, karena tdk menginterup uart

push ZL

ldi ZH,HIGH(c5ms)

ldi ZL,LOW(c5ms)

LcdDelay5ms1:sbiw ZL,1

brne LcdDelay5ms1

pop ZL

pop ZH

ret

;

; Delay by 50 Microseconds after each

Char

;

LcdDelay50us:

ldi temp,c50us

LcdDelay50us1:

nop

dec temp

brne LcdDelay50us1

ret

;; Display at the position in temp the

string starting at Z (null-term.)

;

Lcd4ZTxt:

sbr temp,0b10000000 ; Set DD-RAM-

Adress

rcall Lcd4Ctrl

Lcd4ZTxt1:

lpm ; Get a char

tst R0 ; Null-Char?

breq Lcd4ZTxtR

mov temp,R0

rcall Lcd4Chr ; display the cahr

in temp

adiw ZL,1 ; next char

rjmp Lcd4ZTxt1 ; do it again

Lcd4ZTxtR:ret

; Display at the position in temp the

string starting at y (null-term.)

Lcd4ZMem:

sbr temp,0b10000000 ; Set DD-RAM-

Adress

rcall Lcd4Ctrl

Lcd4ZTxt1Mem:

dec tempa

Page 81: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 81/88

 

ld R0,z+ ;

Get a char

dec zl

tst R0 ;

Null-Char?

breq Lcd4ZTxtRMem

mov temp,R0

rcall Lcd4Chr ; display

the cahr in rmpadiw zL,1 ;

next char

cpi tempa,0

breq Lcd4ZTxtRMem

rjmp Lcd4ZTxt1Mem ; do it

again

Lcd4ZTxtRMem:

ret

; Display temp chars from SRAM starting

at Z on the LCD

;

Lcd4RTxt:

mov R0,temp ;R0 is

counter

Lcd4RTxt1:

ld temp,Z+

;read charrcall Lcd4Chr

dec R0

brne Lcd4RTxt1

ret

display_mem:

clr temp

;Set LCD home position

ldi ZH,HIGH(2*datet);display

Date-Text

ldi ZL,LOW(2*datet)

rcall Lcd4ZTxt

;Display null-terminated string

ldi tempa,3

ldi temp,0x05 ;alamat

ddram(baris 1)ldi zH,HIGH(mem)

ldi zL,LOW(mem)

rcall Lcd4ZMem

ldi temp,0x40 ;LCD Cursor

to start of line 2

ldi ZH,HIGH(2*koma) ;Display

Time-Text

ldi ZL,LOW(2*koma)

rcall Lcd4ZTxt ;

ldi tempa,2

ldi temp,0x41 ;alamat

ddram(baris 2)

ldi zH,HIGH(mem)

ldi zL,LOW(mem+2)

rcall Lcd4ZMem

ldi temp,0x43 ;LCD Cursor

to start of line 2

ldi ZH,HIGH(2*kgs) ;Display

Time-Text

ldi ZL,LOW(2*kgs)

rcall Lcd4ZTxt

;Display null-terminated string

ret

;**********************************

eeprom_write:

sbic EECR,EEWE ;if EEWE

not clear

rjmp eeprom_write ; wait

more

out EEAR,eep_addr ;output

address out EEDR,eep_data ;output

data

sbi EECR,EEMWE

sbi EECR,EEWE ;set EEPROM

Write strobe

;This instruction takes 4 clock

cycles since

;it halts the CPU for two clock

cycles

nop

nop

nop

nop

nop

ret

eeprom_read:

sbic EECR,EEWE ;if EEWE

not clear

rjmp eeprom_read ; wait

more

out EEAR,eep_addr ;address

sbi EECR,EERE

nop

nop

nop

in eep_data,EEDR

ret

load_eeprom: ;eeprom ke

sramldi yl,low(eeprom_address)

ldi yh,high(eeprom_address)

ldi tempa,3 ;3

kali loop

ldi temp,0x00 ;alamat

load_eeprom_lagi:

mov eep_addr,temp ;set alamat

eeprom

rcall eeprom_read

st y+,eep_data ;pindahin

ke sram 0x0080

dec tempa

breq load_eeprom_end

inc temp

rjmp load_eeprom_lagi

load_eeprom_end:

ret

load_eeprom2reg: ;sram ke

register yang dipake rutin division

ldi yl,low(eeprom_address)

ldi yh,high(eeprom_address)

ld dividendH,y+

;pindahin dari sram ke reg

ld dividendM,y+

;dari sram+1

Page 82: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 82/88

 

ld dividendL,y ;dari

sram+2

ret

;last edit:19ag05

Page 83: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 83/88

 

PERANCANGAN TRANSMITTER PADA FLOWMETER PADDLEWHEEL

BERBASIS MIKROKONTROLER AT90S2313

Rian Amanda, 13200084, Departemen Teknik Elektro, Fakultas Teknologi Industri,

Institut Teknologi Bandung

Abstract - Tujuan tugas akhir ini adalah merancang

transmitter yang real time untuk mengukur laju aliran

(debit) air dalam pipa. Sistem pengukur ini merupakan

bagian dari kit sistem kendali proses. Parameter

masukan alat pengukur ini adalah periode dari pulsa

yang dihasilkan sensor  paddlewheel, kemudian diolah

dan hasilnya ditampilkan oleh LCD dan dapat dikirim

melalui bus komunikasi serial. Proses pengambilan

data, penghitungan, penampilan LCD, dan komunikasi

diatur oleh program yang disebut kernel hybrid .

Frekuensi maksimum yang dapat diukur adalah 5,8 Hz

atau 143,7ml/s .

I. PENDAHULUAN

Pembuatan kit eksperimenter ini merupakan

pengembangan dari kit yang telah tersedia sebelumnya

di lab LSS. Pengurangan biaya dilakukan denganmemperkecil ukuran kit dan mengganti bahan

pembuatan namun diusahakan tidak mengurangi

kualitas keseluruhan. Peningkatan performa dilakukan

dengan menambahkan jenis sensor fluida,

menambahkan rangkaian kontroler, menjadikan output

sensor real time, dan memungkinkan kit untuk 

dioperasikan melalui komputer.

II. TINJAUAN PUSTAKA

2.1 Metoda Pengukuran Pada Sensor Paddlewheel

Besaran yang diambil dari sensor  paddlewheel adalah

frekuensi sinyal akibat buka-tutup reed switch.

2.2 Sistem Tertanam ( Embedded System )

  Embedded System mempunyai setidaknya

sebuah pemroses yang dapat diprogram (biasanya

dalam bentuk chip mikrokontroler, mikroprosesor, atau

Digital Signal Processor) yang oleh pengguna tidak 

dikenali sebagai computer [14].

2.3 Sistem Waktu Nyata ( Real Time System)

  Real Time System adalah sistem yang dapat

merespon kejadian di dunia nyata (melalui sensor)

secara langsung [14].

2.3.3 Jenis Real Time System:

Event Triggered System

  Event Triggered System merupakan suatu

sistem yang akan mengeksekusi program jika ada

permintaan berupa kejadian (event )[14].

Time Triggered System

Pada Time triggered system prosesor akan

mengeksekusi task dalam rentang waktu tertentu[14].

Time triggered system biasa dikenal dengan nama

cooperative system.

Sistem hibrida ( Hybrid System)

  Hybrid system merupakan gabungan dari

  preemptive system dan cooperative system [12]. Pada

hybrid system terdapat minimal 1 task   preemptive dan 1

task  cooperative.

2.4 MikrokontrolerAVR AT90S2313

Pertimbangan utama penulis menggunakan

AVR AT90S2313 adalah kecepatan proses, mampunyai

baud rate generator, 2 buah pewaktu, ketersediaanEEPROM dan harga yang relatif murah.

2.5 Komunikasi serial

 Device UART mengubah data dari format 8 bit

menjadi 1 bit per-satuan waktu pada port serial seperti

RS 232 [12]. Alat yang dapat menangani lebih dari 2

node adalah RS 485.

Page 84: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 84/88

 

2.6 Display LCD PC1601A [13]

PC1601 adalah modul display LCD dot

matrix dengan konfigurasi 16 karakter dalam satu baris.

Setip karakter dibentuk oleh 8 baris pixel dan 5 kolom

pixel (baris terakhir pixel adalah kursor).III. PERANCANGAN DAN IMPLEMENTASI

Transmitter  terdiri dari perangkat keras

(hardware) dan perangkat lunak (software). Diagram

blok transmitter terdapat pada Gambar 1.

Gambar 1. Diagram blok sistem pengukuran laju aliran air 

Transmitter  terdiri dari dua bagian yaitu

implementasi hardware dan perancangan software.

Penulis lebih condong memilih “implementasi

hardware” karena hardware transmitter sederhana dan

banyak diambil utuh dari referensi yang ada.

Penulis lebih condong memilih “perancangan

software” karena software TA ini “dibuat dari nol”

meskipun ada beberapa rutin yang diambil dari

referensi.

3.1 Implementasi Perangkat Keras

Implementasi hardware mengacu pada batasan

masalah pada BAB I, yaitu menekankan pada

minimalisasi biaya pembuatan dengan cara

menggunakan komponen sesedikit mungkin,

menggunakan PCB 1 lapis (single layer). .

3.2 Perancangan Perangkat Lunak

Ada empat task yang dikerjakan 

1. Task  interupsi eksternal diberi prioritas tertinggi

karena hal utama yang diukur adalah periode dari

sensor. Task ini tidak boleh tertunda oleh task lain.

2. Task  komunikasi serial adalah task  yang sensitif 

terhadap interupsi dari task  lain. Bila task  sedang

menerima byte dari luar dan terinterupsi maka task akan

gagal memeriksa data serial.

3. Task  timeout pengukuran periode dipicu oleh

interupsi timer-1 compare. Bila timer-1 sudah

menghitung selama sedetik maka laju aliran dianggapnol. Penundaan terlama tidak berarti bila dibanding satu

detik.

4. Task  update display LCD dieksekusi berdasarkan

interupsi timer-0. Task update LCD ini dieksekusi bila

interupsi timer-0 sudah terjadi 10 kali dan pada saat itu

ada flag perubahan hasil perhitungan. Penundaan

terlama tidak terlalu terasa bagi mata.

3.3 Implementasi Perangkat Lunak

Pada saat sistem dinyalakan kernelmenginisialisasi port direction, timer interrupt, UART

baud rate, dan modul LCD.

3. 3.1 Task pengukuran periode

Dilakukan dengan mengukur lamanya waktu

antara transisi naik/turun dari sensor. Setelah terdeteksi

ada transisi naik maka timer-1 dinyalakan baru keluar

dari rutin interupsi setelah menunggu sesaat. Flowchart

pengukuran frekuensi  paddlewheel dapat dilihat pada

Gambar 2.

Gambar 2. Flowchart pengukuran frekuensi paddlewheel

3.3.2 Task pemeriksaan data serial

Page 85: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 85/88

 

Tiap data yang dikirim harus berisi informasi

node sumber dan node tujuan. Paket data protokol ada

pada Gambar 3.

Gambar 3. Paket data pada protokol

Flowchart periksa komunikasi serial dapat

dilihat pada Gambar 4.

Gambar 4. Flowchart periksa komunikasi serial 

3.3.3 Task batas pengukuran periode

Task ini dipicu interupsi “timer-1 compare

match” berfungsi membatasi periode yang diukur. Bila

transmitter tidak menerima data baru lebih dari satu

detik maka kemungkinan besar  paddlewheel memang

tidak berputar.

3.3.4 Task update display LCD

Task ini berfungsi menentukan kapan update

display LCD dilakukan. Bila interupsi timer-0 overflow

terjadi 10 kali maka kernel memeriksa apakah ada

perhitungan baru, bila ada maka hasil perhitungan akan

ditampilkan pada display LCD.

BAB IV. PENGUJIAN DAN ANALISIS

4.1 Pengujian karakteristik   reed switch pada

berbagai macam frekuensiPengujian ini dilakukan untuk, megetahui karakteristik 

sensor reed switch seperti bentuk sinyal terhadap

frekuensi  paddlewheel. Untuk menguji hal ini, kedua

kaki reed switch dihubungkan ke resistor pull-up. 

4.1 Pengujian dengan masukan dari pembangkit

sinyal (Goodwill Instrument GFG-80220G).

Pengujian ini untuk mensimulasikan masukan

dari sensor. Sebelum pengujian dilakukan, penulis

menambahkan waktu tunda (delay) pada program

pengukur periode untuk mengurangi efek bouncing.

Pembangkit

sinyal

Alat ukur

osiloskop

Gambar 5. Skema pengujian dengan pembangkit sinyal

Penulis mengasumsikan hasil ukur osiloskop

(Scopemeter PM9750) paling akurat diantara 3 alat di

atas. Bila pembangkit sinyal menunjukkan 2 Hz maka

seharusnya alat ukur menunjukkan setengahnya yaitu.

Hasil pengujian alat ukur dengan masukan sensor

terdapat pada Tabel 1 dan secara grafik pada Gambar 6.

Tabel 1. Perbandingan hasil ukur osiloskop dengan hasil alat ukur

SampelHasil Ukur

Osiloskop(Hz)

HasilUkur

 Alat (Hz)

1 0.952381 0.937

2 1.4285714 1.348

3 1.9047619 1.891

4 2.3809524 2.355

5 2.8571429 2.851

6 3.3333333 3.389

7 3.8095238 3.752

8 4.2857143 4.33

9 4.7619048 4.83

Page 86: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 86/88

 

10 5.2380952 5.389

y = 1.0379x - 0.1037

0

1

2

3

4

5

6

7

0 2 4 6

Hasil ukur osiloskop

   H  a  s   i   l  u   k  u  r  a   l  a   t

Series1

Linear (Series1)

 

Gambar 6. Kurva hasil ukur alat vs hasil ukur osiloskop

Dari Gambar 6 didapat persamaan:

 Hasil Ukur = 1,0379 f masukan – 0.1037..........................1

Persamaan 1 dipergunakan untuk menghitung keluaran

ideal pengukur yang akan dijadikan referensi dalam

perhitungan galat (error ) pengukuran. Galat

pengukuran dapat dihitung dengan persamaan.2. Hasil

perhitungan diperlihatkan pada Tabel 2.

( ) (( )

)%100

alatukurhasillinierregresi

alatukurhasilalatukurhasillinierregresi×

=galat ........2 

Tabel 2. Hasil perhitungan galat pengukuran frekuensi

SampelHasil Ukur Alat ideal(y fungsi)

error error(% )

1 0.884776 -0.05222 -5.90249

2 1.379014 0.031014 2.249018

3 1.873252 -0.01775 -0.94742

4 2.36749 0.01249 0.527583

5 2.861729 0.010729 0.374898

6 3.355967 -0.03303 -0.98432

7 3.850205 0.098205 2.550637

8 4.344443 0.014443 0.332444

9 4.838681 0.008681 0.179407

10 5.332919 -0.05608 -1.0516

11 5.827157 -0.01684 -0.28904

Standard deviasi dari prosentase galat =2,218642. Dengan mengetahui nilai standard deviasi

maka dapat dihitung akurasi dari pengukur dalam

mengukur frekuensi. Berdasarkan tabel statistik 

Student-T pada jumlah sampel 11 diperoleh nilai

akurasi pada beberapa level konfiden, seperti

diperlihatkan pada Tabel 3.

Tabel 3. Hasil perhitungan akurasi pengukuran frekuensi pada

beberapa level konfiden

NoStandard

Dev

Level

Konfiden

Konstanta

Student-T Akurasi

1 2,218642 68,3 % 1 2,218642

2 2,218642 95 % 2,201 4,8832313 2,218642 99 % 3,106 6,891101

4.2 Pengujian dengan masukan dari sensor

Pengujian ini dilakukan untuk memastikan

bahwa mikrokontroller mengolah data dengan benar

sinyal input dari sensor .

Pengujian dilakukan dengan mengalirkan air

pada sensor  paddlewheel ini. Air dialirkan dengan

pompa yang daya hisapnya dapat berubah tergantung

pada tegangan sumber yang diberikan. Hasil pengujian

alat ukur dengan masukan sensor terdapat pada Tabel 4 

dan secara grafik pada Gambar 7.

Tabel 4. Perbandingan hasil ukur osiloskop dengan hasil alat ukur

 Volume/Tegangan

Waktu(s)

Frekuensisensor rata-

rata

Lajualiran

Rata-rata

8.59 1.233333 93.13155

8.52 1.4 93.89671

8.36 1.41 95.69378800ml/140V

8.29 1.463333 96.50181

8.17 1.563333 97.91922

8.12 1.536667 98.52217800ml/160V

8.06 1.7 99.25558

8.23 1.333333 97.20535

8.13 1.613333 98.40098800ml/180V

8.17 1.5 97.91922

8.02 1.8 99.75062800ml/220V

8.1 1.7 98.76543

5.1 1.6 98.03922

5.16 1.51 96.89922500ml/140

5.2 1.566667 96.15385

5.31 1.256667 94.161965.18 1.49 96.5251500ml/180ml

5.26 1.356667 95.05703

Page 87: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 87/88

 

y = 10.902x + 80.505

92

93

94

95

96

97

98

99

100

101

1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2

frekuensi sensor (Hz)

   l  a   j  u  a   l   i  r  a  n   (  m   l   /  s   )

Series1

Linear (Series1)

 

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

regresinya.

Dari gambar 7 didapat persamaan:

 Laju aliran rata-rata = 10,902 f sensor rata-rata + 80,505 ..................3 

Persamaan 3 dipergunakan untuk menghitung keluaran

ideal pengukur yang akan dijadikan referensi dalamperhitungan galat (error ) pengukuran. Galat

pengukuran dapat dihitung dengan persamaan 4. Hasil

perhitungan diperlihatkan pada Tabel 5.

( ) (( )

)%100

ratat-rataaliranlajulinierregresi

rata-rataaliranlajurata-rataaliranlajulinierregresi×

=galat 

...........4

Tabel 5 Hasil perhitungan galat pengukuran frekuensi

 Volume/Tegangan

LajuRata-rata

y fungsi galat(% )

93.13155 93.94333 0.86412293.89671 95.76 1.945788

95.69378 95.869 0.18277800ml/140V

96.50181 96.45033 -0.05337

97.91922 97.54033 -0.38844

98.52217 97.24967 -1.30849800ml/160V

99.25558 99.03 -0.22779

97.20535 95.03333 -2.28553

98.40098 98.08533 -0.32181800ml/180V

97.91922 96.85 -1.10399

99.75062 100.12 0.368934800ml/220V

98.76543 99.03 0.267159

98.03922 97.94 -0.101396.89922 96.959 0.06165500ml/140

96.15385 97.57667 1.458157

94.16196 94.19767 0.037908

96.5251 96.741 0.223177500ml/180ml

95.05703 95.28767 0.242038Standard deviasi dari prosentase galat =

0,954447. Dengan mengetahui nilai standard deviasi

maka dapat dihitung akurasi dari pengukur dalam

mengukur frekuensi. Berdasarkan tabel statistik 

Student-T pada jumlah sampel 18 diperoleh nilai

akurasi pada beberapa level konfiden, seperti

diperlihatkan pada Tabel 5.Tabel 6. Hasil perhitungan akurasi pengukuran frekuensi pada

beberapa level konfiden

NoStandard

DevLevel

KonfidenKonstantaStudent-T

 Akurasi

1 2,218,642 68,3 % 1 221,864

2 2,218,642 95% 2,201 488,323

3 2,218,642 99% 3,106 689,110Pengujian dengan cara ini mempunyai

kelemahan yaitu rentang pengujian hanya dari frekuensi

1,25Hz s.d 1,85Hz. Sedangkan rentang pengukuran

adalah 0,5 Hz s.d 5,8Hz. Dari pengamatan terlihat

bahwa saat sensor dipenuhi air frekuensi kincir

menurun, artinya laju aliran air memang tidak dapat

terlalu tinggi.

4.3 Pengujian protokol menggunakan PC

Pengujian ini untuk memeriksa komunikasi

serial (UART) apakah sudah benar atau belum. Pada

pengujian ini digunakan driver RS 232. Penulis

menggunakan program “terminal.exe” untuk mengirim

data dari dan ke komputer.

1. Uji perintah meminta kirim data

Bila kontroler ingin alat ini mengirimkan data hasil

perhitungan maka harus dengan mengirim urutan data

sebagai berikut |255|005|001|003|001|010|250| sudah

disepakati besama. Bila semua urutan benar maka alat

ini akan mengirim balik |255|7|1|3|1|6|***|***|***|250|.

Tampilan program Terminal v1.9b saat menguji pesan

yang berisi “meminta kirim data” dapat dilihat pada

Gambar 8.

Page 88: Tugas Akhir Rian Amanda 13200084

5/10/2018 Tugas Akhir Rian Amanda 13200084 - slidepdf.com

http://slidepdf.com/reader/full/tugas-akhir-rian-amanda-13200084 88/88

 

 

Gambar 8 Tampilan program Terminal v1.9b saat menguji pesan

yang berisi “meminta kirim data”

2. Uji perintah kirim data dan simpan di EEPROM

Perintah kirim data dan perintah simpan data

konstanta ke EEPROM. Pengujian ini untuk 

memastikan pengiriman data konstanta sudah benar,

karena kalibrasi sensor dilakukan pada kontroler. Untuk 

keperluan pengujian kontroler dapat diganti dengan PC.

Hasil pembacaan EEPROM dapat dilihat pada Gambar

9.

Gambar 9. Hasil pembacaan EEPROM

3. Pengujian protokol menggunakan 2 rangkaian

pengukur laju aliran

Pengujian dilakukan dengan : node 1

mengirim data serial (pesan 7byte) yang berisi perintah

mengirimkan data hasil perhitungan. Program pada

node 2 diatur sehingga akan menampilkan “Ok” pada

LCD bila menerima pesan 7byte yang benar( benarsource, destination, command dan checksumnya).

Hasil pengujian menunjukkan bahwa node 2

dapat menanggapi input pesan serial dengan

menampilkan “Ok” pada LCD dan node tidak 

menanggapi input yang salah.

V. KESIMPULAN

Setelah melakukan proses perancangan,

implementasi, pengujian dan analisis penulis dapat

menarik kesimpulan Transmitter ini dapat bekerja

mengukur frekuensi putaran kincir, mampu menerimadan merespon perintah “meminta kirim data”, dan

“simpan data” melalui bus komunikasi RS485.

VI. DAFTAR PUSTAKA

[1] AVR200 Multiply and Divide Routines, http://atmel.com/dyn/resources

 /prod_documents/DOC0936.PDF

[2] DatasheetAT90S2313, http://atmel.com/dyn/resources/prod_documents

 /DOC1630.PDF

[3] Datasheet PC1601A-L, http://www.p-tec.net/PC1601A(LCD).pdf 

[4] Datasheet MAX 485, http:// www.ortodoxism.ro/datasheets/maxim  /MAX1487-MAX491.pdf 

[5]FlowmeterTutorial,http://www.omega.com/techref/pdf/FlowMeterTutorial.p

df 

[6] Johan, Willy. Laporan Tugas Akhir: Perancangan sistem realtime

dengan kernel cooperative pada pengukur salinitas air laut . Departemen

Teknik Elektro ITB, 2004 

[7] http://www.avrasm-tutorial.com/avr_en/index.html

[8] http://www.avrfreak.net/ 

[9] http://www.kalinskyassociates.com/Wpaper1.html

[10] http://www.qsl.net/pa3ckr/bascom%20and%20avr/rs232/ 

[11] Kurniawan, Rizky.   Laporan Tugas Akhir:  System embebbed dengan

kernel preemptive pada level meter. Departemen Teknik Elektro ITB,

2003 [12] Laplante, Jean J. Real Time System Design and Analysis. 2nd ed. New

York: IEEE Press, 1997

[13] Nalwan, Paulus Andi. Panduan Praktis Penggunaan dan Antarmuka

 Modul LCD M1632. Jakarta: PT Elex Media Komputindo, 2004

[14] Pont, Michael J. Pattern For Time Triggered Embedded System. London:

Addison-Wesley, 2001

[15] Pratomo, Andi. Panduan Praktis PemrogramanAVR Microkontroler 

 AT90S2313. Yogyakarta: ANDI, 2005