PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI TUGAS AKHIR SYRINGE PUMP OTOMATIS BERBASIS MIKROKONTROLER ARDUINO UNO Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Oleh : PRAYADI SULISTYANTO NIM : 115114040 PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013 i PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI FINAL PROJECT AUTOMATIC SYRINGE PUMP BASED ARDUINO UNO MICROCONTROLLER Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree In Electrical Engineering Study Program PRAYADI SULISTYANTO NIM : 115114040 ELECTRICAL ENGINEERING STUDY PROGRAM FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY 2013 ii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI iii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI iv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI PERNYATAAN KEASLIAN KARYA Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah. Yogyakarta, 17 Juli 2013 Prayadi Sulistyanto v PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI HALAMAN MOTTO HIDUP DAN PERSEMBAHAN MOTTO : Tuhan Akan Memeluk Mimpi-mimpi Orang Yang Mau Berusaha Skripsi ini kupersembahkan untuk, Tuhan YME yang selalu menyertaiku Ani Sulistyawati Ibunda yang tercinta, M.Bakhrun Ayahanda tercinta, Marsupiyanti vi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Prayadi Sulistyanto Nomor Mahasiswa : 115114040 Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah ini yang berjudul : SYRINGE PUMP OTOMATIS BERBASIS MIKROKONTROLER ARDUINO UNO Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengolahnya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikan di Internet atau media lain untuk kepentingan akademis tanpa perlu memnita ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya. Yogyakarta, 18 Juli 2013 (Prayadi Sulistyanto) vii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI INTISARI Syringe pump merupakan peralatan medis yang berfungsi untuk memasukkan obat berwujud cairan ke dalam tubuh pasien dengan ukuran dan waktu tertentu secara otomatis. Prinsip kerja syringe pump adalah mengatur laju cairan yang dimasukan ke dalam tubuh dengan satuan ml/jam. Syringe pump otomatis berbasis mikrokontroler arduino uno terdiri dari tiga bagian yaitu : unit input, unit pengolah dan unit output. Unit input tersusun atas tombol navigasi “start”, “stop”, “reset”, dan keypad matrik 4x3 sebagai pengatur laju aliran dan sensor linear scale yang digunakan sebagai sensor posisi dari pendorong tabung suntik. Unit pengolah tersusun atas mikrokontroler arduino uno. Unit output tersusun atas driver motor stepper, motor stepper yang berfungsi sebagai penggerak pendorong tabung suntik, buzzer yang berfungsi untuk memberi peringatan ke pengguna apabila tabung suntik kosong dan LCD yang berfungsi sebagai penampil nilai laju cairan. Prinsip kerja syringe pump otomatis berbasis mikrokontroler arduino uno yaitu dengan mengolah nilai input laju aliran yang dimasukkan dan mengkonversi menjadi jeda setiap langkah motor stepper dan banyak langkah motor stepper. Motor stepper digunakan untuk mendorong tabung suntik. Semakin besar nilai jeda tiap langkah motor stepper, semakin kecil laju aliran yang dihasilkan oleh syrnge pump otomatis berbasis mikrokontroler arduino uno. Syringe pump otomatis berbasis mikrokontroler arduino uno berhasil dibuat dan dapat bekerja dengan baik dan rentang pengaturan laju cairan 0,1 – 999 ml/jam dengan ketelitian 0,1 ml. Syringe pump otomatis berbasis mikrokontroler arduino uno memiliki error dibawah 5%. Kata kunci : Syringe pump otomatis, mikrokontroler, Arduino Uno viii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI ABSTRACT Syringe pump is a medical equipment that used to inject automatically for size and time drugs fluid into patient body. The working principle of syringe pump is to set rate of fluid that entered into the body of the ml/hour unit. There are three main units of automation syringe pump based Arduino Uno microcontroller such as, the input unit, the processing unit, and the output unit. On the input unit, there are some navigation buttons such as start button, stop button, and reset button. Besides that inpu unit also contain a 4x3 matrix keypad and a linier scale sensor. The 4 x 3 matrix keypad used to control fluid flow rate and a linier scale sensor used to control position of the syringe plunger. The processing unit contain an Arduino Uno microcontroller. A stepper motor, buzzer, and LCD display are parts o an output unit. A stepper motor driver used to drive a syringe plunger. Buzzer used to warn the user when the syringe is empty. A LCD display used to display a fluid speed value. The working principle of automation syringe pump based Arduino Uno microcontroller is to process the flow rate input value and convert the value to give how many delay and step for motor stepper output. Stepper motor used to drive the syringe. If the greater delay value every step of stepper motor then the flow rate generated by automation syringe pump based on microcontroller Arduino Uno is smaller. Automated syringe pump based on Arduino Uno has been successfully created and work correctly based on the range adjustment liquid rate from 0.1 until 999 ml/hour with 0,1 ml precision. Syringe pump based on microcontroller Arduino Uno has an error less than 5%. Keywords : Automatic syringe pump, microcontroller, Arduino Uno ix PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI KATA PENGANTAR Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas rahmat dan karunia-Nya sehingga tugas akhir dengan judul “Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno” ini dapat diselesaikan dengan baik. Selama menulis tugas akhir ini, penulis menyadari bahwa ada banyak pihak yang telah memberikan bantuan dan dukungan pada penulis. Oleh karena itu, penulis ingin mengucapkan terima kasih kepada : 1. Ibu Ani Sulistyawati, Bapak M. Bakhrun, Mbak Sulis, Mas Agung dan saudarasaudara penulis yang senantiasa memberikan doa, semangat serta dukungan kepada penulis. 2. Ibu Ir. Prima Ari Setiyani. M.T. selaku dosen pembimbing yang dengan penuh kesabaran membimbing, memberi saran, dan kritik kepada penulis. 3. Seluruh Dosen Teknik Elektro dan seluruh Laboran Teknik Elektro yang telah memberikan ilmu dan pengetahuan kepada penulis selama kuliah. 4. Seluruh Dosen dan Karyawan Politeknik Mekatronika Sanata Dharma yang telah memberikan ilmu dan pengetahuan kepada penulis selama kuliah. 5. Sdri. Marsupiyanti yang telah memberikan semangat dan dukungan pada penulis. 6. Teman-teman alumni Politeknik Mekatronika Sanata Dharma yang sedang menempuh studi di Teknik Elektro yang telah memberikan doa, semangat dan dukungan kepada penulis. 7. Teman-teman Teknik Elektro semua angkatan yang telah memberikan semangat pada penulis. Penulis menyadari bahwa laporan tugas akhir ini masih sangat jauh dari sempurna, oleh karena itu penulis mengharapkan saran dan kritik yang membangun dari pembaca agar dalam proses penulisan dikemudian hari dapat semakin baik. Semoga tugas akhir ini bermanfaat bagi semua pihak, baik bagi penulis maupun bagi pembaca. Terima kasih. Yogyakarta, 21 Juni 2013 Penulis x PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR ISI HALAMAN JUDUL ................................................................................................ i HALAMN JUDUL (Bahasa Inggris) ....................................................................... ii HALAMAN PERSETUJUAN ................................................................................. iii HALAMAN PENGESAHAN .................................................................................. iv PERNYATAAN KEASLIAN KARYA .................................................................. v HALAMAN MOTTO HIDUP DAN PERSEMBAHAN ......................................... vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ................................................................. vii INTISARI ................................................................................................................. viii ABSTRACT ............................................................................................................. ix KATA PENGANTAR .............................................................................................. x DAFTAR ISI ............................................................................................................ xi DAFTAR GAMBAR ................................................................................................ xv DAFTAR TABEL .................................................................................................... xviii DAFTAR LAMPIRAN ............................................................................................ xx BAB I PENDAHULUAN ......................................................................................... 1 1.1. Latar Belakang ............................................................................................... 1 1.2. Tujuan dan Manfaat ........................................................................................ 2 1.3. Batasan Masalah ............................................................................................. 2 1.4. Metodologi Penelitian ..................................................................................... 3 BAB II DASAR TEORI ........................................................................................... 4 2.1. Syringe Pump ................................................................................................. 4 xi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2.2. Modul Mikrokontroler Arduino Uno................................................................ 4 2.2.1. Mikrokontroler ATmega328 .................................................................. 6 2.2.2. Timer/Counter pada Mikrokontroler Arduino Uno ................................ 7 2.3. Tombol ........................................................................................................... 8 2.4. Keypad Matrik 4x3 ......................................................................................... 10 2.5. Pembagi Tegangan ......................................................................................... 12 2.6. Linear Scale ................................................................................................... 12 2.7. LCD (Liquid Crystal Display) ........................................................................ 13 2.8. Motor Stepper ................................................................................................. 15 2.9. IC L298 .......................................................................................................... 17 2.10. Buzzer .......................................................................................................... 19 2.11. Jenis Ulir Menurut Jumlah Ulir Tiap Gang (Pitch) ....................................... 19 BAB III PERANCANGAN ALAT .......................................................................... 21 3.1. Layout Perancangan ....................................................................................... 21 3.2. Cara Kerja Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno .... 23 3.3. Perancangan Perangkat Keras ......................................................................... 24 3.3.1. Modul Mikrokontroler Arduino Uno ..................................................... 24 3.3.2. Sensor Posisi dengan Linear Scale ......................................................... 25 3.3.3. Tombol Navigasi ................................................................................... 27 3.3.4. Keypad Pengatur Laju Cairan ................................................................. 28 3.3.5. Driver Motor Stepper ............................................................................ 29 3.3.6. Liquid Crystal Display (LCD) ............................................................... 30 xii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3.3.7. Buzzer ................................................................................................... 31 3.4. Perancangan Perangkat Lunak ........................................................................ 31 3.4.1. Diagram Utama ..................................................................................... 31 3.4.2. Diagram Alir Tombol Navigasi ............................................................. 33 3.4.3. Diagram Alir Keypad Pengatur Laju Aliran ........................................... 34 3.4.4. Diagram Alir Input Linear Scale ............................................................ 34 3.4.5. Diagram Alir Peringatan Buzzer ............................................................ 35 3.4.6. Penentuan Laju Aliran dan Diagram Alir Gerakan Motor Stepper .......... 35 BAB IV HASIL DAN PEMBAHASAN ................................................................... 37 4.1. Hasil Implementasi Alat ................................................................................. 37 4.2. Perancangan Ulang untuk Koreksi Error ........................................................ 41 4.2.1. Koreksi Error Menggunakan Perangkat Keras ...................................... 41 4.2.2. Koreksi Error Menggunakan Perangkat Lunak ...................................... 46 4.3. Hasil Perancangan Perangkat Keras ................................................................ 52 4.4. Hasil Pengujian .............................................................................................. 54 4.4.1. Pengujian Tombol Navigasi ................................................................... 54 4.4.2. Pengujian Keypad Pengatur Laju Aliran ................................................ 54 4.4.3. Pengujian Driver Motor Stepper ............................................................ 55 4.4.4. Pengujian Buzzer ................................................................................... 56 4.5. Analisa Perangkat Lunak ................................................................................ 57 4.5.1. Implementasi Diagram Utama ............................................................... 57 4.5.2. Implementasi Diagram Alir Tombol Navigasi ........................................ 58 xiii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4.5.3. Implementasi Diagram Alir Keypad Pengatur Laju Aliran ..................... 61 4.5.4. Implementasi Diagram Alir Input Linear Scale ...................................... 64 4.5.5. Implementasi Diagram Alir Peringatan Buzzer ...................................... 64 4.5.6. Implementasi Diagram Alir Gerakan Motor Stepper .............................. 65 BAB V KESIMPULAN DAN SARAN .................................................................... 67 5.1. Kesimpulan .................................................................................................... 67 5.2. Saran .............................................................................................................. 67 DAFTAR PUSTAKA ............................................................................................... 68 xiv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR GAMBAR Gambar 2.1. Bentuk Fisik Syringe Pump TE-331 Terumo .......................................... 4 Gambar 2.2. Modul Mikrokontroler Arduino Uno ...................................................... 5 Gambar 2.3. Konfigurasi Pin ATmega328/ATmega168 pada Arduino Uno ................. 5 Gambar 2.4. Perangkat Lunak Arduino ...................................................................... 5 Gambar 2.5. Rangkaian Tombol dengan Pull-up Resistor .......................................... 10 Gambar 2.6. Bentuk Fisik Keypad Matrik 4x3 ........................................................... 11 Gambar 2.7. Rangkaian Keypad Matrik 4x3 .............................................................. 11 Gambar 2.8. Rangkaian Pembagi Tegangan ............................................................... 12 Gambar 2.9. Slide Pot-Motorized (10k Linear Taper) ................................................ 13 Gambar 2.10. Bentuk Fisik Modul LCD Topway ....................................................... 14 Gambar 2.11. Ilustrasi Motor Stepper Tipe Variable Reluctance (VR) ....................... 15 Gambar 2.12. Ilustrasi Motor Stepper Tipe Permanent Magnet (PM) ........................ 16 Gambar 2.13. Ilustrasi Motor Stepper Tipe Hybrid (HB) ........................................... 16 Gambar 2.14. Prinsip Kerja Motor Stepper ................................................................ 16 Gambar 2.15. IC L298N ............................................................................................ 18 Gambar 2.16. Rangkaian IC L298 ............................................................................. 19 Gambar 2.17. Simbol Buzzer ..................................................................................... 19 Gambar 2.18. Bentuk Fisik Buzzer ............................................................................ 19 Gambar 2.19. Ulir Tunggal dan Ulir Ganda ............................................................... 20 Gambar 3.1. Diagram Blok Sistem Secara Keseluruhan Syringe Pump ...................... 21 Gambar 3.2. Bentuk Fisik Syringe Pump Otomatis .................................................... 22 xv PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 3.3. Dimensi Syringe Pump Otomatis Tampak Atas ..................................... 23 Gambar 3.4. Dimensi Syringe Pump Otomatis Tampak Samping ............................... 23 Gambar 3.5. Rangkaian Pemanfaatan Pin Mikrokontroler Arduino Uno .................... 24 Gambar 3.6. Rangkaian Linear Scale ......................................................................... 25 Gambar 3.7. Rangkaian Tombol Navigasi .................................................................. 27 Gambar 3.8. Rangkaian Keypad Matrik 4x3 ............................................................... 28 Gambar 3.9. Rangkaian Driver Motor Stepper ........................................................... 29 Gambar 3.10. Rangkaian LCD .................................................................................. 30 Gambar 3.11. Rangkaian Buzzer ................................................................................ 31 Gambar 3.12. Diagram Utama ................................................................................... 32 Gambar 3.13. Diagram Alir Input Navigasi ............................................................... 33 Gambar 3.14. Diagram Alir Keypad Pengatur Laju Aliran ......................................... 34 Gambar 3.15. Diagram Alir Input Linear Scale ......................................................... 35 Gambar 3.16. Diagram Alir Peringatan Buzzer .......................................................... 35 Gambar 3.17. Diagram Alir Gerakan Motor Stepper .................................................. 36 Gambar 4.1. Blok Kontrol pada Alat Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno ..................................................................................... 52 Gambar 4.2. Konstruksi Alat Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno .............................................................................................................. 53 Gambar 4.3. Inisialisasi Program ............................................................................... 58 Gambar 4.4. Program Utama ..................................................................................... 58 Gambar 4.5. Diagram Alir Tombol Navigasi ............................................................. 59 Gambar 4.6. Implementasi Program Navigasi ............................................................ 60 xvi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Gambar 4.7. Hasil Penekanan Tombol Navigasi “start” ............................................. 60 Gambar 4.8. Hasil Penekanan Tombol Navigasi “stop” .............................................. 60 Gambar 4.9. Hasil Penekanan Tombol Navigasi “reset” ............................................ 61 Gambar 4.10. Diagram Alir Keypad Pengatur Laju Cairan ........................................ 61 Gambar 4.11. Implementasi Diagram Alir Keypad Pengatur Laju Cairan .................. 62 Gambar 4.12. Diagram Alir Perkalian ....................................................................... 63 Gambar 4.13. Implementasi Diagram Alir Perkalian .................................................. 63 Gambar 4.14. Hasil Penekanan Tombol Keypad Pengatur Laju Aliran ...................... 63 Gambar 4.15. Implementasi Diagram Alir Input Linear Scale ................................... 64 Gambar 4.16. Implementasi Diagram Alir Peringatan Buzzer .................................... 64 Gambar 4.17. Hasil Coding Peringatan Buzzer .......................................................... 64 Gambar 4.18. Diagram Alir Gerakan Motor Stepper .................................................. 65 Gambar 4.19. Implementasi Diagram Alir Gerakan Motor Stepper Step 1 dan Step 2 . 66 xvii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR TABEL Tabel 2.1. Konfigurasi dan Diskripsi Pin ATmega328 ................................................. 6 Tabel 2.2. Konfigurasi Alternatif Port D ..................................................................... 7 Tabel 2.3. Timer pada Mikrokontroler Arduino Uno ................................................... 8 Tabel 2.4. Macam-macam Saklar berdasar Konstruksinya .......................................... 9 Tabel 2.5. Spesifikasi Slide Pot-Motorized (10k Linear Taper) ................................... 13 Tabel 2.6. Konfigurasi Pin LCD Topway .................................................................... 14 Tabel 2.7. Pemberian Pulsa Motor Stepper ................................................................. 17 Tabel 2.8. Konfigurasi Pin IC L298 ............................................................................ 18 Tabel 2.9. Ulir ISO Metrik Normal ............................................................................. 20 Tabel 3.1. Pengalamatan Input Output Mikrokontroler Arduino Uno .......................... 25 Tabel 3.2. Tombol Navigasi ........................................................................................ 28 Tabel 3.3. Nilai Resistansi Tombol Keypad Matrik 4x3 .............................................. 28 Tabel 3.4. Pengalamatan Driver Motor Stepper .......................................................... 29 Tabel 3.5. Informasi yang Tertampil Dalam LCD ....................................................... 30 Tabel 3.6. Pengalamatan LCD .................................................................................... 30 Tabel 3.7. Deklarasi Pin Arduino Uno ........................................................................ 31 Tabel 4.1. Data Hasil Pengujian Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno .............................................................................................................. 38 Tabel 4.2. Data Hasil Pengujiann Laju Aliran 20 ml/jam dalam Waktu Tertentu ......... 40 Tabel 4.3. Data Hasil Pengujiann Laju Aliran 50 ml/jam dalam Waktu Tertentu ......... 41 Tabel 4.4. Data Hasil Pengujiann Laju Aliran 120 ml/jam dalam Waktu Tertentu ....... 41 Tabel 4.5. Data Hasil Pengujiann Laju Aliran 500 ml/jam dalam Waktu Tertentu ....... 41 xviii PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Tabel 4.6. Data Hasil Pengujiann Laju Aliran 999 ml/jam dalam Waktu Tertentu ....... 41 Tabel 4.7. Data Hasil Pengujian Linear Scale ............................................................. 42 Tabel 4.8. Data pembacaan Linear Scale Tiap Satu Putaran Motor Stepper ................. 42 Tabel 4.9. Nilai Error Rata-rata dan Laju Aliran Tiap Langkah Motor Stepper ........... 46 Tabel 4.10. Data Hasil Pengujian setelah Koreksi Error Pertama ............................... 47 Tabel 4.11. Nilai Error Rata-rata dan Laju aliran Tiap Langkah Motor Stepper .......... 49 Tabel 4.12. Data Hasil Pengujian seteleah Koreksi Error Kedua ................................ 49 Tabel 4.13. Bagian dari Blok Kontrol dan Fungsi dari Rangkaian ............................... 49 Tabel 4.14. Bagian dan Fungsi dari Alat ..................................................................... 53 Tabel 4.15. Data Hasil Pengujian Tombol Navigasi .................................................... 54 Tabel 4.16. Data Hasil Pengujian Keypad Pengatur Laju Cairan ................................. 54 Tabel 4.17. Data Hasil Pengujian Driver Motor Stepper ............................................. 56 Tabel 4.18. Data Hasil Pengujian Buzzer dengan Laju aliran 1,2 ml/jam ..................... 57 Tabel 4.19. Data Hasil Pengujian Buzzer dengan Laju aliran 4,8 ml/jam ..................... 57 Tabel 4.20. Data Hasil Pengujian Buzzer dengan Laju aliran 10,2 ml/jam .................. 57 xix PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI DAFTAR LAMPIRAN 1. LAMPIRAN LISTING PROGRAM UTAMA ................................................. L1 2. LAMPIRAN RANGKAIAN KESELURUHAN ............................................. L2 3. LAMPIRAN TABEL PENGAMBILAN DATA ............................................. L3 4. DATASHEET L298 ......................................................................................... L4 5. DATASHEET SLIDE POT-MOTORIZED ....................................................... L5 xx PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1 BAB I PENDAHULUAN 1.1. Latar Belakang Peralatan kesehatan yang digunakan di rumah sakit terkemuka di Indonesia sudah menggunakan teknologi yang canggih. Peralatan medis yang canggih sangat membantu tenaga medis dalam penanganan pasien karena proses pengobatan dan perawatan dapat dilakukan dengan cepat dan akurat. Berbagai macam penyakit yang diderita oleh pasien kadang membutuhkan penanganan khusus seperti penanganan nyeri pasca bedah menggunakan teknik regional epidural dengan meletakan kateter epidural (meletakan tabung elastis diantara kedua selaput keras dari sumsum belakang [2]) dan memberikan obat–obat anestetik lokal, opioid dan adjuvant lainnya pada masa pasca bedah baik secara intermittent maupun kontinyu [1] sehingga tenaga medis harus secara rutin memberikan obat dengan dosis tertentu kepada pasien secara tepat. Opioid adalah semua zat sintetik atau natural yang dapat berikatan dengan reseptor morfin. Opioid disebut juga sebagai analgetik narkotika yang sering dalam anesthesia untuk mengendalikan nyeri saat pembedahan dan nyeri pasca pembedahan [3]. Penggunaan komponen elektronika, mekanika dan mikrokontroler sangat dibutuhkan dalam dunia kesehatan untuk mendapatkan tingkat akurasi dan kepresisian yang diharapkan. Peralatan medis yang menggunakan perpaduan antara elektronika, mekanika dan mikrokontroler sudah banyak dijumpai dirumah sakit terkemuka seluruh Indonesia, misalnya syringe pump yang berfungi untuk memasukan obat berwujud cairan ke dalam tubuh pasien dengan ukuran dan waktu tertentu secara otomatis. Pada penanganan nyeri pasca bedah, pasien membutuhkan obat dengan dosis tertentu secara intermittent dan kontinyu [1]. Dengan menggunakan syringe pump maka pemberian obat ke pasien dapat dilakukan dengan mudah dengan tingkat kepresisian yang tinggi. Hal ini sangat membantu pasien dalam proses penyembuhan dari sakit yang dideritanya. Prinsip kerja syringe pump adalah mengatur laju cairan yang dimasukan ke dalam tubuh dengan satuan ml/jam yang berarti menyatakan jumlah cairan dalam milliliter dalam satuan jam. Syringe pump otomatis berbasis mikrokontroler Arduino Uno yang akan dibuat dalam penelitian ini, merupakan alat bantu kesehatan yang akan mengatur laju cairan yang dikontrol dengan mikrokontroler Arduino Uno. Pengaturan dilakukan dengan mengatur 1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 2 pendorong syringe yang digerakkan menggunakan motor stepper. Dengan mengatur step motor stepper maka laju cairan dapat dikendalikan. Syringe pump yang saat ini ada dipasaran adalah Syringe Pump TE-331 Terumo memiliki rentang pengaturan laju cairan 0,1 - 999 ml/jam untuk syringe ukuran 50 ml dengan ketelitian 0,1 ml pada rentang pengaturan laju cairan 0,1 - 99 ml/jam dan ketelitian 1ml pada rentang pengaturan laju cairan 100 - 999 ml/jam [4]. Syringe pump otomatis berbasis mikrokontroler Arduino Uno yang akan dibuat dalam penelitian ini memiliki rentang pengaturan laju cairan 0,1 - 999 ml/jam dengan ketelitian 0,1 ml. Keunggulan dari syringe pump otomatis berbasis mikrokontroler Arduino Uno yang akan dibuat dalam penelitian ini dibandingkan dengan syringe pump yang ada dipasaran saat ini adalah laju cairan yang tetap pada ketelitian 0,1 ml. 1.2. Tujuan dan Manfaat Tujuan yang akan dicapai adalah : Merancang dan mengimplementasikan syringe pump otomatis berbasis mikrokontroler Arduino Uno sebagai alat medis dengan rentang pengaturan laju cairan 0,1 – 999 ml/jam dengan ketelitian 0,1 ml. Manfaat yang akan dicapai adalah : Membantu tenaga medis memasukan obat berwujud cair kedalam tubuh secara tepat dan akurat dalam jumlah dan waktu tertentu. 1.3. Batasan Masalah Batasan masalah pada penelitian ini : a. Merancang dan mengimplementasikan syringe pump otomatis berbasis mikrokontroler Arduino Uno. b. Menggunakan tabung suntik produk TERUMO berukuran 60ml. c. Rentang pengaturan laju cairan antara 0.1 ml/jam sampai dengan 999 ml/jam d. Ketelitian syringe pump yang dibuat adalah 0.1 ml/jam. e. Setpoint diatur menggunakan keypad matrik dan nilai dari setpoint akan ditampilkan dalam LCD 16x2. f. Menggunakan sensor linier scale sebagai feedback dari alat yang dibuat. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 1.4. 3 Metodologi Penelitian Metode yang digunakan dalam penelitian ini adalah : a. Mengumpulkan referensi-referensi mengenai alat syringe pump. b. Mengumpulkan referensi-referensi mengenai modul Arduino Uno. c. Merancang desain sistem alat syringe pump otomatis berbasis mikrokontroler Arduino Uno. d. Merancang desain hardware syringe pump otomatis berbasis mikrokontroler Arduino Uno. e. Membuat hardware dari desain hardware syringe pump otomatis berbasis mikrokontroler Arduino Uno. f. Merancang flowchart syringe pump otomatis berbasis mikrokontroler Arduino Uno. g. Coding program dengan menggunakan software arduino. h. Melakukan pengambilan data menggunakan gelas ukur dengan ketelitian 0,1 ml dari output laju cairan yang dihasilkan alat syringe pump otomatis berbasis mikrokontroler Arduino Uno dengan nilai setpoint. i. Melakukan pengambilan data waktu yang dibutuhkan untuk mendapatkan laju cairan sesuai dengan setpoint menggunakan stopwatch. j. Melakukan analisa dari hasil pengambilan data alat syringe pump otomatis berbasis mikrokontroler Arduino Uno. k. Melakukan pengambilan kesimpulan dari alat syringe pump otomatis berbasis mikrokontroler Arduino Uno yang dibuat dalam penelitian ini. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 4 BAB II DASAR TEORI Bab ini menjelaskan tentang dasar teori yang akan dicapai dalam melakukan perancangan syringe pump otomatis berbasis mikrokontroler Arduino Uno. Dasar teori yang akan diterapkan dalam bab ini meliputi : syringe pump, mikrokontroler Arduino Uno, tombol input, keypad matrik, linear scale, LCD, motor stepper, IC L298 dan buzzer. 2.1. Syringe Pump Syringe pump merupakan salah satu peralatan elektromedis yang berfungsi untuk memasukan cairan obat kedalam tubuh pasien dalam jangka waktu tertentu secara teratur [5]. Prinsip kerja syringe pump adalah mengatur laju cairan yang dimasukan ke dalam tubuh dengan satuan ml/jam yang berarti menyatakan jumlah cairan dalam milliliter dalam satuan jam. Bentuk fisik syringe pump dapat dilihar pada gambar 2.1. Gambar 2.1 Bentuk Fisik Syringe Pump TE-331 Terumo [4] Peralatan elektromedis fungsinya sama dengan syringe pump adalah infusion pump. Meskipun kedua peralatan ini mempunyai fungsi yang sama, kedua jenis pump ini ternyata mempunyai jenis atau karakteristik yang berbeda. Pada infusion pump jenis larutan obat yang dimasukan ke dalam tubuh pasien maksimal sebesar 500 cc. Sedangkan untuk syringe pump hanya sebesar 50 cc [6]. 2.2. Modul Mikrokontroler Arduino Uno Arduino Uno merupakan sebuah perangkat keras dari arduino berupa sistem minimum dengan mikrokontroler ATmega328 [7]. Hardware mikrokontroler Arduino Uno dapat dilihat pada gambar 2.2. 4 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 5 Gambar 2.2. Modul Mikrokontroler Arduino Uno [7] Mikrokontroler Arduino Uno memiliki 14 pin digital (6 pin diantaranya dapat digunakan sebagai output Pulse Width Modulation atau PWM ), input/output dan 6 pin input analog, osilator 16 MHz, koneksi USB, konektor input tegangan, ICSP header dan tombol reset. Modul mikrokontroler Arduino Uno ditunjukan pada gambar 2.1, sedangkan gambar 2.3 menunjukan konfigurasi pin ATmega 328 pada Arduino Uno. Gambar 2.3. Konfigurasi pin ATmega328/ATmega168 pada Arduino Uno [7] Pemprograman modul mikrokontroler Arduino Uno menggunakan perangkat lunak arduino (gambar 2.4). ATmega328 pada arduno uno sudah terpasang bootloader yang memungkinkan pengguna untuk mengunggah kode tanpa menggunakan perangkat keras tambahan. Gambar 2.4. Perangkat lunak Arduino PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 6 Fasilitas komunikasi yang dimiliki mikrokontroler Arduino Uno meliputi komunikasi antara Arduino Uno dengan komputer, Arduino Uno dengan arduino lain, dan Arduino Uno dengan mikrokontroler yang lain. ATmega328 menyediakan fasilitas USART (Universal Synchronus and Asynchronus Serial Receiverand Transmitter) pada pin D0 (Rx) dan pin D1 (Tx). 2.2.1. Mikrokontroler ATmega328 Dalam penelitian ini mikrokontroler yang digunakan adalah mikrokontroler ATmega328 karena kompatibilasnya dengan modul mikrokontroler Arduino Uno. ATmega328 memiliki fitur 32 kByte downloadable flash memory, 1 kByte Electrically Erasable Programmable Read-Only Memory (EEPROM), 2 kByte internal Static RandomAcessMemory (SRAM), 2 Timer/Counter 8 bit dan1 Timer/Counter 16 bit, 6 kanal PWM, serial USART yang dapat diprogram dan frekuensi kerja dapat mencapai 20MHz [8]. ATmega328 memiliki fungsi masing-masing pin yang dapat dilihat pada gambar 2.3 sedangkan untuk penjelasan masing-masing pin dapat dilihat pada tabel 2.1 dan konfigurasi alternatif port D dapat dilihat pada tabel 2.2. Tabel 2.1. Konfigurasi dan diskripsi pin ATmega328 [8] No Pin Nama Pin Keterangan 7 VCC Sumer tegangan positif 8, 22 GND Ground Masing-masing pin pada port B memiliki resistor pull-up 9,10, 14, Port B 15,16,17,18,19 ( PB7:0 ) internal dan dapat digunakan sebagai 8 bit I/O digital. Pin PB6 dan PB7 terhubung dengan Kristal 16Mhz, tidak digunakan sebagai I/O. Pin PB1- pin PB3 dapat digunakan sebagai output PWM. Masing-masing pin pada port C memiliki resistor pull-up 1, 23, 24,25, Port C internal dan dapat digunakan sebagai 7 bit I/O analog. Pin 26, 27, 28 ( PC6:0 ) PC6 digunakan sebagai input reset, tidak digunakan sebagai I/O 2, 3, 4, 5, 6, Port D 11, 12, 13 ( PD7:0 ) 20 AVcc Sumber tegangan positif untuk konversi analog ke digital 21 Aref Tegangan referensi untuk konversi analog ke digital Konfigurasi alternatif port D dapat dilhat pada tabel 2.2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 7 Tabel 2.2. Konfigurasi Alternatif Port D [8] No Pin Nama Pin 13 PD7 Keterangan AIN1 (Analog Comparator Negative Input) PCINT23 (Pin Charge Interrupt 2 ) AIN0 (Analog Comparator Negative Input ) 12 PD6 OC0A (Timer/Counter 0 Output Compare Match A Output) PCINT22 (Pin Change Interupt 22) T1 (Timer/Counter 1 External Counter Input) 11 PD5 OC0B (Timer/Counter 0 Output Compare Match B Output) PCINT21 (Pin Change Interupt 21) XCK (USART External Clock Input/Output) 10 PD4 T0 (Timer/Counter 0 External Counter Input) PCINT20 (Pin Change Interupt 20) INT1 (Extenal Interupt 1 Input) 9 PD3 OC2B (Timer/Counter 2 Output Compare Match B Output) PCINT19 (Pin Change Interupt 19) 8 PD2 7 PD1 6 PD0 INT0 (Extenal Interupt 0 Input) PCINT18 (Pin Change Interupt 18) TXD (USART Output Pin) PCINT17 (Pin Change Interupt 17) RXD (USART Input Pin) PCINT16 (Pin Change Interupt 16) 2.2.2. Timer/Counter pada Mikrokontroler Arduino Uno Ada tiga buah timer yang tersedia di mikrokontroler ATmega328 dan dapat dikonfigurasi untuk memenuhi kebutuhan penggunanya [9]. Fungsi dari ketiga timer tersebut dapat dilihat pada tabel 2.3. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 8 Tabel 2.3. Timer pada Mikrokontroler Arduino Uno Timer Timer 0 Fungsi Waktu delay dengan satuan millisecond Pin Output Pin 5 dan 6 Pengendali output PWM Timer 1 Pengendali output PWM Pin 9 dan 10 Timer 2 Pengendali output PWM Pin 3 dan 11 Dari ketiga timer tersebut, hanya timer 0 yang dilengkapi dengan ISR (Interrupt Service Routine) sehingga untuk keperluan PWM (Pulse Width Modulation) menggunakan timer 1 yang akan mengatur pin 9 dan 10 sedangkan untuk timer 2 akan mengatur pin 3 dan 11. Hal yang perlu diperhatikan dalam penggunaan timer adalah sebagai berikut: 1. Inisialisasi Inisialisasi dilakukan pertama kali untuk menentukan periode timer karena secara default bernilai satu detik. 2. Pengaturan periode Mikrokontroler Arduino memiliki periode minimal satu mikrodetik atau 1MHz dan periode maksimal 8388480 mikrodetik atau 8,3 detik. Pengaturan periode ini akan merubah interrupt dan frekuensi kedua output PWM. 3. PWM Pin output untuk timer1 adalah pin 9 dan 10 sedangkan timer 2 memliki output pin 3 dan 11. Duty cycle yang dimiliki adalah 10 bit sehingga dapat diatur mulai dari nol sampai 1023. 4. Fungsi interrupt Pemanggilan fungsi interrupt dalam mikrodetik. Perlu diperhatikan dalam penggunaan fungsi interrupt karena akan berjalan pada frekuensi tinggi, atau CPU tidak akan pernah masuk ke program utama dan program akan terkunci di fungsi interrupt. 5. Mematikan pin PWM Dengan mematikan PWM maka pin tersebut dapat digunakan untuk fungsi yang lain 2.3. Tombol Tombol adalah sebuah alat yang berfungsi sebagai penghubung dan pemutus arus listrik. Dalam rangkaian elektronika dan rangkaian listrik, tombol atau saklar berfungsi untuk menghubungkan dan memutuskan arus listrik yang mengalir dari sumber tegangan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 9 menuju beban (output) atau dari sebuah sistem ke sistem lainya [10]. Macam-macam tombol atau saklar berdasar konstruksinya dapat dilihat pada tabel 2.4. Tabel 2.4. Macam-macam Saklar berdasar Konstruksinya [8] Jenis Saklar (Switch) SPST (Single Pole, Single Throw) Saklar On-Off sederhana Saklar Push-Off Kedua terminal akan terputus selama ditekan SPDT (Single Pole, Double Throw) Terminal sentral (COM) akan terhubung ke salah satu terminal dan akan terputus ke terminal lainnnya dalam satu kondisi. DPST (Double Pole, Single Throw) Dalam kondisi On ("1") dua terminal sentral akan terhubung ke terminal pasangannya dan akan terputus ketika kondisi Off ("0") DPDT (Double Pole, Double Throw) Dua terminal sentral akan terhubung ke salah satu terminal pasangannya dan teputus ke terminal pasangannya yang lain dalam satu kondisi. Simbol Saklar Contoh fisik PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 10 Dalam perancangan alat elektronika yang menggunakan IC digital, perlu memperhatikan mengenai resistor pull-up dan resistor pull-down pada input. Tujuan dari resistor ini adalah untuk menghindari kondisi mengambang pada masukan IC. Pada IC jenis TTL, jika kaki tidak terhubung maka akan dianggap selalu mendapat logic satu (high) atau menggunakan pull-up resistor [11]. Pull-up resistor berarti menghubungkan masukan IC supaya secara default mendapat logic satu, ketika mendapat trigger maka akan berubah menjadi logic nol atau sering disebut dengan aktif low. Gambar rangkaian tombol dengan pull-up resistor dapat dilihat pada gambar 2.5. Vcc Ke Pin Mikrokontroler Resistor Switch Gambar 2.5. Rangkaian Tombol dengan Pull-up Resistor Besarnya resistansi resistor dalam rangkaian pull-up resistor harus diperhatikan karena akan menentukan besarnya arus yang mengalir ke mikrokontroler. Sesuai dengan hukum Ohm, besarnya resistansi resistor dapat dihitung dengan persamaan: R = V / I ......................................................... (2.1) dengan : R = resistansi resistor ( Ohm ) V = tegangan catu daya (Volt) I = arus yang diijinkan masuk ke pin mikrokontroler ( Ampere ) 2.4. Keypad Matrik 4x3 Tombol keypad matrik 4x3 adalah susunan dari beberapa buah saklar tekan (push button) yang disusun secara matrik. Dipasaran terdapat beberapa jenis tombol keypad, dan yang paling sering digunakan diantaranya adalah tombol keypad matrik 4x3 dan keypad matrik 4x4. Tombol keypad ini banyak digunakan dalam aplikasi sistem berbasis mikrokontroler seperti untuk memasukan password atau data ke sebuah sistem. Cara mengakses tombol keypad ini dilakukan dengan cara scaning, yaitu memberi logika 0 pada PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 11 salah satu pin (baik baris atau kolom) kemudian membaca titik yang lain [12]. Bentuk fisik fisik keypad matrik 4x3 dapat dilihat pada gambar 2.6. Gambar 2.6. Bentuk Fisik Keypad Matrik 4x3 [13] Dalam perancangan ini, keypad matrik yang digunakan adalah keypad matrik 4x3 dengan memanfaatkan satu pin analog Arduino Uno. Gambar rangkaian keypad matrik 4x3, dapat dilihat pada gambar 2.7. Gambar 2.7 Rangkaian Keypad Matrik 4x3 [14] Pada gambar 2.7, semua baris dan kolom terhubung ke beberapa resistor. Setiap penekanan tombol akan memberikan nilai resistansi yang berbeda yaitu antara 0kΩ sampai 11kΩ [14]. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 12 2.5. Pembagi Tegangan Rangkaian pembagi tegangan biasanya digunakan untuk membuat suatu tegangan referensi dari sumber tegangan yang lebih besar, titik tegangan referensi pada sensor, untuk memberikan bias pada rangkaian penguat atau untuk memberi bias pada komponen aktif. Rangkaian pembagi tegangan pada dasarnya dapat dibuat dengan dua buah resistor, contoh rangkaian dasar pembagi tegangan dengan output Vo dari tegangan sumber Vi menggunakan resistor pembagi tegangan R1 dan R2 seperti pada gambar berikut [15]. Gambar 2.8. Rangkaian Pembagi Tegangan [15] Besarnya Vo dapat dirumuskan sebagai berikut : Vo = dengan : x Vi ...............................................................( 2.2) R1 = resistansi resistor pertama ( Ohm ) R2 = resistansi resistor kedua ( Ohm ) Vi = tegangan input (Volt) Vo = tegangan output (Volt) 2.6. Linear Scale Linear scale merupakan sensor yang digunakan untuk mendeteksi posisi. Slide PotMotorized (10k linear Taper) merupakan potensiometer berpenggerak motor servo. Slide menggunakan dua buah potensiometer yang terpisah sehingga untuk membaca posisi dapat menggunakan salah satu potensiometer saja. Potensiometer bermotor berguna juga ketika dibutuhkan kemampuan untuk lompat menuju titik tertentu secara tepat [16]. Gambar 2.9 menunjukan bentuk fisik dari Slide Pot-Motorized (10k linear Taper). PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 13 Gambar 2.9. Slide Pot-Motorized (10k linear Taper) [16] Slide Pot-Motorized dapat difungsikan sebagai sensor posisi (line track) dan actuator (servo track). Jika Slide Pot-Motorized difungsikan sebagai actuator maka perpindahan posisi dapat dilakukan dengan mengaktifkan motor servo sedangkan feedback posisi dapat menggunakan potensiometer (Line track). Spesifikasi dari Slide Pot-Motorized (10k linear Taper) dapat dilihat pada tabel 2.5. Tabel 2.5. Spesifikasi Slide Pot-Motorized (10k linear Taper) [16] Keterangan Spesifikasi Tegangan operasional 6 – 11 Vdc Arus operasional 800mA Kecepatan perpindahan posisi 20mm/0.1 sec Jangkauan 100mm Total resistansi potensiometer 10kΩ ±20 % Daya operasional Line Track : 0,5 W Servo track : 0,5 W 2.7. LCD (Liquid Crystal Display) Liquid Crystal Dysplay (LCD) merupakan material yang mengalir seperti cairan, tetapi memiliki struktur molekul dengan sifat-sifat yang bersesuaian dengan padatan (solid). Ada 2 tipe utama LCD yang dikembangkan, yaitu field effect dan dynamic scattering. Keunggulan LCD dibandingkan dengan LED adalah daya yang diperlukan lebih rendah, tampilan yang lebih lengkap (angka, huruf grafis dan warna) dan kemudahan dalam memprogram. Kerugian LCD dibandingkan dengan LED adalah waktu hidup PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 14 (lifetime) yang lebih singkat, waktu tanggap yang lebih lambat dan memerlukan sumber cahaya baik internal atau eksternal [17]. LCD yang dipakai adalah LCD Topway LMB162AFC 2x16 karakter yang kompatibel dengan Hitachi tipe HD44780U. LCD memerlukan tiga jalur kontrol dan delapan jalur data (untuk mode 8 bit) atau empat jalur data (untuk mode 4 bit). Ketiga jalur kontrol yang dimaksud adalah pin E, RS, dan R/W. Bentuk fisik LCD dapat dilihat pada gambar 2.10, dan konfigurasi pin 1-16 pada LCD Topway dapat dilihat pada tabel 2.6 . Gambar 2.10. Bentuk fisik modul LCD Topway [18] Tabel 2.6. Konfigurasi pin LCD Topway [19] No Pin Nama Pin Fungsi Pin Keterangan 1 VSS Sumber tegangan Ground 2 VDD Sumber tegangan Sumber tegangan positif 3 V0 Sumber tegangan 4 RS Sumber tegangan 5 R/W Input Read / Write control bus 7 E Input Data Enable, biasanya juga disebut “EN” 8 DB0 9 DB0 10 DB0 11 DB0 12 DB0 13 DB0 14 DB0 Sumber tegangan referensi untuk mengatur kontras LCD Register select 6 I/O Bi-directional tri-state data bus PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 15 Tabel 2.6. (Lanjutan) Konfigurasi pin LCD Topway [19] No Pin Nama Pin Fungsi Pin Keterangan 15 BLA Sumber tegangan Sumber tegangan positif backlight 16 BLK Sumber tegangan Sumber tegangan negatif backlight Pin Enable (E) digunakan untuk mengaktifkan LCD. Sebelum mengirim data ke LCD pin E harus berlogika satu (high). Data yang dikirim terletak pada jalur data. Transisi dari logika satu (high) ke logika nol (low) memberitahu LCD untuk mengambil data pada jalur kontrol dan jalur data. Pin RS adalah pin register select. Saat pin RS berlogika nol (low), data yang dikirim adalah perintah-perintah seperti membersihkan layar, posisi kursor, dan lain-lain. Jika pin RS berlogika satu (high), maka data yang dikirim adalah teks data dimana teks ini yang harus ditampilkan pada layar. Pin R/W adalah pin Read/Write. Pada saat pin R/W berlogika nol (low), informasi pada jalur data berupa pengiriman data ke LCD (write). Sedangkan saat pin R/W berlogika high, informasi pada jalur data berupa pengambilan data dari LCD (read) [17]. 2.8. Motor Stepper Motor stepper adalah perangkat elektromekanis yang bekerja dengan mengubah pulsa elektronis menjadi gerakan mekanis diskrit [20]. Motor stepper bergerak berdasarkan urutan pulsa yang diberikan kepada motor sehingga diperlukan pengendali motor stepper yang membangkitkan pulsa-pulsa periodik. Ada tiga tipe motor stepper yaitu : Motor stepper tipe variable reluctance (VR) yang ilustrasinya dapat dilihat pada gambar 2.11, motor stepper tipe permanent magnet (PM) yang ilustrasinya dapat dilihat pada gambar 2.12, dan motor stepper tipe hybrid (HB) yang ilustrasinya dapat dilihat pada gambar 2.13. Gambar 2.11. Ilustrasi Motor Stepper Tipe Variable Reluctance (VR) [20] PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 16 Gambar 2.12. Ilustrasi Motor Stepper Tipe Permanent Magnet (PM) [20] Gambar 2.13. Ilustrasi Motor Stepper Tipe Hybrid (HB) [20] Motor stepper memiliki prinsip kerja yang hampir sama dengan motor induksi lainnya. Hal yang membedakan motor stepper dengan motor induksi biasa adalah motor stepper memiliki beberapa lilitan pada rotor yang jumlahnya ditunjukkan oleh jumlah bit motor stepper tersebut dan juga menunjukan besar derajat pada setiap langkah putaran [21]. Pada motor stepper empat bit terdapat empat lilitan yang menentukan gerakan rotor. Dengan menggunakan gambar 2.14, prinsip kerja dari motor stepper akan dijelaskan pada paragraph berikutnya. Gambar 2.14. Prinsip Kerja Motor Stepper [21] Suatu lilitan induktor dengan arah tertentu dialiri arus listrik searah, akan timbul medan magnet berkutub utara-selatan pada ujung-ujung inti besinya. Medan magnet pada keempat lilitan stator motor stepper SA, SB, SC, dan SD, dapat diaktifkan masing-masing. Pengaktifan medan magnet pada satu lilitan stator akan menarik ujung rotor R untuk mensejajarkan dirinya dengan stator penarik. Dimisalkan gambar di atas menunjukkan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 17 kondisi awal suatu motor stepper yang salah satu ujung rotor R sedang sejajar dengan lilitan stator SA. Jika dalam keadaan tersebut aktivitas pemberian arus dipindahkan ke lilitan SB, maka ujung rotor R yang terdekat dengan SB akan segera mensejajarkan diri dengan SB. Berarti, rotor akan berputar searah jarum jam sejauh 18o. Sebaliknya, jika dari kondisi awal lilitan pada stator SD yang diaktifkan, maka rotor akan berputar berlawanan dengan arah jarum jam sejauh 18o, hingga ujung rotor yang terdekat menjadi sejajar dengan SD. Jadi, untuk memutar rotor sejauh 360o searah jarum jam, diperlukan 20 langkah aktivasi (360o = 20 x 18o), yaitu SB, SC, SD, SA, SB, ... dst [21]. Pada tabel 2.7 diperlihatkan contoh cara pemberian pulsa jika diinginkan gerakan motor stepper ( gambar 2.14) yang bergerak empat langkah searah jarum jam, kemudian dilanjutkan motor berbalik arah berlawanan jarum jam sejuah empat langkah [21]. Tabel 2.7. Pemberian Pulsa Motor Stepper [21] SA SB SC SD Gerakan 0 1 0 0 CW 0 0 1 0 CW 0 0 0 1 CW 1 0 0 0 CW 0 0 0 1 CCW 0 0 1 0 CCW 0 1 0 0 CCW 1 0 0 0 CCW 2.9. IC L298 IC L298 adalah jenis IC driver yang dapat digunakan untuk mengendalikan arah putaran dan kecepatan motor DC ataupun motor stepper. IC L298 dapat memberikan output tegangan untuk motor dc dan motor stepper sebesar 50 volt. IC l298 terdiri dari transistor-transistor logik (TTL) dengan gerbang AND yang memudahkan dalam menentukan arah putaran suatu motor DC dan motor stepper. Dapat mengendalikan 2 untuk motor DC namun pada hanya dapat mengendalikan satu motor stepper [22]. Bentuk fisik IC L298 dapat dilihat pada gambar 2.15. Konfigurasi pin IC L298 dapat dilihat pada tabel 2.8. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 18 Gambar 2.15. IC L298N [23] Tabel 2.8. Konfigurasi Pin IC L298 [24] No Pin Nama 1, 15 Sense A, Sense B Keterangan Kontrol besar arus dari beban dengan menggunakan resistor yang dihubungkan ke ground 2,3 Out 1, Out 2 Output bridge A, arus yang mengalir ke beban di kontrol oleh pin 1. 4 Vs Input tegangan untuk motor. Diperlukan penambahan capasitor 100nF yang dihubungkan ke ground. 5, 7 Input 1, Input 2 6,11 Enable A, Enable B Input bridge A Enable A digunakan untuk mengaktifkan bridge A Enable B digunakan untuk mengaktifkan bridge B 8 GND Ground. 9 Vss Input tegangan untuk blok logika. Diperlukan penambahan capasitor 100nF yang dihubungkan ke ground. 10,12 Input 3, Input 4 13,14 Out 3, Out 4 Input bridge B Output bridge B, arus yang mengalir ke beban di kontrol oleh pin 15. Dalam perancangan ini, IC L298 digunakan sebagai driver motor stepper yang di kontrol oleh mikrokontroler Arduino Uno. Gambar rangkaian IC L298 dapat dilihat pada gambar 2.16. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI C6 470uF U1 VCC1 1EN 2EN Pin D.5 Pin D.6 Pin D.7 5 7 10 12 1A1 1A2 2A1 2A2 VCC2 1E 2E L298 100nF 4 1 15 MOTOR STEPPER 1 0.5 0.5 D1 D2 D3 D4 2 4 1Y 1 1Y 2 2Y 1 2Y 2 2 3 13 14 3 9 6 11 GND C7 100nF Pin D.4 +12V C8 +5V 19 D6 D7 D8 8 D5 Gambar 2.16. Rangkaian IC L298 [24] 2.10. Buzzer Buzzer merupakan alat yang dapat digunakan untuk merubah sinyal listrik menjadi sinyal suara. Pada umumnya buzzer digunakan untuk alarm, karena penggunaannya cukup mudah yaitu dengan memberikan tegangan input maka buzzer akan mengeluarkan bunyi. Frekuensi suara yang di keluarkan oleh buzzer yaitu antara 1-5 KHz [25]. Simbol buzzer dapat dilihat pada gambar 2.17 dan bentuk fisik buzzer dapat dilihat pada gambar 2.18. LS1 1 BUZZER 2 Gambar 2.17. Simbol Buzzer Gambar 2.18. Bentuk Fisik Buzzer [26] 2.11. Jenis Ulir Menurut Jumlah Ulir Tiap Gang (Pitch) Dilihat dari banyaknya ulir tiap gang (pitch) maka ulir dapat dibedakan menjadi ulir tunggal dan ulir ganda. Ulir ganda artinya dalam satu putaran (dari puncak ulir yang satu ke puncak ulir yang lain) terdapat lebih dari satu ulir, misalnya dua ulir, tiga ulir dan empat ulir. Untuk ulir ganda ini biasanya disebutkan berdasarkan jumlah ulirnya, misalnya ganda dua, ganda tiga dan ganda empat. Gambar 2.19 menunjukkan bagan dari ulir tunggal dan ulir ganda. Melihat bentuknya, maka satu putaran pada ulir ganda dapat memindahkan jarak yang lebih panjang dari pada satu putaran ulir tunggal [27]. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 20 Dalam perancangan ini, ulir yang digunakan menggunakan diameter enam (M6) yang memiliki pitch sebesar 1mm sesuai tabel ulir ISO matrik dapat dilihat pada tabel 2.9. Gambar 2.19. Ulir Tunggal dan Ulir Ganda [27] Tabel 2.9 Ulir ISO Metik Normal [28] PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 21 BAB III RANCANGAN PENELITIAN Syringe pump otomatis berbasis mikrokontroler Arduino Uno terdiri dari tiga bagian yaitu : unit input, unit pengolah dan unit output. Unit input tersusun atas tombol navigasi, keypad pengatur laju cairan dengan menggunakan keypad matrik 4x3 dan sensor linear scale. Unit pengolah tersusun atas mikrokontroler Arduino Uno. Unit output tersusun atas driver motor stepper, motor stepper, buzzer dan LCD. Diagram blok sistem dapat dilihat pada gambar 3.1. Tombol Input Navigasi LCD 16x2 Mikrokontroler Arduino Uno Keypad pengatur laju cairan Buzzer Driver Motor Stepper Linier scale INPUT PENGOLAH Motor Stepper OUTPUT Gambar 3.1. Diagram Blok Sistem Secara Keseluruhan Syringe Pump Tombol input terdiri dari 3 tombol navigasi dan keypad pengatur laju cairan menggunakan keypad matrik. Tombol navigasi terdiri dari tombol start, stop, dan reset yang dihubungkan dengan mikrokontroler Arduino Uno pin A.1 sampai pin A.3. Keypad matrik sebagai pengatur laju cairan dihubungkan dengan mikrokontroler Arduino Uno pin A.4. Sensor linear scale dihubungkan dengan mikrokontroler Arduino Uno pin A.0. Output dari syringe pump otomatis berbasis mikrokontroler Arduino Uno yaitu LCD 16x2, buzzer dan motor stepper. Driver motor stepper dihubungkan dengan mikrokontroler Arduino Uno pin 3 sampai pin 7. LCD 16x2 dihubungkan dengan mikrokontroler Arduino Uno pin 2, pin 3, dan pin 9 sampai pin 12. Buzzer dihubungkan dengan mikrokontroler Arduino Uno pin 8. 3.1. Layout Perancangan Syringe pump otomatis berbasis mikrokontroler Arduino Uno tersusun atas : 21 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 22 1. Tabung suntik produk TUREMO berukuran 60ml. 2. Linear scale sebagai sensor posisi dari tabung suntik 3. LCD 16x12 sebagai display dari Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno 4. Tiga buah tombol navigasi 5. Dua buah tombol untuk mengatur laju aliran Bentuk Fisik dari Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno dapat dilihat pada gambar 3.2. Sedangkan dimensi dari Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno dapat dilihat pada gambar 3.3 dengan skala yang digunakan pada perancangan ini menggunakan skala satuan millimeter. 1 2 3 4 5 6 7 8 Gambar 3.2. Bentuk Fisik Syringe Pump Otomatis Keterarangan : 1. Tabung Suntik 5. Dudukan tabung suntik 2. Linear Scale 6. LCD 3. Ulir pendorong tabung suntik 7. Keypad pengatur laju aliran 4. Motor Stepper 8. Tombol navigasi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 23 Gambar 3.3 Dimensi Syringe Pump Otomatis tampak atas Gambar 3.4 Dimensi Syringe Pump Otomatis tampak samping 3.2. Cara Kerja Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno Cara kerja Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno dilakukan dengan menekan tombol pengatur laju aliran sesuai dengan yang diinginkan dan nilai dari PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 24 laju aliran akan tertampil di LCD. Setelah nilai laju aliran selesai dimasukan, dilanjutkan dengan menekan tombol navigasi “start” sehingga syringe pump otomatis akan berjalan. Pada saat syringe pump otomatis berjalan, tombol pengatur laju aliran tidak dapat dioperasikan sebelum tombol navigasi “stop” ditekan. Tombol navigasi “reset” hanya akan berfungsi jika syringe pump otomatis tidak dalam kondisi berjalan. Tombol navigasi “reset” digunakan untuk mengembalikan nilai laju aliran ke posisi nol. Pada saat laju aliran diatur lebih besar dari 60ml/jam dan cairan dalam tabung kosong, maka LCD akan menampilkan “Standby”. Standby menginstruksikan ke user untuk mengganti atau mengisi cairan sampai penuh 60 ml. Setelah cairan diisikan ke tabung suntik dengan penuh (60 ml), maka dengan menekan tombol navigasi “start” maka proses akan dilanjutkan kembali. 3.3. Perancangan Perangkat Keras 3.3.1. Modul Mikrokontroler Arduino Uno Pada perancangan ini, mikrokontroler Arduino Uno digunakan sebagai pengontrol dari seluruh sistem syringe pump otomatis. Gambar rangkaian pemanfaatan pin mikrokontroler dapat dilihat pada gambar 3.5 dan pengalamatan input output mikrokontroler Arduino Uno dapat dilihat pada table 3.1. 1 1 2 3 4 1 2 3 4 5 6 LCD 5V Vin D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Driver Buzzer Motor Stepper A0 A1 A2 A3 A4 A5 Digital Input/output 1 2 3 Analog Input 1 Power ARDUINO RST AREF GND Keypad pengatur Laju aliran Tombol Navigasi Linear scale 3V3 J2 1 Gambar 3.5. Rangkaian Pemanfaatan Pin Mikrokontroler Arduino Uno PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 25 Tabel 3.1. Pengalamatan Input Output Mikrokontroler Arduino Uno Nama I/O Tipe Pengalamatan di Arduino Uno Linier Scale Input Pin A.0 Tombol Navigasi Input Pin A.1 – 3 Keypad Pengatur Laju Aliran Input Pin A.4 Driver Motor Stepper Output Pin D.4 – 7 Buzzer Output Pin D8 LCD Output Pin D.2 – 3 dan Pin D.9 - 12 3.3.2. Sensor Posisi dengan Linear Scale Pada perancangan Syringe Pump otomatis berbasis mikrokontroler Arduino Uno, linear scale digunakan sebagai feedback. Linear scale dikaitkan pada ujung pendorong tabung suntik sehingga setiap perubahan posisi dari pendorong tabung suntik akan terbaca oleh linear scale. Linear scale memiliki output berupa data analog dan data analog dari linear scale akan dibaca oleh mikrokontroler Arduino Uno pin A.0. Gambar rangkaian dapat dilihat pada gambar 3.6. +5V Pin A.0 R1 1 Linear Scale 3 2 1k Gambar 3.6. Rangkaian Linear Scale Slide Pot-Motorized (10k linear Taper) pada posisi maksimal akan diasumsikan sebagai posisi tabung suntik penuh terisi cairan (60ml). Posisi maksimal linear scale akan memberikan resistansi maksimal yaitu sebesar 10kΩ dan tegangan output analog yang dihasilkan dapat dihitung sesuai persamaan 2.2 yaitu: Vout = = Ω = 4,545 Ω Ω Volt x5V x Vin PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 26 Panjang tabung suntik adalah 91 mm, maka pada posisi minimal tabung suntik (tidak ada cairan) maka nilai resistansi yang dihasilkan linear scale adalah sebesar : Resistansi (kosong) = = x 10kΩ x < Rmax > = 0,9 kΩ Tegangan output analog yang dihasilkan pada saat tabung suntik kosong adalah sebesar: Vout (kosong) = = Ω Ω x Vin 5 Ω = 2,368 Volt Besar perubahan tegangan yang dihasilkan setiap 1 milliliter cairan adalah: Vout = = , , = 0,0363 V / ml Pitch ulir yang digunakan dalam perancangan ini adalah 1mm sehingga satu putaran motor stepper akan mendorong tabung sejauh 1mm. Satu putaran motor stepper memerlukan 20 langkah sehingga tiap langkah motor stepper akan mendorong tabung suntik sejauh 0,05 mm. Laju aliran yang dihailkan tiap langkah motor stepper dapat dihitung dengan cara: Laju aliran tiap langkah = = . = 0,033 x 60 ml x < Volume Tabung > ml Besar perubahan tegangan yang dihasilkan setiap 1 langkah motor stepper adalah: Vout = x 0,0363 V PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI = , 27 x 0,0363 V = 1,197 mV 3.3.3. Tombol Navigasi Perancangan tombol menggunakan rangkaian aktif low. Tombol akan mengirimkan sinyal ke mikrokontroler Arduino Uno ketika tombol tersebut ditekan. Saat ditekan, tombol tersebut akan memberikan logika low ke mikrokontroler Arduino Uno. Rangkaian tombol dapat dilihat pada gambar 2.4. Gambar rangkaian tombol navigasi dan pengalamatan di pin mikrokontroler Arduino Uno dapat dilihat pada gambar 3.7 dan tabel 3.2, sedangkan tombol pengatur laju aliran dapat dilihat pada gambar 3.8 dan table 3.3. Pada rangkaian digunakan juga resistor sebagai pembatas arus yang hanya mengijinkan arus yang masuk ke mikrokontroler Arduino Uno maksimal yaitu 40 mA, sedangkan nilai resistor dapat dihitung sesuai dengan persamaan 2.1 : R=V/I R = 5 / ( 40 x 10-3 ) R = 125 Ω Pada rangkaian ini menggunakan resistor sebesar 10kΩ sehingga arus yang masuk ke pin mikrokontroler Arduino Uno tidak terlalu besar yaitu sebesar 0.5 mA. +5V Pin A.1 R1 SW1 1 2 10k Pin A.2 SW2 R2 1 2 10k Pin A.3 SW3 R3 1 2 10k Gambar 3.7. Rangkaian Tombol Navigasi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 28 Tabel 3.2. Tombol Navigasi Nomor Tombol Fungsi Tombol Pengalamatan Tombol SW 1 Sebagai tombol navigasi Start Pin A.1 SW 2 Sebagai tombol navigasi Stop Pin A.2 SW 3 Sebagai tombol navigasi Reset Pin A.3 3.3.4. Keypad Pengatur Laju Cairan Perancangan keypad pengatur laju cairan menggunakan keypad matrik 4x3 sehingga memudahkan dalam pengaturan nilai laju aliran. Keypad matrik 4x3 hanya pemanfaatkan satu pin mikrokontroler Arduino Uno yaitu pada pin A.4. Gambar rangkaian keypad matrik 4x3 dapat dilihat pada gambar 3.8 yang merupakan modifikasi dari rangkaian gambar 2.7 dan gambar 2.8. Nilai resistansi masing-masing tombol dapat dilihat pada tabel 3.3 dan besar tegangan output dapat dihitung sesuai dengan persamaan 2.2. +5V R10 1k R11 2k SW1 SW2 SW3 SW4 SW5 SW6 R12 SW7 SW8 SW9 3k R13 SW10 SW11 SW12 3k R14 3k R15 R16 3k 3k R17 3k Pin A.4 R18 10k Gambar 3.8. Rangkaian Keypad Matrik 4x3 Tabel 3.3. Nilai Resistansi Tombol Keypad Matrik 4x3 Nomor Switch Nomor Keypad Nilai Resistansi Keypad Vout SW1 1 1kΩ 4,54 Volt 0kΩ 5 Volt SW2 2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 29 Tabel 3.3. (Lanjutan) Nilai Resistansi Tombol Keypad Matrik 4x3 Nomor Switch Nomor Keypad Nilai Resistansi Keypad Vout SW3 3 2kΩ 4,17 Volt SW4 4 4kΩ 3,57 Volt SW5 5 3kΩ 3,85 Volt SW6 6 5kΩ 3,33 Volt SW7 7 7kΩ 2,94 Volt SW8 8 6kΩ 3,12 Volt SW9 9 8kΩ 2,78 Volt SW11 0 9kΩ 2,63 Volt SW12 , 11kΩ 2,38 Volt 3.3.5. Driver Motor Stepper Driver motor stepper yang digunakan pada perancangan ini menggunakan IC L298. Untuk gambar rangkaian dapat dilihat pada gambar 3.9 dan pengalamatan pin Arduino Uno dapat dilihat di tabel 3.4. C6 470uF Pin D.4 U1 VCC1 1EN 2EN Pin D.5 Pin D.6 Pin D.7 5 7 10 12 1A1 1A2 2A1 2A2 VCC2 1E 2E L298 4 1 15 100nF MOTOR STEPPER 1 0.5 0.5 D1 D2 D3 D4 2 4 1Y 1 1Y 2 2Y 1 2Y 2 2 3 13 14 3 9 6 11 GND C7 100nF +12V C8 +5V D6 D7 D8 8 D5 Gambar 3.9. Rangkaian Driver Motor Stepper [24] Tabel 3.4. Pengalamatan Driver motor Stepper Pin L298 Pengalamatan L298 1A1 Pin D.4 1A2 Pin D.5 2A1 Pin D.6 2A2 Pin D.7 Pada rangkaian driver motor stepper dipasang delapan buah dioda yang berfungsi sebagai pengaman motor atau freeweeling diode bila terjadi lonjakan arus yang disebabkan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 30 oleh induksi lilitan motor. Dioda yang digunakan adalah 1N5401 yang memiliki arus maksimal sebesar 3 Ampare dan tegangan maksimal 100 Volt [24]. 3.3.6. Liquid Crystal Display (LCD) LCD yang digunakan pada perancangan syringe pump otomatis berbasis mikrokontroler Arduino Uno menggunakan LCD 16x2 (enam belas kolom, dua baris). LCD digunakan untuk memberikan informasi ke pengguna mengenai cepat laju aliran dan status (running atau stop) dari syringe pump otomatis berbasis mikrokontroler Arduino Uno. Informasi yang akan ditampilkan dapat lihat pada tabel 3.5. Tabel 3.5. Informasi yang tertampil dalam LCD Kondisi LCD Baris Pertama LCD baris Kedua Stop 0 ml Running Running < nilai dari laju aliran > Standby Standby < nilai dari laju aliran > Stop Rangkaian LCD dapat dilihat pada gambar 3.9, sedangkan pengalamatan LCD di pin Arduino Uno dapat dilihat pada tabel 3.6. 2 Vin 5V GND Analog Input 3 A0 A1 A2 A3 A4 A5 1 (VSS) 2 (VCC) 3 (Vo) 4 (RS) 5 (R/W) 6 (E) 7 (DB0) 8 (DB1) 9 (DB2) 10 (DB3) 11 (DB4) 12 (DB5) 13 (DB6) 14 (DB7) 15 (LED+) 16 (LED-) D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Gambar 3.10. Rangkaian LCD Tabel 3.6. Pengalamatan LCD Pin LCD Pengalamatan LCD RS Pin D.12 R/W GND E Pin D.11 DB4 Pin D.10 LCD 10k Power Digital Input/output 1 RST AREF ARDUINO 3V3 J2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 31 Tabel 3.6. (Lanjutan) Pengalamatan LCD Pin LCD Pengalamatan LCD DB4 Pin D.10 DB5 Pin D.9 DB6 Pin D.3 DB7 Pin D.2 3.3.7. Buzzer Pada perancangan alat syringe pump otomatis berbasis Arduino Uno ini, dipasang buzzer sebagai output yang digunakan untuk indikator bahwa proses telah selesai atau tabung suntik dalam kedaan kosong. Buzzer dihubungkan pada pin D.8 mikrokontroler Arduino Uno. Gambar rangkaian buzzer dapat dilihat pada gambar 3.10. Pin D.8 LS1 1 BUZZER 2 Gambar 3.11. Rangkaian Buzzer 3.4. Perancangan Perangkat Lunak 3.4.1. Diagram Utama Diagram utama sistem syringe pump otomatis berbasis mikrokontroler Arduino Uno dapat dilihat pada gambar 3.11. Pada diagram utama terdapat proses inisialisasi yaitu proses pendeklarasian pin-pin Arduino Uno. Pendeklarasian ini dilakukan untuk menentukan pemanfaatan dari pin-pin tersebut. Deklarasi pin Arduino Uno dapat dilihat pada table 3.7. Tabel 3.7. Deklarasi pin Arduino Uno Nomor Pin Arduino Uno Tipe Keterangan A0 Input Analog Input Linear Scale A1 Input Digital Input tombol Navigasi “Start” A2 Input Digital Input tombol Navigasi “Stop” A3 Input Digital Input tombol Navigasi “Reset” A4 Input Digital Input tombol Laju Aliran “Up” A5 Input Digital Input tombol Laju Aliran “Down” PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 32 Tabel 3.7. (Lanjutan) Deklarasi pin Arduino Uno Nomor Pin Arduino Uno Tipe Keterangan D2 Output Digital Output ke LCD pin DB7 D3 Output Digital Output ke LCD pin DB6 D4 Output Digital Output ke driver motor Stepper 1A1 D5 Output Digital Output ke driver motor Stepper 1A2 D6 Output Digital Output ke driver motor Stepper 2A1 D7 Output Digital Output ke driver motor Stepper 2A2 D8 Output Digital Output ke Buzzer D9 Output Digital Output ke LCD pin DB5 D10 Output Digital Output ke LCD pin DB4 D11 Output Digital Output ke LCD pin E D12 Output Digital Output ke LCD pin RS Inisialisasi pin pada mikrokontroler Arduino Uno dilakukan dengan cara: pinMode(<pin>,<tipe>); Contoh: pinMode(1,INPUT) // menjadikan pin 1 sebagai input [29]. Pada gambar 3.11 dapat dilihat juga pengambilan data linear scale yang berfungsi untuk memantau volume dari cairan yang berada pada tabung suntik. Pada saat volume cairan nol atau kosong maka syringe pump akan memberikan peringatan ke pengguna. Gambar 3.12. Diagram Utama PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 33 3.4.2. Diagram Alir Tombol Navigasi Pada tombol navigasi, tombol akan memberikan instruksi pada mikrokontroler Arduino Uno dan mikrokontroler akan memproses instruksi berdasar dengan fungsi masing-masing tombol navigasi. Diagram alir untuk tombol navigasi dapat dilihat pada gambar 3.12. Gambar 3.13. Diagram Alir Input Navigasi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 34 3.4.3. Diagram Alir Keypad Pengatur Laju Aliran Pada keypad pengatur laju aliran, tombol akan memberikan instruksi pada mikrokontroler Arduino Uno dan mikrokontroler akan memproses instruksi berdasar dengan fungsi masing-masing tombol pengatur laju aliran. Diagram alir untuk keypad pengatur laju aliran, dapat dilihat pada gambar 3.13. Gambar 3.14. Diagram Alir Keypad Pengatur Laju Aliran 3.4.4. Diagram Alir Input Linear Scale Pada input linear scale, mikrokontroler Arduino Uno akan menerima tegangan analog dari output linear scale kemudian akan dikoversi oleh ADC yang memiliki resolusi PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 35 10-bit dan akan membaca perubahan tegangan menjadi angka antara 0 hingga 1023 [30]. Perintah analogRead () menghasilkan sebuah nilai antara 0 hingga 1023 yang sebanding dengan jumlah tegangan yang diterapkan ke pin. Diagram alir untuk input linear scale, dapat dilihat pada gambar 3.14. Gambar 3.15. Diagram Alir Input Linear Scale 3.4.5. Diagram Alir Peringatan Buzzer Pada diagram alir peringatan buzzer, mikrokontoler Arduino Uno akan mematikan motor stepper dan dilanjutkan dengan menyalakan buzzer. Hal ini bertujuan untuk memberikan informasi kepengguna bahwa syringe pump berhenti bekerja. Diagram alir dapat dilihat pada gambar 3.15. Gambar 3.16. Diagram Alir Peringatan Buzzer 3.4.6. Penentuan Laju Aliran dan Diagram Alir Gerakan Motor Stepper Laju aliran dalam sistem syringe pump otomatis berbasis mikrokontroler Arduino Uno akan menentukan cepat lambat motor stepper dalam berputar. Untuk mengatur kecepatan motor stepper, diperlukan jeda (delay) dalam setiap langkah motor stepper. Penentuan jeda dalam tiap langkah motor stepper dilakukan dengan perhitungan seperti berikut: Contoh 1: Laju aliran yang diinginkan adalah 0,1 ml/jam Banyak langkah motor stepper yang diperlukan untuk mendapatkan laju aliran 0,1 ml/jam adalah : PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 36 Banyak langkah = (laju yang diinginkan) / (laju aliran tiap langkah motor stepper) = 0,1 ml/jam : 0,033 ml = 3,03 langkah per jam ( 3 langkah motor stepper) Jeda = 3600 detik / (langkah motor stepper yang diperlukan) = 3600 detik / 3 = 1200 detik Contoh 2 : Laju aliran yang diinginkan adalah 999 ml/jam Banyak langkah motor stepper yang diperlukan untuk mendapatkan laju aliran 999 ml/jam adalah : Banyak langkah = (laju yang diinginkan) / (laju aliran tiap langkah motor stepper) = 999 ml/jam : 0,033 ml = 30272,73 langkah per jam ( 30273 langkah motor stepper) Jeda = 3600 detik / (langkah motor stepper yang diperlukan) = 3600 detik / 30273 = 0,119 detik ( 119 millisecond ) Dari perhitungan diatas, besar jeda sangat mempengaruhi laju aliran. Semakin besar nilai laju aliran, jeda tiap langkah motor stepper akan menjadi semakin kecil. Diagram alir driver motor stepper, dapat dilihat pada gambar 3.16. Gambar 3.17. Diagram Alir Gerakan Motor Stepper Pada diagram alir gerakan motor stepper (gambar 3.17), 1A1 sampai 1A4 merupakan pin IC L298 yang digunakan sebagai driver motor stepper (sesuai tabel 3.4). PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 37 BAB IV HASIL DAN PEMBAHASAN 4.1 Hasil Implemetasi Alat Implementasi alat syringe pump otomatis berbasis mikrokontroler Arduino Uno yang dirancang pada BAB III mengalami kegagalan. Laju aliran yang dihasilkan tidak sesuai dengan yang diharapkan, sehingga pada implemetasi pertama tidak berhasil dilakukan. Pada perancangan tersebut, untuk dapat menghasilkan satu putaran penuh motor stepper memerlukan 20 pulsa, sedangkan motor stepper yang diimplemetasikan membutuhkan 200 pulsa sehingga perhitungan laju aliran dilakukan perubahan sebagai berikut: Pergeseran tiap langkah = = = 0,005 Laju aliran tiap langkah mm/pulsa = = . = 0,003296 x 60 ml x < Volume Tabung > ml Penentuan jeda dalam tiap langkah motor stepper dapat dilakukan dengan perhitungan seperti berikut: Contoh 1: Laju aliran yang diinginkan adalah 0,1 ml/jam Banyak langkah motor stepper yang diperlukan untuk mendapatkan laju aliran 0,1 ml/jam adalah : Banyak langkah = (laju yang diinginkan) / (laju aliran tiap langkah motor stepper) = 0,1 ml/jam : 0,003296 ml = 30,3398 langkah Jeda = 3600000 / (langkah motor stepper yang diperlukan) = 3600000 / 30,3398 langkah = 118656 millisecond. 37 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 38 Contoh 2: Laju aliran yang diinginkan adalah 999 ml/jam Banyak langkah motor stepper yang diperlukan untuk mendapatkan laju aliran 999 ml/jam adalah : Banyak langkah = (laju yang diinginkan) / (laju aliran tiap langkah motor stepper) = 999 ml/jam : 0,003296 ml = 303094,6602 langkah Jeda = 3600000 / (langkah motor stepper yang diperlukan) = 3600000 / 303094,6602 langkah = 11,87 millisecond. Pada percobaan kedua, setelah dilakukan perubahan perhitungan jeda, maka diperoleh hasil laju aliran sesuai dengan yang diharapkan. Pengujian dilakukan dengan memasukan ujung syringe kedalam gelas ukur berukuran 10 ml. Pada pengaturan laju aliran diatas 10 ml/jam, digunakan gelas ukur berukuran 1000 ml sebagai tempat penampungan hasil laju aliran apabila gelas ukur berukuran 10 ml sudah penuh. Data hasil pengujian dari syringe pump otomatis berbasis mikrokontroler Arduino Uno dapat dilihat pada tabel 4.1. Tabel 4.1. Data Hasil Pengujian Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 1 0,1 18:56 19:56 0,1 0 0 2 0,2 18:29 19:29 0,2 0 0 3 0,3 18:16 19:16 0,3 0 0 4 0,4 23:12 00:12 0,4 0 0 5 0,5 9::49 10:49 0,5 0 0 6 0,7 9:21 10:21 0,7 0 0 7 1,1 18:32 19:32 1,1 0 0 8 2,1 17:54 18:54 2,1 0 0 9 5 21:23 22:23 5 0 0 10 5,5 20:51 21:51 5,5 0 0 11 6,2 22:25 23:25 6,2 0 0 12 10 14:52 15:52 10 0 0 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 39 Tabel 4.1. (lanjutan) Data Hasil Pengujian Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 13 12,2 21:07 22:07 12,2 0 0 14 15 22:29 23:29 15 0 0 15 17,8 19:28 20:28 17,8 0 0 16 25,2 21:01 22:01 25,2 0 0 17 32,4 00:24 01:24 32,2 0 0 18 43,5 01:50 02:50 43,5 0 0 19 57,6 18:21 19:21 57,6 0 0 20 76,5 08:34 09:34 76,5 0 0 21 91,5 10:01 11:01 91,5 0 0 22 103,2 11:49 12:49 103,2 0 0 23 121,5 21:55 22:55 121,5 0 0 24 150 23:01 00:01 150 0 0 25 187,2 00.23 01:23 187,2 0 0 26 194,4 01:31 02:31 195,2 0,8 0,46 27 200 07:10 08:10 204.8 4,8 2,4 28 208,8 08:15 09:15 202,4 6,4 3,06 29 223,2 10:12 11:12 216 7.2 3,22 30 241,2 11:40 12:40 229,2 12 4,97 31 273,6 13:45 14:45 259,6 14 5,12 32 302,4 14:55 15:55 280,8 21,6 7,14 33 331,2 17:22 18:22 309,6 21,6 6,52 34 374,4 18:34 19:34 349,2 25,2 6,73 35 396 20:58 21:58 367,2 28.8 7,27 36 410,4 22:15 23:15 374,4 36 8,77 37 439,2 23:32 00:32 374,4 64,8 14,75 38 482,4 00:49 01:49 417,6 64,8 13,43 39 511,2 01:58 02:58 432 79,2 15,49 40 540 06:15 07:15 446 94 17,41 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 40 Tabel 4.1. (lanjutan) Data Hasil Pengujian Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 41 590,4 07:34 08:34 460,8 129,6 21,95 42 626,4 08:55 09:55 518,4 108 17,24 43 667,4 17:10 18:10 553,8 113,6 17,02 44 695,8 18:39 19:39 556 139,8 20,09 45 724,2 20:33 21:33 582,2 142 19,61 46 766,8 21:46 22:46 596,4 170,4 22,22 47 795,2 22:50 23:50 596,4 198,8 25 48 823,6 00:05 01:05 610,6 213 25,86 49 866,2 01:21 02:21 624,8 241,4 27,87 50 894,6 17:30 18:30 653,2 241,4 26,98 51 923 18:55 19:55 667,4 255,6 27,69 52 965,6 20:14 21:14 681,6 284 29,41 53 999 21:31 22:31 702 297 29,73 Laju aliran yang dihasilkan oleh alat syringe pump otomatis berbasis mikrokontroler Arduino Uno sesuai dengan yang dimasukkan oleh pengguna untuk pengaturan laju aliran dibawah 200 ml/jam. Penyimpangan laju aliran mulai terjadi pada laju aliran diatas 200ml/jam. Pengujian alat syringe pump otomatis berbasis mikrokontroler Arduino Uno juga dilakukan dengan pengamatan besar laju aliran dalam waktu tertentu. Hasil pengujian besar laju aliran dalam waktu tertentu dapat dilihat pada tabel 4.2 untuk laju aliran 20 ml/jam, tabel 4.3 untuk laju aliran 50 ml/jam, tabel 4.4 untuk laju aliran 120 ml/jam, tabel 4.5 untuk laju aliran 500 ml/jam, tabel 4.6 untuk laju aliran 999 ml/jam. Tabel 4.2. Data Hasil Pengujian Laju Aliran 20 ml/jam dalam Waktu Tertentu Waktu (Menit) Volume Cairan (ml) Laju Aliran (ml/jam) Error (%) 3 1 20 0 6 2 20 0 10 3,3 19,8 1 20 6,6 19,8 1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 41 Tabel 4.3. Data Hasil Pengujian Laju Aliran 50 ml/jam dalam Waktu Tertentu Waktu (Menit) Volume Cairan (ml) Laju Aliran (ml/jam) Error (%) 3 2,5 50 0 6 5 50 0 10 8,3 49,8 0,4 20 16,6 49,8 0,4 Tabel 4.4. Data Hasil Pengujian Laju Aliran 120 ml/jam dalam Waktu Tertentu Waktu (Menit) Volume Cairan (ml) Laju Aliran (ml/jam) Error (%) 3 6 120 0 6 12 120 0 10 20 120 0 20 40 120 0 Tabel 4.5. Data Hasil Pengujian Laju Aliran 500 ml/jam dalam Waktu Tertentu Waktu (Menit) Volume Cairan (ml) Laju Aliran (ml/jam) Error (%) 3 24,6 492 1,6 6 49,2 492 1,6 10 81,8 490,8 1,84 20 163,8 491,4 1,72 Tabel 4.6. Data Hasil Pengujian Laju Aliran 999 ml/jam dalam Waktu Tertentu Waktu (Menit) Volume Cairan (ml) Laju Aliran (ml/jam) Error (%) 3 48,4 968 3,10 6 97,2 972 2,70 10 162 972 2,70 20 325,2 975,6 2,34 4.2. Perancangan Ulang untuk Koreksi Error 4.2.1 Koreksi Error Menggunakan Perangkat Keras Koreksi error menggunakan perangkat keras dilakukan dengan linear scale yang terdapat pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno. Linear PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 42 scale pada alat ini selain digunakan untuk koreksi error, juga digunakan untuk mendeteksi volume cairan yang ada dalam tabung suntik. Data hasil pengujian dari linear scale untuk mendeteksi volume cairan dalam tabung suntik dapat dilihat pada tabel 4.7. Tabel 4.7. Data Hasil Pengujian Linear Scale Kondisi Volume Cairan (ml) Nilai Resistansi (Ohm) Tegangan Masukan (Volt) Penuh 60 10000 4,52 Kosong 0 100 0,46 Pada tabel 4.7. dapat dilihat bahwa saat tabung suntik berisi cairan penuh maka tegangan masukan pin mikrokontroler Arduino Uno adalah 4,52 volt dan sesuai dengan perancangan. Pada saat tabung suntik kosong, tegangan masukan pada pin mikrokontroler Arduino Uno adalah 0,46 volt sedangkan pada perancangan, tegangan yang dihasilkan adalah 2,368 Volt. Nilai resistansi pada saat cairan kosong adalah 100 ohm sedangkan pada perancangan adalah sebesar 900 ohm. Besar error resistansi yang dihasilkan pada saat cairan kosong adalah sebesar 800 ohm dan besar error dari tegangan yang dihasilkan pada saat kosong adalah 1,908 volt. Pengujian linear scale dalam pembacaan setiap satu putaran motor stepper yang akan digunakan untuk koreksi error dapat dilihat pada tabel 4.8. Pengujian dilakukan dengan memberi 200 pulsa ke motor stepper secara berurutan dan mengamati perubahan nilai ADC dari linear scale. Tabel 4.8. Data Pembacaan Linear Scale setiap Satu Putaran Motor Stepper Putaran ke : Nilai ADC Linear Scale Nilai Perubahan ADC Linear Scale 1 935 - 2 932 3 3 933 -1 4 932 1 5 931 1 6 929 2 7 929 0 8 928 1 9 927 1 10 926 1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 43 Tabel 4.8. (lanjutan)Data Pembacaan Linear Scale setiap Satu Putaran Motor Stepper Putaran ke : Nilai ADC Linear Scale Nilai Perubahan ADC Linear Scale 11 925 1 12 924 1 13 923 1 14 921 2 15 922 -1 16 919 3 17 918 1 18 916 2 19 915 1 20 914 1 21 912 2 22 911 1 23 909 2 24 908 1 25 906 2 26 905 1 27 903 2 28 901 2 29 900 1 30 898 2 31 896 2 32 894 2 33 892 2 34 890 2 35 888 2 36 886 2 37 884 2 38 881 3 39 879 2 40 877 2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 44 Tabel 4.8. (lanjutan)Data Pembacaan Linear Scale setiap Satu Putaran Motor Stepper Putaran ke : Nilai ADC Linear Scale Nilai Perubahan ADC Linear Scale 41 876 1 42 871 5 43 869 2 44 866 3 45 863 3 46 860 3 47 857 3 48 854 3 49 851 3 50 848 3 51 844 4 52 839 5 53 836 3 54 833 3 55 828 5 56 824 4 57 819 5 58 814 5 59 810 4 60 805 5 61 799 6 62 791 8 63 788 3 64 779 9 65 774 5 66 768 6 67 759 9 68 751 8 69 742 9 70 735 7 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 45 Tabel 4.8. (lanjutan)Data Pembacaan Linear Scale setiap Satu Putaran Motor Stepper Putaran ke : Nilai ADC Linear Scale Nilai Perubahan ADC Linear Scale 71 722 13 72 712 10 73 700 12 74 687 13 75 673 14 76 660 13 77 643 17 78 626 17 79 606 20 80 582 24 81 564 18 82 537 27 83 509 28 84 480 29 85 439 41 86 398 41 87 354 44 88 297 57 89 239 58 90 148 91 91 36 112 92 14 22 93 14 0 94 15 -1 95 14 1 Pada tabel 4.8 dapat dilihat perubahan nilai ADC linear scale yang tidak konstan sehingga tidak dimungkinkan koreksi error menggunakan linear Scale. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 46 4.2.2 Koreksi Error Menggunakan Perangkat Lunak Mengacu pada tabel 4.1, error terjadi pada saat laju cairan diatur diatas 200 ml/jam. Koreksi error dilakukan dengan mengambil nilai error rata-rata setiap kenaikan laju cairan 100 ml/jam. Error rata-rata akan digunakan untuk mengurangi nilai laju aliran tiap langkah motor stepper. Perhitungan error rata-rata untuk laju aliran 200,01 ml/jam sampai 300 ml/jam yang mengacu pada tabel 4.1 adalah sebagai berikut : Error rata-rata = , % , % , % , % x 100% Error rata-rata = 3,59 % Laju aliran tiap langkah motor stepper = 0,003296 ml – (3,59% x 0,003296 ml) Laju aliran tiap langkah motor stepper = 0,003296 ml – 0,0001183 ml Laju aliran tiap langkah motor stepper = 0,003177 ml Nilai error rata-rata dan laju aliran tiap langkah motor stepper untuk range laju aliran yang lain yang mengacu pada tabel 4.1 dapat dilihat pada tabel 4.9. Tabel 4.9. Nilai Error Rata-rata dan Laju Aliran Tiap Langkah Motor Stepper Range laju aliran Error Rata-rata Laju Aliran Tiap Langkah Motor Stepper (ml/jam) (%) (ml) 200,1 – 300 3,59 0,003177 300,1 – 400 6,915 0,003068 400,1 – 500 12,316 0,002890 500,1 – 600 18,283 0,002693 600,01 – 700 18,386 0,002690 700,1 – 800 22,276 0,002562 800,1 – 900 26,903 0,002409 900,1 – 999 28,943 0,002342 Data hasil pengujian alat syringe pump otomatis berbasis mikrokontroler Arduino Uno setelah dilakukan koreksi error pertama dapat dilihat pada tabel 4.10. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 47 Tabel 4.10. Data Hasil Pengujian setelah Koreksi Error Pertama No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 1 0,1 06:05 07:05 0,1 0 0 2 0,2 07:10 08:10 0,2 0 0 3 0,3 08:18 09:18 0,3 0 0 4 0,4 09:25 10:25 0,4 0 0 5 0,5 10:31 11:31 0,5 0 0 6 0,7 11:40 12:41 0,7 0 0 7 1,1 15:04 16:04 1,1 0 0 8 2,1 16:15 17:15 2,1 0 0 9 5 17:20 18:20 5 0 0 10 5,5 18:26 19:26 5,5 0 0 11 6,2 19:32 20:32 6,2 0 0 12 10 20:40 21:40 10 0 0 13 12,2 21:48 22:48 12,2 0 0 14 15 22:52 23:52 15 0 0 15 17,8 23:58 00:58 17,8 0 0 16 25,2 01:05 02:05 25,2 0 0 17 32,4 02:15 03:15 32,2 0 0 18 43,5 07:15 08:15 43,5 0 0 19 57,6 08:23 09:23 57,6 0 0 20 76,5 17:18 18:18 76,5 0 0 21 91,5 18:25 19:25 91,5 0 0 22 103,2 19:35 20:35 103,2 0 0 23 121,5 20:42 21:42 121,5 0 0 24 150 21:46 22:46 150 0 0 25 187,2 22:51 23:51 187,2 0 0 26 194,4 00:00 01:00 195,2 0,6 0,31 27 200 01:06 02:06 202,8 2,8 1,4 28 208,8 02:30 03:30 210,2 1,4 0,67 29 223,2 06:40 07:40 219,4 3,8 0,17 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 48 Tabel 4.10. (lanjutan) Data Hasil Pengujian setelah Koreksi Error Pertama No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 30 241,2 07:45 08:45 234 7,2 2,98 31 273,6 08:50 09:50 266,4 7,2 2,63 32 302,4 18:30 19:30 291,6 10,8 3,57 33 331,2 19:35 20:35 324 7,2 2,17 34 374,4 20:42 21:42 367,2 7,2 1,92 35 396 21:49 22:49 381,6 14,4 3,64 36 410,4 22:56 23:56 384 21.4 6.63 37 439,2 00:03 01:03 417,6 21,6 4,91 38 482,4 01:10 02:10 444 38,4 7,96 39 511,2 02:20 03:20 489,6 21,6 4,22 40 540 09:05 10:05 507,6 32,4 6 41 590,4 10:15 11:15 532,8 57,6 9,76 42 626,4 11:22 12:22 544,4 72 11,4 43 667,4 12:28 13:28 583,2 84,2 12,61 44 695,8 13:33 14:33 604,8 91 13,08 45 724,2 14:50 15:50 648 76,2 10,52 46 766,8 15:56 16:56 672,8 94 12,26 47 795,2 17:05 18:05 696,4 98,8 12,42 48 823,6 18:12 19:12 720,4 103,2 12,53 49 866,2 19:18 20:18 744,6 121,6 14,04 50 894,6 20:24 21:24 780,8 113,8 12,72 51 923 21:30 21:30 820,8 102,2 11,72 52 965,6 21:45 22:45 878,4 87,2 9,03 53 999 22:54 23:54 892,8 106,2 10,63 Pada tabel 4.10 dapat dilihat nilai error yang terjadi pada nilai laju aliran diatas 400 ml/jam masih besar, untuk meminimalisir nilai error pada laju aliran diatas 400 ml/jam dilakukan koreksi error dengan mengambil nilai error rata-rata setiap kenaikan 100 ml/jam. Nilai error rata-rata akan digunakan untuk mengurangi nilai laju aliran tiap PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 49 langkah motor stepper. Perhitungan error rata-rata untuk laju aliran 400,01 ml/jam sampai 500 ml/jam yang mengacu pada tabel 4.5 adalah sebagai berikut : Error rata-rata = , % , % , % x 100% Error rata-rata = 6,5 % Laju aliran tiap langkah motor stepper = 0,002890 ml – (6,5% x 0,002890 ml) Laju aliran tiap langkah motor stepper = 0,002890 ml – 0,0001878 ml Laju aliran tiap langkah motor stepper = 0,002702 ml Nilai error rata-rata dan laju aliran tiap langkah motor stepper untuk range laju aliran yang lain yang mengacu pada tabel 4.5 dapat dilihat pada tabel 4.11. Tabel 4.11. Nilai Error Rata-rata dan Laju Aliran Tiap Langkah Motor Stepper Range laju aliran Error Rata-rata Laju Aliran Tiap Langkah Motor Stepper (ml/jam) (%) (ml) 400,1 – 500 6,5 0,002702 500,1 – 600 6,66 0,002514 600,1 – 700 12,363 0,002357 700,1 – 800 11,733 0,002261 800,1 – 900 13,097 0,002093 900,1 – 999 10,46 0,002097 Data hasil pengujian alat syringe pump otomatis berbasis mikrokontroler Arduino Uno setelah dilakukan koreksi error kedua dapat dilihat pada tabel 4.12. Tabel 4.12. Data Hasil Pengujian setelah Koreksi Error Kedua No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 1 0,1 14:02 15:02 0,1 0 0 2 0,2 15:08 16:08 0,2 0 0 3 0,3 16:15 17:15 0,3 0 0 4 0,4 17:18 18:18 0,4 0 0 5 0,5 18:23 19:23 0,5 0 0 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 50 Tabel 4.12. (lanjutan) Data Hasil Pengujian setelah Koreksi Error Kedua No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 6 0,7 19:30 20:30 0,7 0 0 7 1,1 20:35 21:35 1,1 0 0 8 2,1 21:42 22:42 2,1 0 0 9 5 22:49 23,49 5 0 0 10 5,5 23:56 00:56 5,5 0 0 11 6,2 01:01 02:01 6,2 0 0 12 10 02:07 03:07 10 0 0 13 12,2 07:15 08:15 12,2 0 0 14 15 08:22 09:22 15 0 0 15 17,8 09:31 10:31 17,8 0 0 16 25,2 10:38 11:38 25,2 0 0 17 32,4 13:02 14:02 32,2 0 0 18 43,5 14:10 15:10 43,5 0 0 19 57,6 15:14 16:14 57,6 0 0 20 76,5 16:20 17:20 76,5 0 0 21 91,5 17:27 18:27 91,5 0 0 22 103,2 18:35 19:35 103,2 0 0 23 121,5 19:42 20:42 121,5 0 0 24 150 20:50 21:50 150 0 0 25 187,2 21:59 22:59 187,2 0 0 26 194,4 23:06 00:06 195,4 1 0,51 27 200 00:14 01:14 203,5 3,5 1,75 28 208,8 01:21 02:21 212,4 3,6 1,72 29 223,2 02:30 03:30 223,2 0 0 30 241,2 17:30 18:30 237,6 3,6 1,49 31 273,6 18:34 19:34 276 2,4 0,88 32 302,4 19:39 20:39 300 2,4 0,8 33 331,2 20:45 21:45 324 7,2 2,17 34 374,4 21:53 22:53 367,2 7,2 1,92 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 51 Tabel 4.12. (lanjutan) Data Hasil Pengujian setelah Koreksi Error Kedua No Set Point (ml/jam) Start time End Time Laju Aliran yang Error Error dihasilkan (ml/jam) (ml) (%) 35 396 23:00 00:00 381,6 14,4 3,64 36 410,4 00:08 01:08 417,6 7,2 1,75 37 439,2 01:15 02:15 432 7,2 1,64 38 482,4 02:23 03:23 468 14,4 2,98 39 511,2 07:10 07:10 518,4 7,2 1,41 40 540 07:14 08:14 525,6 14,4 2,67 41 590,4 08:18 09:18 561,6 28,2 4,88 42 626,4 16:30 17:30 619,2 7,2 1,15 43 667,4 17:34 18:34 648 19,4 2,91 44 695,8 18:40 19:40 676,8 19 2,73 45 724,2 19:46 20:46 691,2 33 4,56 46 766,8 20:50 21:50 734,4 32,4 4,23 47 795,2 21:54 22:54 763,2 32 4,02 48 823,6 23:05 00:05 792 31,6 3,84 49 866,2 00:12 01:12 849,6 16,6 1,92 50 894,6 01:18 02:18 864 30,6 3,42 51 923 02:22 03:22 878,4 44,6 4,83 52 965,6 07:30 08:30 921,6 44 4,56 53 999 08:38 08:38 950,4 48,6 4,86 Pada tabel 4.12 dapat dilihat koreksi error sudah dibawah batas toleransi kesalahan 5% [31]. Nilai error rata-rata alat syringe pump otomatis berbasis mikrokontroler Arduino Uno adalah : Error rata-rata = Error rata-rata = < < 73,24% 53 Error rata-rata = 1,38 % ℎ ℎ > > PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 52 4.3. Hasil Perancangan Perangkat Keras Perangkat keras pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno terdiri atas bebrapa bagian yaitu : rangkaian elektronika (blok kontrol) dan konstruksi alat. Blok kontrol terdiri atas beberapa rangkaian elektronika yang berfungsi sebagai pengontrol laju aliran dan penampil informasi ke pengguna. Blok kontrol dapat dilihat pada gambar 4.1, sedangkan fungsi dari setiap rangkaian dapat dilihat pada tabel 4.13. 1 4 2 5 6 3 Gambar 4.1. Blok Kontrol pada Alat Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno Tabel 4.13. Bagian dari Blok Kontrol dan Fungsi dari Rangkaian No Nama Rangkaian Fungsi 1 Driver Motor Stepper Untuk mengatur cepat lambat putaran motor stepper 2 Tombol navigasi Untuk menghapus, mereset dan menjalankan syringe pump. 3 Pembagi tegangan untuk Untuk mengatur tegangan yang masuk ke pin linear analog arduino. Rangkaian pembagi tegangan Untuk mengatur tegangan masing-masing tombol untuk keypad matrik keypad 5 Mikrokontroler Arduino Uno Sebagai pengontrol input dan output. 6 Rangkaian LCD Untuk mengatur informasi yang akan ditampilkan 4 ke pengguna. Konstruksi dari alat syringe pump otomatis berbasis mikrokontroler Arduino Uno sesuai dengan perancangan. Hasil konstruksi dapat dilihat pada gambar 4.2 dan dan fungsi dari setiap bagian dapat dilihat pada tabel 4.14. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 53 1 2 3 4 5 6 7 8 9 Gambar 4.2. Konstruksi Alat Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno Tabel 4.14. Bagian dan Fungsi dari Alat No Nama Bagian Fungsi 1 Tabung suntik Untuk memasukan cairan kedalam tubuh. 2 Linear scale Untuk mendeteksi posisi pendorong tabung suntik 3 Motor Stepper Untuk menggerakan ulir pendorong tabung suntik 4 Ulir pendorong tabung suntik Untuk mendorong tabung suntik 5 Keypad pengatur laju aliran Untuk memberikan input nilai laju cairan 6 Slider pendorong tabung Untuk menstabilkan gerakan pendorong tabung suntik suntik 7 Dudukan tabung suntik Untuk memasang dan menahan tabung suntik 8 LCD Untuk memberikan informasi ke pengguna 9 Tombol navigasi Untuk menghapus, mereset dan menjalankan syringe pump. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 54 4.4. Hasil Pengujian 4.4.1. Pengujian Tombol Navigasi Pengujian tombol pada tombol navigasi alat syringe pump otomatis berbasis mikrokontroler Arduino Uno ini bertujuan untuk mengetahui besar tegangan yang masuk ke pin mikrokontroler Arduino Uno saat tombol ditekan dan pada saat tombol tidak ditekan. Data hasil pengujian dari tombol navigasi dapat dilihat pada tabel 4.15. Tabel 4.15. Data Hasil Pengujian Tombol Navigasi Nama Tombol Tegangan Masukan (Volt) Pin Mikrokontroler Tombol Tombol Tidak Ditekan Ditekan Start Pin A.1 0 4,93 Stop Pin A.2 0 4,93 Reset Pin A.3 0 4,93 Pada tabel 4.15. dapat dilihat bahwa saat tombol ditekan maka tegangan masukan pin mikrokontroler Arduino Uno adalah 0 volt atau logika ”low” dan saat tombol tidak ditekan tegangan masukan pada pin mikrokontroler Arduino Uno adalah 4,93 volt atau logika “high”. Sesuai dengan hasil pengujian yang ditabelkan pada tabel 4.15, dapat disimpulkan bahwa tombol navigasi dapat bekerja sesuai dengan perancangan. 4.4.2. Pengujian Keypad Pengatur Laju Aliran Pengujian keypad pengatur laju Aliran pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno ini bertujuan untuk mengetahui besar tegangan yang masuk ke mikrokontroler Arduino Uno pin A.4 saat tombol ditekan dan pada saat tombol tidak ditekan. Data hasil pengujian dari tombol navigasi dapat dilihat pada tabel 4.16. Tabel 4.16. Data Hasil Pengujian Keypad Pengatur Laju Cairan. Tegangan Masukan (Volt) Tombol Keypad Nilai ADC Tombol Tombol Tidak Ditekan Ditekan 1 4,53 0 931 2 4,98 0 1023 saat ditekan PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 55 Tabel 4.16. (Lanjutan) Data Hasil Pengujian Keypad Pengatur Laju Cairan. Tegangan Masukan (Volt) Tombol Keypad Nilai ADC Tombol Tombol Tidak Ditekan Ditekan 3 4,15 0 854 4 3,55 0 730 5 3,83 0 788 6 3,31 0 683 7 2,92 0 604 8 3,11 0 639 9 2,76 0 571 0 2,60 0 538 , 2,35 0 486 Del 2,44 0 509 saat ditekan Pada tabel 4.16. dapat dilihat bahwa saat keypad pengatur laju cairan tidak ada yang ditekan, tegangan masukan pada pin mikrokontroler Arduino Uno adalah 0 volt dan ADC menghasilkan nilai “0”. Saat salah satu tombol keypad ditekan, maka nilai ADC akan berubah sesuai dengan besarnya tegangan masing-masing tombol keypad. Terdapat penambahan tombol yaitu “del” yang berfungsi untuk menghapus nilai laju cairan yang dimasukkan guna memudahkan pengguna syringe pump otomatis berbasis mikrokontroler Arduino Uno. Sesuai dengan hasil pengujian yang ditabelkan pada tabel 4.16, dapat disimpulkan bahwa keypad pengatur laju cairan dapat bekerja sesuai dengan perancangan. 4.4.3. Pengujian Driver Motor Stepper Pengujian driver motor stepper pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno ini bertujuan untuk mengetahui output pin mikrokontroler Arduino Uno dan gerakan yang dihasilkan oleh motor stepper. Data hasil pengujian dari driver motor stepper dapat dilihat pada tabel 4.17. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 56 Tabel 4.17. Data Hasil Pengujian Driver Motor Stepper Tegangan Pin Tegangan Pin Input Tegangan Pin Output Mikrokontroler (volt) IC L298 (volt) IC L298 (volt) Gerakan D.4 D.5 D.6 D.7 1A1 1A2 1A3 1A4 1Y1 1Y2 2Y1 2Y2 4,99 4,99 4,99 4,99 4,99 4,99 4,99 4,99 11,8 11,8 11,8 11,8 Diam 0 4,99 4,99 4,99 0 4,99 4,99 4,99 0 11,8 11,8 11,8 CCW 4,99 0 4,99 4,99 4,99 0 4,99 4,99 11,8 0 11,8 11,8 CCW 4,99 4,99 0 4,99 4,99 4,99 0 4,99 11,8 11,8 0 11,8 CCW 4,99 4,99 4,99 0 4,99 4,99 4,99 0 11,8 11,8 11,8 0 CCW 0 4,99 4,99 4,99 0 4,99 4,99 4,99 0 11,8 11,8 11,8 CCW 4,99 0 4,99 4,99 4,99 0 4,99 4,99 11,8 0 11,8 11,8 CCW 4,99 4,99 0 4,99 4,99 4,99 0 4,99 11,8 11,8 0 11,8 CCW 4,99 4,99 4,99 0 4,99 4,99 4,99 0 11,8 11,8 11,8 0 CCW Pada tabel 4.17. dapat dilihat bahwa saat pin D4 mikrokontroler Arduino Uno memberi output 0 volt atau logika ”low” maka IC L298 pin 1Y1 akan memberi output 0 volt sehingga motor stepper akan berputar kekiri satu langkah. Saat pin D5 mikrokontroler Arduino Uno memberi output 0 volt atau logika ”low” maka IC L298 pin 1Y2 akan memberi output 0 volt sehingga motor stepper akan berputar lagi kekiri satu langkah. Dengan menggeser logika low pada kaki D4 sampai D7 secara berurutan dan bergantian, maka akan menyebabkan motor berputar kekiri dengan banyaknya langkah sesuai dengan jumlah pergeseran logika low. Sesuai dengan hasil pengujian yang ditabelkan pada tabel 4.17, dapat disimpulkan bahwa driver motor stepper dapat bekerja sesuai dengan perancangan. 4.4.4. Pengujian Buzzer Pengujian buzzer pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno ini bertujuan untuk mengetahui besar tegangan output pin mikrokontroler Arduino Uno dan hasil suara yang dihasilkan buzzer. Data hasil pengujian buzzer dapat dilihat pada tabel 4.18, tabel 4.19 dan tabel 4.20. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 57 Tabel 4.18. Data Hasil Pengujian Buzzer dengan Laju aliran 1,2 ml/jam Waktu Laju aliran yang dihasilkan (ml) ADC linear Scale Kondisi Buzzer 12.34 0 312 Off 13.04 0,6 239 Off 13.34 1,2 112 On Tabel 4.19. Data Hasil Pengujian Buzzer dengan Laju aliran 4,8 ml/jam Waktu Laju aliran yang dihasilkan (ml) ADC linear Scale Kondisi Buzzer 14.45 0 503 Off 15.15 2,4 334 Off 15.45 4,8 112 On Tabel 4.20. Data Hasil Pengujian Buzzer dengan Laju aliran 10,2 ml/jam Waktu Laju aliran yang dihasilkan (ml) ADC linear Scale Kondisi Buzzer 16.00 0 667 Off 16.30 5,1 528 Off 17.00 10,2 112 On Pada tabel 4.18, tabel 4.19 dan tabel 4.20 dapat dilihat buzzer berbunyi pada saat ADC linear scale bernilai 112 (kondisi cairan kosong) dan pada saat ADC linear scale lebih dari 112 maka buzzer tidak akan berbunyi. Sesuai dengan hasil pengujian yang ditabelkan pada tabel 4.18, tabel 4.19 dan tabel 4.20 dapat disimpulkan bahwa buzzer dapat bekerja sesuai dengan perancangan. Pada pengujian buzzer, terjadi ketidaknyamanan ketika melepas dan memasang tabung suntik. Diperlukan perancangan ulang dudukan tabung suntik sehingga dapat memudahkan dalam melepas dan memasang tabung suntik. 4.5. Analisa Perangkat Lunak 4.5.1. Implementasi Diagram Utama Program utama yang diimplementasikan pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno mengalami penambahan pada blok inisialisasi yaitu menambahan inisialisasi LCD. Penambahan inisialisasi LCD dapat dilihat pada gambar 4.3 yang diberi tanda kotak merah. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 58 Gambar 4.3. Inisalisasi Program Inisialisasi pin input output pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno dapat dilihat pada gambar 4.3 yang merupakan implementasi pada perancangan bab III. Implementasi dari diagram utama yang dirancang pada bab III dapat berjalan sesuai dengan yang diharapkan. Implementasi diagram utama dapat dilihat pada gambar 4.4. Gambar 4.4. Program Utama 4.5.2. Implementasi Diagram Alir Tombol Navigasi Diagram alir tombol navigasi yang diimplementasikan pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno mengalami pengurangan pada koreksi error. Hasil perubahan diagram alir tombol navigasi dapat dilihat pada gambar 4.5. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 59 Gambar 4.5. Diagram Alir Tombol Navigasi Dengan mengimplementasiakan diagram alir tombol navigasi yang dirancang pada bab III dengan menghilangkan koreksi error, maka sistem pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno dapat berjalan sesuai dengan yang diharapkan. Implementasi diagram alir tombol navigasi dapat dilihat pada gambar 4.6. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 60 Gambar 4.6. Implementasi Program Tombol Navigasi Hasil dari penekanan tombol navigasi “start” setelah dilakukan coding sesuai dengan diagram alir tombol navigasi dapat dilihat pada gambar 4.7, hasil dari penekanan tombol navigasi “stop” dilihat pada gambar 4.8, dan Hasil dari penekanan tombol navigasi “reset” dilihat pada gambar 4.9. Gambar 4.7. Hasil Penekanan Tombol Navigasi “start” Gambar 4.8. Hasil Penekanan Tombol Navigasi “stop” PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 61 Gambar 4.9. Hasil Penekanan Tombol Navigasi “reset” 4.5.3. Implementasi Diagram Alir Keypad Pengatur Laju Aliran Diagram alir keypad pengatur laju aliran yang diimplementasikan pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno mengalami perubahan dalam pembacaan tombol keypad. Perubahan diagram alir keypad pengatur laju cairan dapat dilihat pada gambar 4.10 dan implementasi diagram alir keypad pengatur laju cairan dapat dilihat pada gambar 4.11. Mulai Baca data ADC ADC=char(1) ? ADC=char(2) ? Tidak ADC=char(3) ? Ya Apa koma ditekan ? Tidak Ya Ya Perkalian Perkalian Laju=laju+0.4 Laju=laju+0.3 Laju=laju+1 Laju=laju+2 Kirim data ke LCD Tidak Ya Perkalian Laju=laju+0.2 Kirim data ke LCD Apa koma ditekan ? Tidak Ya Perkalian Laju=laju+0.1 Ya Apa koma ditekan ? Tidak A Tidak Ya Ya Apa koma ditekan ? ADC=char(4) ? Tidak Tidak Laju=laju+3 Kirim data ke LCD Laju=laju+4 Kirim data ke LCD C A ADC=char(5) ? ADC=char(6) ? Tidak Ya Apa koma ditekan ? Apa koma ditekan ? Tidak Perkalian Laju=laju+0.5 Apa koma ditekan ? Tidak Perkalian Laju=laju+0.6 Kirim data ke LCD Ya Apa koma ditekan ? Tidak Perkalian Perkalian Kirim data ke LCD Tidak Ya Ya Laju=laju+0.8 Laju=laju+0.7 Laju=laju+6 B Tidak Ya Ya Laju=laju+5 ADC=char(8) ? Tidak Ya Ya Kirim data ke LCD ADC=char(7) ? Tidak Laju=laju+7 D Gambar 4.10. Diagram Alir Keypad Pengatur Laju Cairan Kirim data ke LCD Laju=laju+8 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI B ADC=char(9) ? ADC=char(0) ? Tidak ADC=char(,) ? Tidak Tidak Ya Ya Ya Apa koma ditekan ? Apa koma ditekan ? Tidak Ya Perkalian Laju=laju+0.9 Kirim data ke LCD ADC=char(del) ? 62 Tidak Ya Laju= 0 Tidak Ya Perkalian Laju=laju+0 Laju=laju+9 Kirim data ke LCD Kirim data ke LCD Laju=laju+0 C D Selesai Gambar 4.10. Diagram Alir Keypad Pengatur Laju Cairan Gambar 4.11. Implementasi Diagram Alir Keypad Pengatur Laju Cairan Pada gambar 4.10 dapat dilihat setiap tombol pada keypad memiliki dua fungsi. Fungsi yang pertama untuk memasukan bilangan bulat, dan fungsi yang kedua untuk bilangan pecahan. Perpindahan fungsi pertma ke fungsi kedua ditandai dengan penekanan tanda “koma”. Jumlah tombol keypad pengatur laju cairan yang digunakan pada perancangan bab III adalah sebanyak 11 tombol, namun pada implementasinya digunakan 12 tombol. Penambahan satu tombol yaitu “del” digunakan untuk menghapus nilai laju cairan yang telah dimasukan. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 63 Gambar 4.11 merupakan implementasi diagram alir keypad pengatur laju cairan. Pada gambar 4.11 dapat dilihat ada penambahan subrutine “perkalian”. Diagram alir perkalian dapat dilihat pada gambar 4.12 dan implementasi diagram alir perkalian dapat dilihat pada gambar 4.13. Mulai Penekanan “pertama” ? Tidak Penekanan “kedua” ? Ya Ya Tidak Penekanan “ketiga” ? Tidak Ya Penekanan=”kedua” Penekanan=”ketiga” Penekanan=”pertama” Laju=( laju x 1 ) Laju=( laju x 10 ) Laju=( laju x 10 ) Selesai Gambar 4.12. Diagram Alir Perkalian Gambar 4.13. Implementasi Diagram Alir Perkalian Hasil dari penekanan tombol keypad pengatur laju aliran setelah dilakukan coding sesuai dengan diagram alir keypad pengatur laju aliran dan diagram alir perkalian, dapat dilihat pada gambar 4.14. Gambar 4.14. Hasil Penekanan Tombol Keypad Pengatur Laju Aliran PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 64 4.5.4. Implementasi Diagram Alir Input Linear Scale Diagram alir input linear scale yang diimplementasikan pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno tidak mengalami perubahan dan dapat berjalan sesuai dengan yang diharapkan. Output linear scale akan dimasukan ke arduino pin A0. Implementasi diagram alir input linear scale dapat dilihat pada gambar 4.15. Gambar 4.15. Implementasi Diagram Alir Input Linear Scale 4.5.5. Implementasi Diagram Alir Peringatan Buzzer Diagram alir peringatan buzzer yang diimplementasikan pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno tidak mengalami perubahan dan dapat berjalan sesuai dengan yang diharapkan. Implementasi diagram alir peringatan buzzer dapat dilihat pada gambar 4.16. Gambar 4.16. Implementasi Diagram Alir Peringatan Buzzer Hasil dari coding sesuai dengan diagram alir peringatan buzzer yaitu buzzer akan berbunyi pada saat syringe kosong dan tampilan LCD dapat dilihat pada gambar 4.17. Gambar 4.17. Hasil Coding Peringatan Buzzer PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 65 4.5.6. Implementasi Diagram Alir Gerakan Motor Stepper Diagram alir gerakan motor stepper yang diimplementasikan pada alat syringe pump otomatis berbasis mikrokontroler Arduino Uno mengalami perubahan. Hal ini dikarenakan pin arduino yang digunakan sebagai output tidak dapat dibaca sebagai input. Perubahan juga dilakukan dikarenakan adanya koreksi error. Perubahan diagram alir gerakan motor stepper dapat dilihat pada gambar 4.18 dan implementasi diagram alir gerakan motor stepper step 1 dan step 2 dilihat pada gambar 4.19. Gambar 4.18. Diagram Alir Gerakan Motor Stepper PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 66 Gambar 4.19. Implementasi Diagram Alir Gerakan Motor Stepper Step 1 dan Step 2 Pada gambar 4.18 dapat dilihat bahwa pergeseran pulsa dilakukan dengan memanfaatkan register “step”. Pemberian pulsa ke motor stepper tergantung nilai dari register “step”. Dengan melakukan perubahan diagram alir seperti gambar 4.18, maka diagram alir dapat diimplementasikan dan dapat berjalan sesuai dengan yang diharapkan. PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan Dari hasil implementasi dan pengamatan pada syringe pump otomatis berbasis mikrokontroler Arduino Uno dapat ditarik kesimpulan : 1. Syringe pump otomatis berbasis mikrokontroler Arduino Uno dapat bekerja dengan baik dan rentang pengaturan laju cairan 0,1 – 999 ml/jam dengan ketelitian 0,1 ml. 2. Syringe pump otomatis berbasis mikrokontroler Arduino Uno memiliki error dibawah 5%. 5.2 Saran Berdasarkan hasil implementasi pada bab III, untuk pengembangan lebih lanjut ada beberapa saran agar alat syinge pump otomatis berbasis mikrokontroler Arduino Uno dapat bekerja lebih baik, yaitu : 1. Perancangan ulang dudukan tabung suntik agar memudahkan dalam melepas dan memasang tabung suntik. 2. Penggunaan linear scale yang baik sehingga perubahan jarak secara linear akan mengakibatkan perubahan resistansi sehingga dapat digunakan sebagai deteksi error. 67 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 68 DAFTAR PUSTAKA [1] Ivan-Atjeh Anestesi, 2012, Penaganan Nyeri Pasca Bedah, http://ivanatjeh.blogspot.com/2012/01/penaganan-nyeri-paska-bedah.html, diakses 6 Agustus 2012. [2] -----, -----, Kateter, http://www.news-medical.net/health/Catheter-What-is-Catheter(Indonesian).aspx, diakses 21 Februari 2012 [3] Seroja Seruni, -----, Obat Golongan analgetik opioid, http://serojaseruni.blogspot.com/2011/06/obat-golongan-analgetik-opioid.html, diakses 21 Februari 2013 [4] ------, ------, Syringe Pump TE-331 Terumo, http://pusatinfoelektronik.com/alatkesehatan/syringe-pump-infusion-pump/syringepump-te-331-terumo/, diakses 8 Agustus 2012. [5] Akhsanur, 2010, Syringe Pump, http://dadang-saksono.blogspot.com/2010/07/syringepump.html, diakses 8 agustus 2012. [6] ------, ------, Syringe Pump & Infusion Pump, http://pusatinfoelektronik.com/alatkesehatan/syringe-pump-infusion-pump/ diakses 23 agustus 2012. [7] ------, ------, Arduino Uno, http://arduino.cc/en/Main/ArduinoBoardUno, diakses 23 agustus 2012. [8] ------, 2009, Datasheet ATmega48PA/88PA/168PA/328P, Atmel. [9] ------, ------, Arduino, Interrupt, dan Timers, http://www.funnyrobotics.com/2011/06/arduino-interrupts-and-timers.html, diakses 23 November 2012 [10] -----, -----, Switches, The Elektronics Club, http://www.kpsec.freeuk.com/components/switch.htm, diakses 29 September 2012 [11] Ibrahim, Dogan, 2006, PIC Basic Project, Charon Tec Ltd, Chennai, India 68 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 69 [12] Micro-vision, 2011, Scaning Keypad Pada ATMega8535 dengan CAVR, http://greenelektronik.blogspot.com/2011/07/scaning-keypad-pada-atmega8535dengan.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blog spot/duKaf+(MicroVision), diakses 25 Februari 2013 [13] -----, 2010, Interfacing The PICAXE To A 4×3 Matrix Keypad Revisited Interfacing The PICAXE To A 4×3 Matrix Keypad Revisited, http://blog.southallonline.com/tag/4x3-matrix/, diakses 25 Februari 2013 [14] Don McKenzie ,2012, DuinoMite: 4×3 Keypad on 1 analog pin, http://www.duinomite.com/duinomite-4x3-keypad-on-1-analog-pin/, diakses 25 Februari 2013 [15] -----, -----, Pembagi Tegangan ( Voltage Divider), http://elektronika-dasar.com/teorielektronika/pembagi-tegangan-voltage-divider/, diakses 4 Maret 2013 [16] ------, ------, Slide Pot - Motorized (10k Linear Taper), https://www.sparkfun.com/products/10976, diakses 2 Desember 2012 [17] Agung, I. G. A. P. R., dan Suryawan, K. A., 2007, Perancangan dan RealisasiPenghitung Frekuensi Detak Jantung Berbasis Mikrokontroler AT89S52, Majalah Ilmiah Teknologi Elektro Universitas Udayana, vol. 6, no. 2, hal. 13-19. [18] ------, 2007, Datasheet LCD LMB162AFC, Shenzhen Topway Technology Co.,Ltd. [19] GrahaTunasMuda, 2011, Character LCD 16x2 Blue Topway, http://grahatm.blogspot.com/2011/01/character-lcd-16x2-blue-topway.html, diakses 24 September 2012. [20] Al-Himaone, -----, Dasar Motor Stepper, http://www.ilmu.8k.com/pengetahuan/stepper.htm, diakses 26 September 2012 [21] ------, ------, Prinsip Kerja Motor Stepper, http://lpfilkom.freeservers.com/referens/stepper.htm , diakses 26 september 2012 [22] ------, ------, L298 Motor Driver, http://kedairobot.com/components/35-l298-motordriver.html , diakses 26 September 2012 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 70 [23] ------, 2010, L298 Motor Driver, http://www.cangkal.info/2010/03/l298-motordriver.html, diakses 27 September 2012 [24] STMicroelectronics, 2000, L298, http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERA TURE/DATASHEET/CD00000240.pdf, diakses 28 September 2012 [25] Malvino, Albert Paul, 1995, Prinsip-prinsip Elektonika, Edisi Kedua, Erlangga, Jakarta [26] -----, -----, 5V Electronic Buzzer, http://www.hobbytronics.co.uk/5v-buzzer, diakses 28 Januari 2013 [27] -----, -----, Pengukuran Ulir, http://staff.uny.ac.id/sites/default/files/Pengukuran%20Ulir.pdf, diakses 20 Februari 2013 [28] Polman, -----, Tabel Ulir ISO Metrik Normal, http://xa.yimg.com/kq/groups/22022397/1041787428/name/New ,diakses 22 Februari 2013 [29] Artanto, Dian, 2012, Interaksi Arduino dan LabView, Elex Media Komputindo, Jakarta [30] Winoto, Ardi, 2010, Mikrokontroler AVR ATmega8/32/16/8535 dan pemprogramannya dengan Bahasa C pada AVR, Edisi Revisi, INFORMATIKA, Bandung [31] Ogata, Katsuhiko, 1991, Teknik Kontrol Automatik, Jilid 1, Erlangga, Jakarta PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1 L1-1 LAMPIRAN LISTING PROGRAM UTAMA //----------------------------------------------------------------------------------------------------------// SYRINGE PUMP OTOMATIS BERBASIS MIKROKONTROLER ARDUINO UNO //----------------------------------------------------------------------------------------------------------#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 10, 9, 3, 2); int sensor; int indikator; float langkah; float jeda; int lokasi; int satuan; float laju; int tekan=0; float pengali; int koma; int step1; int putaran; void setup() { standby:; Serial.begin(9600); lcd.begin(16, 2); pinMode(A1,INPUT); pinMode(A2,INPUT); pinMode(A3,INPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI pinMode(7,OUTPUT); pinMode(8,OUTPUT); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); lcd.setCursor(0, 1); lcd.print("0 ml/jam } void loop() { mulai:; keypad(); navigasi(); Linear(); if (sensor <=112) {Peringatan();} else { digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,LOW); lcd.setCursor(0, 0); lcd.print("READY "); } } void Linear() { "); L1 L1-2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI sensor=analogRead(A0); } void Peringatan() { digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); lcd.setCursor(0, 0); lcd.print("KOSONG "); } void Motor(){ Linear(); if (laju!=0 && sensor >112){ if (laju<=200){ langkah=laju/0.003296;} else if(laju<=300){ langkah=laju/0.003177;} else if(laju<=400){ langkah=laju/0.003068;} else if(laju<=500){ langkah=laju/0.002702;} else if(laju<=600){ langkah=laju/0.002514;} else if(laju<=700){ langkah=laju/0.002357;} else if(laju<=800){ L1 L1-3 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI langkah=laju/0.002261;} else if(laju<=900){ langkah=laju/0.002093;} else if(laju<=999) { langkah=laju/0.002097;} jeda=3600000/langkah; delay(jeda); Serial.println(jeda); if (step1==0){ digitalWrite (4, LOW); digitalWrite (5, HIGH); digitalWrite (6, HIGH); digitalWrite (7, HIGH); step1=step1++; putaran=putaran++; } else if (step1==1){ digitalWrite (5, LOW); digitalWrite (4, HIGH); digitalWrite (6, HIGH); digitalWrite (7, HIGH); step1=step1++; putaran=putaran++; } else if (step1==2){ digitalWrite (6, LOW); digitalWrite (5, HIGH); digitalWrite (4, HIGH); digitalWrite (7, HIGH); L1 L1-4 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI step1=step1++; putaran=putaran++; } else if (step1==3){ digitalWrite (7, LOW); digitalWrite (5, HIGH); digitalWrite (6, HIGH); digitalWrite (4, HIGH); step1=0; putaran=putaran++; } } } void navigasi() { int start=analogRead(1); int stopp=analogRead(2); int reset=analogRead(3); if (stopp==LOW ){ delay(100); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,LOW); lcd.setCursor(0, 0); lcd.print("STOP"); indikator=1; } L1L1-5 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI if (reset==LOW && indikator==1){ delay(100); indikator=0; laju=0; tekan=0; koma=0; lcd.setCursor(0, 1); lcd.print("0 ml/jam "); } if (start==LOW ){ delay(100); indikator=0; jalan(); } } void jalan(){ jalanterus:; if (laju!=0){ if (sensor<=30){ Peringatan(); } else { int berhenti=analogRead(A2); if (berhenti>=112){ lcd.setCursor(0, 0); lcd.print("RUNNING"); Motor(); goto jalanterus; L1L1-6 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI } } } } void tunggu(){ ulang:; int nilai=analogRead(4); if (nilai < 484){ delay(100); } else { goto ulang; } } void perkalian(){ if (tekan==0){ tekan=tekan++; pengali=1; laju=laju*pengali; } else if (tekan==1){ tekan=tekan++; pengali=10; laju=laju*pengali; } else if (tekan==2){ L1L1-7 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI tekan=tekan++; pengali=10; laju=laju*pengali; } } void keypad() { int nilai=analogRead(4); if (nilai >=1021){ if (koma==1){ laju=laju+0.2; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+2; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); L1-8 L1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI } } else if(nilai>=929){ if (koma==1){ laju=laju+0.1; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+1; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=852){ if (koma==1){ laju=laju+0.3; lokasi=tekan+3; L1L1-9 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+3; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=786){ if (koma==1){ laju=laju+0.5; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; L1L1-10 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI tunggu(); } else { perkalian(); laju=laju+5; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=730){ if (koma==1){ laju=laju+0.4; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+4; lokasi=tekan+3; L1 L1-11 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=681){ if (koma==1){ laju=laju+0.6; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+6; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } L1 L1-12 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI } else if(nilai>=639){ if (koma==1){ laju=laju+0.8; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+8; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=602){ if (koma==1){ laju=laju+0.7; lokasi=tekan+3; lcd.setCursor(0,1); L1 L1-13 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+7; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=568){ if (koma==1){ laju=laju+0.9; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); L1 L1-14 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI } else { perkalian(); laju=laju+9; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=536){ if (koma==1){ laju=laju+0.0; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+0; lokasi=tekan+3; lcd.setCursor(0,1); L1 L1-15 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=507){ laju=0; tekan=0; koma=0; lcd.setCursor(0, 1); lcd.print("0 ml/jam "); tunggu(); } else if(nilai>=484){ koma=1; lcd.setCursor(tekan, 1); lcd.print("."); lokasi=tekan+3; lcd.setCursor(lokasi, 1); lcd.print(" ml/jam"); lokasi=lokasi++; tunggu(); } } #include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 10, 9, 3, 2); int sensor; int indikator; L1 L1-16 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI float langkah; float jeda; int lokasi; int satuan; float laju; int tekan=0; float pengali; int koma; int step1; int putaran; void setup() { standby:; Serial.begin(9600); lcd.begin(16, 2); pinMode(A1,INPUT); pinMode(A2,INPUT); pinMode(A3,INPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); lcd.setCursor(0, 1); lcd.print("0 ml/jam } "); L1 L1-17 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI void loop() { mulai:; keypad(); navigasi(); Linear(); if (sensor <=112) {Peringatan();} else { digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,LOW); lcd.setCursor(0, 0); lcd.print("READY "); } } void Linear() { sensor=analogRead(A0); } void Peringatan() { digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); L1 L1-18 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd.setCursor(0, 0); lcd.print("KOSONG "); } void Motor(){ Linear(); if (laju!=0 && sensor >112){ if (laju<=200){ langkah=laju/0.003296;} else if(laju<=300){ langkah=laju/0.003177;} else if(laju<=400){ langkah=laju/0.003068;} else if(laju<=500){ langkah=laju/0.002702;} else if(laju<=600){ langkah=laju/0.002514;} else if(laju<=700){ langkah=laju/0.002357;} else if(laju<=800){ langkah=laju/0.002261;} else if(laju<=900){ langkah=laju/0.002093;} else if(laju<=999){ langkah=laju/0.002097;} jeda=3600000/langkah; delay(jeda); Serial.println(jeda); if (step1==0){ L1 L1-19 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI digitalWrite (4, LOW); digitalWrite (5, HIGH); digitalWrite (6, HIGH); digitalWrite (7, HIGH); step1=step1++; putaran=putaran++; } else if (step1==1){ digitalWrite (5, LOW); digitalWrite (4, HIGH); digitalWrite (6, HIGH); digitalWrite (7, HIGH); step1=step1++; putaran=putaran++; } else if (step1==2){ digitalWrite (6, LOW); digitalWrite (5, HIGH); digitalWrite (4, HIGH); digitalWrite (7, HIGH); step1=step1++; putaran=putaran++; } else if (step1==3){ digitalWrite (7, LOW); digitalWrite (5, HIGH); digitalWrite (6, HIGH); digitalWrite (4, HIGH); step1=0; L1 L1-20 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI putaran=putaran++; } } } void navigasi() { int start=analogRead(1); int stopp=analogRead(2); int reset=analogRead(3); if (stopp==LOW ){ delay(100); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,LOW); lcd.setCursor(0, 0); lcd.print("STOP"); indikator=1; } if (reset==LOW && indikator==1){ delay(100); indikator=0; laju=0; tekan=0; koma=0; lcd.setCursor(0, 1); lcd.print("0 ml/jam } "); L1 L1-21 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI if (start==LOW ){ delay(100); indikator=0; jalan(); } } void jalan(){ jalanterus:; if (laju!=0){ if (sensor<=30){ Peringatan(); } else { int berhenti=analogRead(A2); if (berhenti>=112){ lcd.setCursor(0, 0); lcd.print("RUNNING"); Motor(); goto jalanterus; } } } } void tunggu(){ ulang:; int nilai=analogRead(4); if (nilai < 484){ L1 L1-22 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI delay(100); } else { goto ulang; } } void perkalian(){ if (tekan==0){ tekan=tekan++; pengali=1; laju=laju*pengali; } else if (tekan==1){ tekan=tekan++; pengali=10; laju=laju*pengali; } else if (tekan==2){ tekan=tekan++; pengali=10; laju=laju*pengali; } } void keypad() { int nilai=analogRead(4); if (nilai >=1021){ L1 L1-23 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI if (koma==1){ laju=laju+0.2; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+2; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=929){ if (koma==1){ laju=laju+0.1; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); L1 L1-24 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+1; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=852){ if (koma==1){ laju=laju+0.3; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { L1 L1-25 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI perkalian(); laju=laju+3; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=786){ if (koma==1){ laju=laju+0.5; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+5; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); L1 L1-26 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=730){ if (koma==1){ laju=laju+0.4; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+4; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=681){ if (koma==1){ L1 L1-27 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI laju=laju+0.6; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+6; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=639){ if (koma==1){ laju=laju+0.8; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); L1 L1-28 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+8; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=602){ if (koma==1){ laju=laju+0.7; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); L1 L1-29 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI laju=laju+7; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=568){ if (koma==1){ laju=laju+0.9; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+9; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); L1 L1-30 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI tunggu(); } } else if(nilai>=536){ if (koma==1){ laju=laju+0.0; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tekan=0; koma=0; tunggu(); } else { perkalian(); laju=laju+0; lokasi=tekan+3; lcd.setCursor(0,1); lcd.print(laju); lcd.setCursor(lokasi,1); lcd.print(" ml/jam"); tunggu(); } } else if(nilai>=507){ laju=0; tekan=0; L1 L1-31 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI koma=0; lcd.setCursor(0, 1); lcd.print("0 ml/jam tunggu(); } else if(nilai>=484){ koma=1; lcd.setCursor(tekan, 1); lcd.print("."); lokasi=tekan+3; lcd.setCursor(lokasi, 1); lcd.print(" ml/jam"); lokasi=lokasi++; tunggu(); } } "); L1 L1-32 R1 10k +5V SW3 ONI U D R A 3 SW2 V5 R2 10k +5V A0 A1 A2 A3 A4 A5 t u p tu o /t u p nI l at i gi D tu p n I g ol a n A 1 R4 1k 1 1 2 2 5 SW11 4 SW10 2 del R5 2k 0 1 , 9 SW15 6 SW12 3 SW9 SW6 BUZZER LS1 +5V 2 C7 100nF 5 7 10 12 9 6 11 R11 3k R11 3k R11 3k +5V 1A1 1A2 2A1 2A2 VCC1 1EN 2EN U1 R11 3k R11 3k 1Y1 1Y2 2Y1 2Y2 1E 2E VCC2 470uF C8 L298 8 SW14 8 2 SW8 SW5 3 1 SW7 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 2 D NG SW13 7 D NG +5V SW4 Power ni V SW1 R3 10k +5V 1 Linear Scale RST AREF J2 3 V3 2 1k 1 10k LCD )- DEL( 61 ) + DEL( 51 ) 7 B D( 41 ) 6 B D( 31 ) 5 B D( 21 ) 4 B D( 11 ) 3 B D( 01 ) 2 B D( 9 ) 1 B D( 8 ) 0 B D( 7 ) E( 6 ) W / R( 5 ) S R( 4 ) o V( 3 ) C CV( 2 ) SSV( 1 +5V +5V R11 3k 2 3 13 14 1 15 4 +12V R12 10k D3 D4 D5 D6 D7 D8 4 2 D2 0.5 D1 MOTOR STEPPER 1 0.5 100nF C6 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI LAMPIRAN RANGKAIAN KESELURUHAN 3 L1 L2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1 L3-1 LAMPIRAN TABEL PENGAMBILAN DATA Tabel Pengambilan Data Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno No Set Point (ml/jam/jam) Start time End Time Laju Aliran yang Error dihasilkan (ml/jam) (ml/jam) Error (%) 1 0,1 14:02 15:02 0,1 0 0 2 0,2 15:08 16:08 0,2 0 0 3 0,3 16:15 17:15 0,3 0 0 4 0,4 17:18 18:18 0,4 0 0 5 0,5 18:23 19:23 0,5 0 0 6 0,7 19:30 20:30 0,7 0 0 7 1,1 20:35 21:35 1,1 0 0 8 2,1 21:42 22:42 2,1 0 0 9 5 22:49 23,49 5 0 0 10 5,5 23:56 00:56 5,5 0 0 11 6,2 01:01 02:01 6,2 0 0 12 10 02:07 03:07 10 0 0 13 12,2 07:15 08:15 12,2 0 0 14 15 08:22 09:22 15 0 0 15 17,8 09:31 10:31 17,8 0 0 16 25,2 10:38 11:38 25,2 0 0 17 32,4 13:02 14:02 32,2 0 0 18 43,5 14:10 15:10 43,5 0 0 19 57,6 15:14 16:14 57,6 0 0 20 76,5 16:20 17:20 76,5 0 0 21 91,5 17:27 18:27 91,5 0 0 22 103,2 18:35 19:35 103,2 0 0 23 121,5 19:42 20:42 121,5 0 0 24 150 20:50 21:50 150 0 0 25 187,2 21:59 22:59 187,2 0 0 26 194,4 23:06 00:06 195,4 1 0,51 27 200 00:14 01:14 203,5 3,5 1,75 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1 L3-2 Tabel (lanjutan) Pengambilan Data Syringe Pump Otomatis Berbasis Mikrokontroler Arduino Uno No Set Point (ml/jam/jam) Start time End Time Laju Aliran yang Error dihasilkan (ml/jam) (ml/jam) Error (%) 28 208,8 01:21 02:21 212,4 3,6 1,72 29 223,2 02:30 03:30 223,2 0 0 30 241,2 17:30 18:30 237,6 3,6 1,49 31 273,6 18:34 19:34 276 2,4 0,88 32 302,4 19:39 20:39 300 2,4 0,8 33 331,2 20:45 21:45 324 7,2 2,17 34 374,4 21:53 22:53 367,2 7,2 1,92 35 396 23:00 00:00 381,6 14,4 3,64 36 410,4 00:08 01:08 417,6 7,2 1,75 37 439,2 01:15 02:15 432 7,2 1,64 38 482,4 02:23 03:23 468 14,4 2,98 39 511,2 07:10 07:10 518,4 7,2 1,41 40 540 07:14 08:14 525,6 14,4 2,67 41 590,4 08:18 09:18 561,6 28,2 4,88 42 626,4 16:30 17:30 619,2 7,2 1,15 43 667,4 17:34 18:34 648 19,4 2,91 44 695,8 18:40 19:40 676,8 19 2,73 45 724,2 19:46 20:46 691,2 33 4,56 46 766,8 20:50 21:50 734,4 32,4 4,23 47 795,2 21:54 22:54 763,2 32 4,02 48 823,6 23:05 00:05 792 31,6 3,84 49 866,2 00:12 01:12 849,6 16,6 1,92 50 894,6 01:18 02:18 864 30,6 3,42 51 923 02:22 03:22 878,4 44,6 4,83 52 965,6 07:30 08:30 921,6 44 4,56 53 999 08:38 08:38 950,4 48,6 4,86 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L4-2 L1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L4-3 L1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-4 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-5 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-6 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-7 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-8 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-9 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-10 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-11 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L4-12 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1 L4-13 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L5-1 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L5-2 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L5-3 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L5-4 PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI L1L5-5