PERANCANGAN SISTEM PENGENDALI INFUS DENGAN
MENGGUNAKAN SENSOR INFRA MERAH BERBASIS
MIKROKONTROLLER AT89S51
SKRIPSI
SARAH
101421026
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
PERANCANGAN SISTEM PENGENDALI INFUS DENGAN
MENGGUNAKAN SENSOR INFRA MERAH BERBASIS
MIKROKONTROLLER AT89S51
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer
SARAH 101421026
PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA MEDAN
PERSETUJUAN
Judul : Perancangan Sistem Pengendali Infus Dengan Menggunakan Sensor Infra Merah Berbasis Mikrokontroller AT89S51
Kategori : SKRIPSI
Nama : SARAH
Nomor Induk Mahasiswa : 101421026
Program Studi : EKSTENSI S1 ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :
Pembimbing 2 Pembimbing 1
Drs. Dahlan Sitompul Dr. Poltak Sihombing,
M.Kom NIP 1967072 520050 1 1002 NIP 19620317 199103 1 001
Diketahui/disetujui oleh
Program Studi Ekstensi S1 Ilmu Komputer
Ketua,
Dr. Poltak Sihombing, M.Kom.
NIP 19620317 199103 1 001
PERANCANGAN SISTEM PENGENDALI INFUS DENGAN MENGGUNAKAN SENSOR INFRA MERAH BERBASIS
MIKROKONTROLLER AT89S51
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Januari 2014
SARAH
NIP.101421026
Puji dan syukur ke hadirat Allah SWT karena atas segala rahmat dan karunia-Nya penulis dapat menyelesaikan skripsi ini dalam waktu yang telah ditetapkan sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer, Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara, serta Shalawat dan Salam penulis hadiahkan kepada Nabi Besar Muhammad SAW.
Pada kesempatan ini, penulis menyampaikan ucapan terima kasih, antara lain kepada:
1. Bapak Prof. Dr. Muhammad Zarlis, M.Kom sebagai Dekan Fakultas Ilmu Komputer dan Teknologi Informasi.
2. Bapak Dr. Poltak Sihombing, M.Kom sebagai Ketua Program Studi S1 Ilmu Komputer dan sekaligus sebagai Dosen Pembimbing I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
3. Ibu Maya Silvi Lydia, B.Sc, M.Sc Sekertaris Program Studi S1 Ilmu Komputer.
4. Drs. Dahlan Sitompul M.Eng selaku Dosen Pembimbing II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
5. Bapak Agus Salim Harahap, M.Si selaku Dosen Penguji I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
6. Bapak Andri Budiman, ST,M.Comp.Sc,MEM selaku Dosen Penguji II telah memberikan kritik dan saran dalam penyempurnaan skripsi ini. 7. Teristimewa Orang tua yang penulis sayangi, ibunda Ellyzar dan ayahanda
Zulkarnain yang telah mendukung penulis dengan penuh. Serta saudara-saudara penulis Albar S.sos, Haviz, Zaura, dan Raihan Nadilla,terima kasih atas semua doa, dukungan dan motivasi yang tak ternilai harganya. 8. Sahabat penulis khususnya Anika Wafi Lubis Amd, Dina Syafitri S.Kom,
Amd, Madaniyah Amd, dan sahabat-sahabat seperjuangan lainnya yang telah memberikan dukungan, semangat untuk menyelesaikan skripsi ini. 9. Yang Terkasih Mirza Ilhami S.Kom yang telah memberikan dukungan dan
omelan-omelan demi terselesainya skripsi ini.
10.Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu menyelesaikan skripsi ini.
Penulis menyadari bahwa skripsi ini masih banyak kekurangan. Oleh karena itu, penulis menerima kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Semoga skripsi ini dapat bermanfaat bagi penulis dan pembaca, khususnya rekan-rekan mahasiswa lainnya yang mengikuti perkuliahan di Universitas Sumatera Utara.
Medan, January 2014
ABSTRAK
Dalam rangkaian ini penulis mencoba untuk merekayasa suatu sistem elektronika yang menggunakan Mikrokontroller AT89S51, keluaran produk atmel ini merupakan suatu terobosan teknologi yang hadir untuk memenuhi kebutuhan pasar dan dengan harga yang relatif murah. Oleh karena itu penulis mencoba merancang suatu alat yaitu sistem pengendali infus dengan menggunakan sensor infra merah berbasis Mikrokontroller AT89S51, yang bertujuan untuk mengendalikan tetesan infus serta memberi tanda berupa bunyi alarm jika cairan infus akan habis. Dalam proses perancangan, penulis menggunakan sensor infra merah dan phorotransistor sebagai sensor yang merupakan Input dari mikrokontroller. Rangkaian sensor terbagi dua (2) bagian. Sensor pertama dipasang pada bagian badan tabung infus yang pada rangkaian ini disebut sensor level, dan sensor kedua dipasang pada ujung bawah tabung infus yang disebut sensor tetesan. Deteksi tetesan infus dengan menggunakan sensor ini juga dilengkapi mekanisme penjepit selang infus. Mekanisme ini akan bergerak tertutup dan terbuka sesuai masukan set point yang diberikan pada keypad. Dalam operasinya motor stepper akan memutar baut melalui gigi transisi dan menyebabkan baut bergerak linier sehingga mengakibatkan pangkal rambut dapat menjepit atau merenggangkan selang infus, sehingga kecepatan aliran infus dapat dikendalikan.
INFUSION CONTROL SYSTEM DESIGN USING INFRARED SENSORS BASED ON MICRO CONTROLLER AT89S51
ABSTRACT
In this series the authors try to design an electronic system that uses a microcontroller AT89S51, Atmel product output is a breakthrough technology that exists to satisfy market demand and with relatively low prices. Therefore, the writer tries to design a device that is controlling infusion system using infrared sensors based Microcontroller AT89S51, which aims to control the drip and gave a sign of an alarm signal if the fluid infusion will be exhausted. In the design process, the author uses infrared sensors and phototransistor as a sensor that is input from the microcontroller. Sensor circuit is divided into two (2) parts. The first sensor mounted on the body of the infusion tube is called the sensor-level circuit, and a second sensor mounted on the lower end of sensor tube called a drip infusion. Detection of drip infusion with using sensor also features a hose clamp mechanism infusion. This mechanism will move closed and opened according to a given set point input on the keypad. In the operation of stepper motor will rotate the bolt through the transition teeth and cause the bolt to move linearly so that the resulting base of the hair to loosen the hose clamp or infusion, so the infusion flow rate can be controlled.
2.3 LED Infra Merah 31
DAFTAR TABEL
2.1 Fungsi Pin pada port 3 22
4.1 Hasil Pengukuran Mikrokontroller 54
4.3 Titik Pengukuran Rangkaian Display 59
4.4 Data Hasil Pengukuran Rangkaian Alarm 60
4.5 Data Pengukuran Rangkaian Driver Motor Stepper 62
DAFTAR GAMBAR
2.1 Arsitektur Mikrokontroller AT89S51 11
2.2 Konfigurasi Pin ICAT89S51 20
2.3 kontruksi AT89S51 21
2.4 Software 8051 editor,assembly,simulator (IDE) 30
2.5 ISP-flashProgrammer 3.0a 31
2.6 (a) Simbol LED (Light Emiting Dioda) Infra Merah
(b) Wujud LED (Light Emiting Dioda) Infra Merah 33 2.7 (a) Simbol Phototransistor
(b) Wujud Phototransistor 35
2.9 Wujud Motor Langkah (stepper) 36
2.10 Diagram Motor Langkah(stepper) 37
2.11 Pemberian data/pulsa pada motor stepper 38
2.12 Wujud Buzzer 39
3.1 Diagram Blok Sistem Pengendali Infus Dengan Menggunakan Sensor Pototransistor Berbasis Mikrokontroller At89S51 40
3.2 Rangkaian Sistem Pengendali infus 42
3.3 Rangkaian Sensor 44
3.4 Rangkaian Tombol 45
3.5 Rangkaian Driver Stepper Motor 46
3.6 Rangkaian Display 7-Segment 48
3.7 Driver Buzzer 50
3.8 Flowchart 52
ABSTRAK
Dalam rangkaian ini penulis mencoba untuk merekayasa suatu sistem elektronika yang menggunakan Mikrokontroller AT89S51, keluaran produk atmel ini merupakan suatu terobosan teknologi yang hadir untuk memenuhi kebutuhan pasar dan dengan harga yang relatif murah. Oleh karena itu penulis mencoba merancang suatu alat yaitu sistem pengendali infus dengan menggunakan sensor infra merah berbasis Mikrokontroller AT89S51, yang bertujuan untuk mengendalikan tetesan infus serta memberi tanda berupa bunyi alarm jika cairan infus akan habis. Dalam proses perancangan, penulis menggunakan sensor infra merah dan phorotransistor sebagai sensor yang merupakan Input dari mikrokontroller. Rangkaian sensor terbagi dua (2) bagian. Sensor pertama dipasang pada bagian badan tabung infus yang pada rangkaian ini disebut sensor level, dan sensor kedua dipasang pada ujung bawah tabung infus yang disebut sensor tetesan. Deteksi tetesan infus dengan menggunakan sensor ini juga dilengkapi mekanisme penjepit selang infus. Mekanisme ini akan bergerak tertutup dan terbuka sesuai masukan set point yang diberikan pada keypad. Dalam operasinya motor stepper akan memutar baut melalui gigi transisi dan menyebabkan baut bergerak linier sehingga mengakibatkan pangkal rambut dapat menjepit atau merenggangkan selang infus, sehingga kecepatan aliran infus dapat dikendalikan.
INFUSION CONTROL SYSTEM DESIGN USING INFRARED SENSORS BASED ON MICRO CONTROLLER AT89S51
ABSTRACT
In this series the authors try to design an electronic system that uses a microcontroller AT89S51, Atmel product output is a breakthrough technology that exists to satisfy market demand and with relatively low prices. Therefore, the writer tries to design a device that is controlling infusion system using infrared sensors based Microcontroller AT89S51, which aims to control the drip and gave a sign of an alarm signal if the fluid infusion will be exhausted. In the design process, the author uses infrared sensors and phototransistor as a sensor that is input from the microcontroller. Sensor circuit is divided into two (2) parts. The first sensor mounted on the body of the infusion tube is called the sensor-level circuit, and a second sensor mounted on the lower end of sensor tube called a drip infusion. Detection of drip infusion with using sensor also features a hose clamp mechanism infusion. This mechanism will move closed and opened according to a given set point input on the keypad. In the operation of stepper motor will rotate the bolt through the transition teeth and cause the bolt to move linearly so that the resulting base of the hair to loosen the hose clamp or infusion, so the infusion flow rate can be controlled.
BAB I
PENDAHULUAN
1. Latar Belakang.
Kemajuan teknologi yang semakin pesat, membuat kehidupan manusia
semakin lebih mudah dan praktis. Begitu pula dengan sarana lembaga kesehatan
saat ini, dimana kita membutuhkan suatu alat yang mampu membantu manusia
bekerja dalam bidang kesehatan. Dalam permasalahan ini, kita banyak melihat di
setiap lembaga kesehatan masih kesulitan dalam hal mengawasi tetesan pada
tabung infus yang terkadang terlalu cepat ataupun terlalu lambat tetesannya serta
belum lagi mengetahui apakah tabung infus sudah habis atau belum.
Dikarenakan alat yang digunakan berada di dalam ruangan maka
diperlukan suatu sistem kontrol yang akurat dan dapat mengingatkan setiap saat.
Sehingga jika terjadi suatu masalah langsung dapat diketahui dan dengan segera
dapat diatasi sehingga tidak berdampak pada kesehatan pasien
Bedasarkan keadaan tersebut peneliti mempunyai ide untuk membuat
ini menggunakan Mikrokontroller AT89S51 yang dapat mengingatkan seorang
pekerja (perawat) apabila tabung infus akan segera habis dengan menggunakan
Sensor Inframerah yang sangat mudah didapat dipasaran dan cara
pemrogramannya relatif lebih mudah dipahami, yang peneliti tuangkan dalam
skripsi dengan judul ”Perancangan Sistem Pengendali Infus Dengan
Menggunakan Sensor Infra Merah Berbasis Mikrokontroller AT89S51 ”.
1.2 Perumusan Masalah.
Adapun rumusan masalah dalam tugas akhir ini adalah:
a. Bagaimana membuat sebuah perangkat yang dapat mengendalikan tetesan
infus pada tabung infus agar dapat membantu pekerja lembaga kesehatan
(perawat) dalam menjalankan tugasnya.
b. Bagaimana mengendalikan tetesan infus pada tabung infus dengan
mengatur berapa tetes infus yang diperlukan pasien per 1 detik.
c. Bagaimana mengatur sensor pada tabung infus agar tidak terjadi
kekosongan pada tabung infus
1.3 Batasan Masalah.
Karena terbatasnya sarana dan prasarana dalam pembuatan alat penguji
ini, maka yang dikaji dan dibahas lebih mendalam adalah:
1. Perancangan sensor pada tabung infus dan pembuatan panel control
2. Cara kerja mikrokontroller terhadap tetesan infus yang diatur.
1.4 Tujuan Penulisan.
Adapun tujuan penulisan adalah:
Untuk membuat sebuah perangkat yang dapat mengendalikan tetesan infus
pada tabung infus agar dapat membantu pekerja lembaga kesehatan (perawat)
dalam menjalankan tugasnya.
1.5 Manfaat Penulisan.
Manfaat alat ini adalah sebagai berikut:
1. Untuk mengurangi faktor kelalaian dari manusia, sehingga mengakibatkan
gangguan kesehatan pada pasien.
2. Untuk mengurangi resiko kekurangan cairan infus pada pasien.
3. Keefisienan dalam mengatur tetesan infus.
1.6 Tinjauan Pustaka
1.6.1 Sensor
1. Sensor
Sensor yang digunakan pada rancangan ini adalah sensor photodioda yang terdiri dari sebuah pemancar infra merah dan sebuah penerima infra merah. Pemancar infra merah berupa sebuah LED infra merah yang akan memancarkan cahaya infra merah ke penerima. Sedangkan sebagai penerima infra merah digunakan sebuah photo dioda yang dirancang sedemikian rupa untuk mengubah besaran cahaya infra merah menjadi arus listrik,
1.7 Sistematika Penulisan.
Sistematika penulisan merupakan garis besar penyusunan skripsi yang
memudahkan jalan pemikiran dalam memahami keseluruhan isi skripsi.
Sistematika skripsi dalam penelitian ini adalah:
BAB I PENDAHULUAN
Bab ini membahas tentang alasan pemilihan judul, permasalahan,
pembatasan masalah, tujuan penelitian, manfaat penelitian, dan sistematika
skripsi.
BAB II LANDASAN TEORI
Bab ini menjelaskan kajian teori tentang Mikrokontroller , komponen dan
kelengkapan yang berhubungan dengan perencanaan dan pembuatan alat
pengendalian infus.
Perencanaan dan pembuatan alat, baik yang berupa perangkat lunak seperti
pembuatan program Mikrokontroller yang ditampilkan pada bahasa Assembly,
membuat blok diagram rangkaian dan skema rangkaian. Juga membahas tentang
perakitan komponen.
BAB IV PENGUKURAN, PEMBAHASAN DAN KETERBATASAN
ALAT
Data pengukuran dan pengujian alat dianalisis apakah sudah sesuai dengan
spesifikasi yang diinginkan serta menentukan spesifikasi alat setelah jadi.
BAB V PENUTUP
BAB II
LANDASAN TEORI
II.1. PERANGKAT KERAS
II.1.1 Mikrokontroller
Mikrokontroller, sesuai namanya adalah suatu alat pengontrol / pengendali yang berukuran kecil (mikro). Sebelum mikrokontroller ada, terlebih dahulu muncul yang disebut mikroprosesor. Bila dibandingkan dengan mikroprosesor, mikrokontroller jauh lebih unggul dengan alasan sebagai berikut :
• Tersedia I/O
I/O dalam mikrokontroller sudah tersedia, bahkan untuk AT89S51 ada 32 jalur I/O, sementara pada mikroprosesor dibutuhkan IC tambahan untuk menangani I/O tersebut (PPI 8255).
• Memori internal
Meski memiliki berbagai kelemahan, mikroprosesor tetap digunakan sebagai dasar dalam mempelajari mikrokontroller. Dengan memiliki dasar pengetahuan yang cukup tentang mikroprosesor, maka kita akan lebih cepat dan mudah memahami mikrokontroller dengan sempurna. Inti kerja mikroprosesor dan mikrokontroller adalah sama, yaitu sebagai pengendali atau pengontrol utama suatu rangkaian.
Mikrokontroller keluarga MSC-51 merupakan mikrokontroller yang paling banyak digunakan saat ini karena memiliki berbagai kelebihan seperti arsitektur yang sederhana, software pemograman yang mudah, harga terjangkau, literature banyak, dll. Generasi awal MSC-51 adalah mikrokontroller generasi C, yaitu AT89C51 dan AT89C52. Namun pada generasi C ini terdapat beberapa kelemahan :
• Mikrokontroller hanya dapat diprogram secara parallel, sehingga untuk
memogramnya kita membutuhkan pemograman khusus.
• Tidak praktis karena selalu mencabut – pasang IC, sehingga IC mudah rusak dan
kemungkinan terjadinya salah posisi dalam pemasangannya.
• Downloader-nya agak sulit untuk dibuat sendiri, terutama di daerah yang
fasilitasnya masih kurang, dan jika dibeli harganya relatif mahal.
II.1.2 Sistem Mikrokontroller
Mikrokontroller merupakan sebuah sistem komputer yang seluruh atau sebagian besar elemenya dikemas dalam satu chip IC, sehingga sering disebut single chip
microcomputer. Sistem mikrokontroller adalah sebuah sistem yang dibentuk dari beberapa elemen dasar, yaitu CPU (Central Processing Unit), Unit memori, Unit Input/Output, Bus, dan Clock.
• Central Processing Unit (CPU).
merupakan bagian paling penting dalam sistem mikrokontroller,karena CPU-lah yang mengeksekusi, mengolah data, serta melakukan fungsi aritmatika dan logika.
• Memori
Memori merupakan media penyimpanan data atau program. Ada dua jenis memori yang terdapat pada sistem mikrokontroller, yaitu memori volatile (mudah
hilang) contohnya RAM (Random Access Memory), dan memori nonvolatile
(tetap) contohnya ROM (Read Only Memory).
• Input/Output
Setiap sistem mikrokontroller memerlukan sistem input dan output yang merupakan media keluar - masuknya data dari mikrokontroller.
Bus adalah sebuah jalur semikonduktor yang memiliki fungsi sama. Bus berfungsi menghubungkan antara CPU, memori, dan I/O. Bus dapat dikelompokkan berdasarkan fungsinya, yaitu bus data (data bus), bus alamat (address bus) dan bus kendali (control bus).
• Clock
Clock atau pewaktuan berfungsi memberikan referensi waktu dan sinkronisasi antar elemen.
II.1.3 Mikrokontroller AT89S51
AT89S51 adalah mikrokontroller keluaran Atmel dengan 4 Kbyte Flash PEROM (Programmable and Erasable Read Only Memory), AT89S51 merupakan memori dangan teknologi nonvolatile memory, artinya isi tersebut dapat diisi ulang ataupun dihapus secara berkali – kali.
Mikrokontroller AT89S51 memiliki fitur sebagai berikut :
• Kompatibel dengan produk MSC-51
• Memori flash 8 KB yang bisa diprogram ulang sampai 1000 kali pemograman
• Berkerja pada frekwensi sampai 33 MHz
• 256 x 8 bit RAM internal
• 32 saluran input-output
• tiga tingkatan program memori lock
• 2 buah timer / counter 16 bit
• 8 sumber interupsi
Jenis mikrokontroller AT89S51 pada perinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit sacara bersamaan. Pada mikrokontroller ini dapat berkerja bila dalam mikrokontroller tersebut terdapat sebuah program yang berisi instruksi-instruksi yang akan digunakan untuk menjalankan sistem mikrokontroller tersebut. Pada prinsipnya bahwa program mikrokontroller dijalankan secara bertahap, jadi program itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap ataupun berurutan.
II.1.4 Arsitektur Mikrokontroller
Gambar 2.1 Arsitektur Mikrokontroller AT89S51
(Sumber : Hendra
Keterangan gambar 2.1. arsitektur mikrokontroller AT89S51 :
Register
SpecialFunction Register (SFR) adalah register-register yang mempunyai fungsi khusus, diantaranya ada yang digunakan untuk mengatur input/output data dari mikrokontroller. Misalnya saja register P0, P1, P2, dan P3 digunakan sebagai register untuk menampung data input/output. Selain itu, ada juga SpecialFunction Register (SFR) yang digunakan untuk mengatur dan memantau kondisi UART, yaitu pada register SCON. Register yang digunakan untuk mengatur kerja timer adalah TCON.
Special Function Register (SFR) terdapat pada ruangan memori RAM yang mempunyai alamat 80H sampai FFH. Tidak semua alamat itu dipakai oleh Special Function Register (SFR). Untuk menghindari hal yang tidak diinginkan dalam program, sebaiknya alamat yang tidak dipakai tersebut tidak digunakan.
Pada Special Function Register (SFR) terdapat beberapa alamat yang bisa dialamati secara bit dan ada yang tidak bisa dialamati secara bit. Pada Special Function Register yang bisa dialamati secara bit, alamat pada digit keduanya adalah digit 0 atau 8, misalnya 80H, 88H, 90H, 98H, dan F8H. Special Function Register Akumulator adalah salah satunya yang sering dipakai untuk dialamati secara bit dan mempunyai alamat E0H, misalnya A0, A1, A2, A3, A4, A5, A6, A7.
Accumulator merupakan register yang berfungsi untuk menyimpan data sementara. Register Accumulator ini sering digunakan dalam proses operasi aritmatika, logika, pengambilan data dan pengiriman data. Register ini juga dapat dialamati secara bit.
• Register B
Register B dapat digunakan untuk proses aritmatika dan juga dapat difungsikan sebagai sebuah register biasa.
• Register Port
Pada register ini terdapat 4 buah yaitu register Port 0, Port 1, Port 2, dan Port 3. register port ini digunakan sebagai sarana input/output untuk menyimpan data dari atau ke port untuk masing-masing P0, P1, P2, P3.
• Register Timer
Mikrokontroller AT89S51 mempunyai 16 bit timer, yaitu timer 0 dan timer 1. timer 0 dibentuk oleh register TH0 dan TL0. dan timer 1 dibentuk oleh register TH1 dan TL1. Perilaku dari register TH0, TH1, TL0, dan TL1 diatur oleh register TMOD dan register TCON.
• Register Control
(Interrupt Priority), IE (interrupt Enable), TMOD (Timer Mode), SCON (Serial
Control), dan PCON (Power Control).
Register IP digunakan untuk mengatur prioritas dari masing-masing intrupsi. Register IE digunakan untuk mengaktifkan atau menonaktifan sarana
intrupsi. IE.0 sampai IE.6 mengatur masing-masing sumber intrupsi, sedangkan IE.7 mengatur intrupsi secara keseluruhan. Jika IE7 bernilai 0 maka sistem intrupsi akan menonaktifkan atau keadaan dari IE.0 sampai IE.6 tidak diperhatikan.
Register TMOD digunakan untuk mengatur mode kerja dari timer 0 dan
timer 1. Dengan mengatur mode kerja timer, register ini dapat mengatur masing-masing timer untuk diatur menjadi timer 16 bit, timer 13 bit, atau timer 8 bit yang dapat diisi ulang otomatis. Selain itu, register ini juga dapat mengatur agar proses pencacah timer dapat dikendalikan melalui sinyal dari luar mikrokontroller.
Register TCON digunakan untuk memulai atau menghentikan proses
pencacah timer, mengatur sinyal intrupsi dari INT0 atau INT1, serta memantau apakah ada sinyal yang masuk ke INT0 atau INT1.
Register SCON digunakan untuk mengatur prilaku dari UART yang
diantaranya memantau proses pengiriman dan penerimaan data seri. Register PCON digunakan untuk mengatur pemakaian daya pada IC.
• Program Status Word (PSW)
• Data Pointer
Register data pointer atau DPTR merupakan register 16 bit yang terdiri dari data pointer low byte (DPL).
• Serial Data Buffer
Serial Data Buffer terletak pada lokasi 99H yang dibagi menjadi dua register yang terpisah, yaitu transmit buffer dan receive buffer. Saat data disalin ke serial data buffer maka data sesungguhnya diterima dan diteruskan ked an dari serial port.
• Program Counter
Merupakan salah satu register khusus yang berfungsi sebagai pencacah atau penghitung eksekusi program mikrokontroller.
ALU (Arithmetic and Logic Unit)
Clock Circuits
Mikrokontroller adalah rangkaian logika sekuensial, dimana proses kerjanya berjalan melalui sikronisasi clock. Karenanya diperlukan clock circuits yang menyediakan clock bagi seluruh bagian rangkaian.
Stack Pointer
Stack adalah bagian dari RAM yang memiliki metode penyimpanan dan pengambilan data secara khusus. Data yang disimpan dan dibaca tidak dapat dilakukan dengan metode acak. Karena data yang masuk kedalam stack pada urutan yang terakhir adalah data yang pertama kali dibaca kembali. Stack pointer berisi offset dimana posisi data stack yang terakhir masuk (atau yang pertama kali dapat diambil).
RAM (Random Acces Memory)
RAM merupakan memori yang dapat dibaca dan ditulis. RAM biasanya digunakan untuk menyimpan data atau sering disebut dengan memori data saat program berkerja. Data yang ada pada RAM akan hilang bila catu daya dari RAM dimatikan sehingga RAM hanya dapat digunakan untuk menyimpan data sementara.
tidaknya muatan yang ada pada kapasitor dijadikan acuan oleh RAM dinamik sebagai system bilangan biner 1 atau 0. oleh karena kapasitor memiliki kecenderungan alami untuk mengosongkan muatan, RAM dimanik memerlukan pengisian muatansecara periodic untuk memelihara penyimpanan data. Pada RAM static, nilai biner disimpan menggunakan konfigurasigate logika flip-flop. RAM static akan menyimpan data selama aliran daya diberikan padanya.
ROM (Read Only Memory)
ROM merupakan memori yang hanya dapat dibaca. Data yang disimpan oleh ROM tidak akan hilang meskipun tegangan supply dimatikan. Dari sifatnya itu maka ROM sering dipakai untuk menyimpan program. Ada beberapa jenis ROM diantaranya ROM, PROM, EPROM, dan EEPROM. ROM merupakan memori yang sudah di program oleh pabrik. PROM dapat deprogram oleh pemakai tapi hanya dapat ditulis sekali saja.
I/O (Input/Output) Port
Merupakan sarana yang digunakan mikrokontroller untuk mengakses peralatan-peralatan lain diluar dirinya, berupa pin-pin yang dapat berfungsi untuk mengeluarkan data digital ataupun menginput data.
• Port 0
Port 0 merupakan Port keluaran/masukan (I/O) bertipe open drain bidirectional. Sebagai Port keluaran, masing-masing kaki dapat menyerap arus delapan masukan TTL (sekitar 3,8 mA). Pada saat “I” dituliskan ke kaki-kaki Port 0 ini, maka kaki-kaki Port 0 dapat digunakan sebagai masukan-masukan berinpedansi tinggi. Port 0 juga dapat dikonfigurasikan sebagai bus alamat/data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal.
Jika digunakan dalam metode ini Port 0 memiliki pull-up internal (tapi rendah). Port 0 juga menerima kode-kode yang dikirimkan kepadanya selama proses pengisian program mengeluarkan kode-kode selama proses verifikasi program yang telah disimpan dalam flash. Dalam hal ini dibutuhkan pull-up eksternal selama verifikasi program.
• Port 1
pull-high oleh internal pull-up yang dapat digunakan sebagai pin input. Sebagai input, Port 1 pin yang diberi pull-low secara eksternal akan memberikan arus (IIL) dikarenakan adanya internal pull-up. Port 1 juga menerima low-order address byte selama Flash Programming dan verifikasi program.
• Port 2
Port 2 merupakan bi-directional I/O port 8-bit dengan pull-up internal.
Setiap buffer output port 2 dapat menahan/memberikan arus kepada 4 buah TTL input. Saat logika “1” diberikan kepin port 2 ini, maka pin tersebut akan diberi pull-high oleh internal pull-up yang dapat digunakan sebagai pin input. Sebagai input, Port 2 pin yang diberi pull-low secara eksternal akan memberikan arus (IIL) dikarenakan adanya internal pull-up.
Port 2 juga menerima high-order address byte selama terjadi fetch program memori eksternal dan selama mengakses data memori eksternal menggunakan pengalamatan 16 bit (MOVX @DPTR). Pada aplikasai ini Port 2 akan memberikan pull-up internal saat menghasilkan logika “1”. Selama terjadi pengaksesan data memori eksternal yang menggunakan pengalamatan 8 bit (MOVX @R1), Port 2 mengeluarkan isi dari Special Fungtion Register (SFR) P2. Port 2 juga menerima high-order address byte dan beberapa sinyal contoh selama Flash Programming dan verifikasi program.
• Port 3
input, Port 3 pin yang diberi pull-low secara eksternal akan memberikan arus (IIL) dikarenakan adanya internal pull-up. Port 3 juga menyediakan beberapa fungsi khusus dari kaki pin AT89S51.
• Interrupt Circuits
Adalah rangkaian yang memiliki fungsi untuk mengendalikan sinyal-sinyal intrupsi baik internal maupun eksternal. Adanya sinyal-sinyal intrupsi akan menghentikan eksekusi normal program mikrokontroller untuk selanjutnya menjalankan sub-program untuk melayani intrupsi tersebut.
II.1.5 Konfigurasi Pin IC AT89S51
Gambar 2.2 Konfigurasi Pin IC AT89S51
II.1.6 Konstruksi AT89S5
Gambar 2.3 Konstruksi At89S51
( Sumber : Hendra
Mikrokontroller AT89S51 memiliki 40 kaki, 32 kaki digunakan untuk keperluan port parallel. Setiap port terdiri dari 8 pin, sehingga terdapat 4 port, yaitu Port 0, Port 1, Port 2, Port 3, masing-masing pin Mikrokontroller AT89S51 mempunyai kegunaan sebagai berikut :
• VCC
Dihubungkan ke ground.
• Port 1
Merupakan salah satu port yang berfungsi sebagai general purpose I/O dengan lebar 8 bit.
• RST
Pin ini berfungsi sebagai input untuk melakukan reset terhadap mikrokontroller, dan jika nilai RST bernilai high selama minimal 2 siklus mesin, maka nilai internal register akan kembali seperti awal mulai bekerja.
• Port 3
Merupakan port yang terdiri dari 8 bit masukan dan keluaran. Disamping berfungsi sebagai masukan dan keluaran, port 3 juga memiliki fungsi khusus yang lain.
Tabel 2.1. Fungsi Pin pada Port 3
Nama pin Fungsi
P3.0 (pin 10) RXD (Port input serial)
P3.1 (pin 11) TXD (Port output serial)
P3.2 (pin 12) INT0 (interrupt 0 eksternal)
P3.3 (pin 13) INT1 (interrupt 1 eksternal)
P3.5 (pin 15) T1 (input eksternal timer 1)
P3.6 (pin 16) WR (menulis untuk eksternal data memori)
P3.7 (pin 17) RD (untuk membaca eksternal data memori)
• XTAL 1 dan XTAL 2
Merupakan pin masukan untuk Kristal Osilator.
• Port 2
Merupakan salah satu port yang berfungsi sebagai general purpose I/O dengan lebar 8 bit. Fungsi lainya adalah sebagai high byte address bus (pada penggunaan memori eksternal).
• PSEN
PSEN (Program Store Enable) adalah pulsa pengaktif untuk membaca program memori luar.
• ALE / PROG
Pulsa output ALE akan low byte selama mikrokontroller melakukan pengaksesan ke memori eksternal. Pin ini juga berfungsi sebagai input pulsa program selama Flash
Programing. Pada operasi normal, ALE mengeluarkan nilai konstan 116 frekwensi
osilator. Satu pulsa ALE dilewati akses kememori data eksternal. Jika mengoperasikan ALE, dapat disable oleh seting bit 0 dari SFR dengan lokasi BEH.
External Access Enable atau EA harus dihubungkan ke Vcc untuk mengeksekusi program internal.
• Port 0
Merupakan salah satu port yang berfungsi sebagai general purpose I/O (dapat digunakan sebagai masukan dan juga keluaran) dengan lebar 8 bit. Fungsi lainya adalah sebagai multiplexed address/data bus (pada saat mengakses memori eksternal).
II.2. PERANGKAT LUNAK
II.2.1 Bahasa Assembly MCS-51
Bahasa yang digunakan untuk memogram IC mikrokontroller AT89S51 adalah bahasa assembly untuk MCS-51. angka 51 adalah jumlah instruksi pada bahasa ini hanya ada 51 instruksi. Dari 51 instruksi yang sering digunakan untuk mikrokokntroller hanya ada 10 intruksi. Instruksi-intruksi tersebut antara lain :
1. Instruksi MOV
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.
Contoh pengisian nilai secara langsung
MOV R0,#20h
Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0).
Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.
MOV 20h,#80h
...
...
MOV R0,20h
Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0).
Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.
2. Instruksi DJNZ
Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk mengurangi nilai register tertentu dengan 1 dan lompat jika hasil pengurangannya belum nol. Contoh ,
MOV R0,#80h
Loop: ...
...
DJNZ R0,Loop
...
3. Instruksi ACALL
Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :
...
ACALL TUNDA
...
TUNDA:
...
4. Instruksi RET
Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh,
ACALL TUNDA
...
TUNDA:
...
RET
5. Instruksi JMP (Jump)
Loop:
...
...
JMP Loop
6. Instruksi JB (Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh,
Loop:
JB P1.0,Loop
...
7. Instruksi JNB (Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika Low (0). Contoh,
Loop:
JNB P1.0,Loop
...
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh,
Loop:
...
CJNE R0,#20h,Loop
...
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya.
9. Instruksi DEC (Decreament)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh,
MOV R0,#20h R0 = 20h
...
DEC R0 R0 = R0 – 1
...
Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh,
MOV R0,#20h R0 = 20h
...
INC R0 R0 = R0 + 1
...
dll
II.2.2 Software 8051 Editor
Instruksi – instruksi yang merupakan Bahasa Assembly tersebut dituliskan pada sebuah editor, yaitu 8051 editor, assembler, simulator IDE, MCS 51. tampilannya seperti gambar di bawah ini :
Setelah program selesai ditulis, kemudian di-save dan kemudian di-Assemble
(di-compile). Pada saat di-assemble akan tampil pesan peringatan dan kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus diperbaiki terlebih dahulu sampai tidak ada pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.
II.2.3 Software Downloader
Gambar 2.5 ISP-flash Programmer 3.0a
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk mengisikan hasil kompilasi tersebut ke mikrokontroller.
II.3. LED INFRA MERAH
Sinar infra merah adalah termasuk cahaya monokromatis yang tidak tampak oleh mata manusia. Spektrum frekuensi cahaya secara umum dibagi menjadi tiga bagian yaitu (Wilson & Hawkes, 1989:2) :
1. Infra merah, mempunyai panjang gelombang 0,85 mm – 0,78 µm. 2. Cahaya tampak, mempunyai panjang gelombang 0,7 µm – 0,4 µm. 3. Ultra Violet, mempunyai panjang gelombang 0,4 µm – 0,03 µm.
Gelombang elektromagnetik merupakan penyusundari cahaya yang berada dalam spektrum elektromagnetik yang mempunyai jangkauan yang sangat lebar. Pada jarak yang sama, seluruh spektrum elektromagnetik tersebut mempunyai kecepatan yang sama tetapi frekuensinya berbeda sesuai dengan panjang gelombangnya (Sears and Zemansky, 1994:704).
Dalam hal ini berlaku :
e = λ.f ... (2.1)
keterangan :
λ = panjang gelombang (m)
f = frekuensi (Hz)
Suatu spektrum frekuensi cahaya disebut infra merah jika panjang gelombangnya 0,78 µm – 0,85 µm. Sedangkan spektrum frekuensi infra merah yang sering dignakan
adalah 3,84.1014 Hz – 3,75.1014 Hz (Skoog and Leary, 1992:253).
(a) (b)
Gambar 2.6 (a) Simbol LED (Light Emitting Dioda) Infra Merah
(b) Wujud LED (Light Emitting Dioda) Infra Merah
LED infro merah merupakan jenis semi konduktor p-n junction yang berkerja pada kondisi forward bias, yang dapat memancarkan radiasi dalam daerah ultra violet, sinar tampak, dan infra merah. Radiasi cahaya yang dihasilkan LED infra merah ini sebanding dengan arus forward bias yang diberikan pada LED tersebut.
LED ini akan menyerap arus yang lebih besar dari pada LED biasa, semakin besar arus yang mengalir maka semakin besar daya pancarnya. Cahaya infra merah tidak mudah terkontaminasi atau teresonansi dengan cahaya lain sehingga dapat digunakan baik siang ataupun malam.
Karakteristik LED infra merah adalah pada saat tegangan forward bias yang diberikan masih dibawah tegangan ambang (0,7 V), maka arus belum dapat mengalir, tetapi setelah tegangan forward yang diberikan pada LED melebihi tegngan ambang (0,7 V) maka pertambahan arus akan meningkat dengan cepat dan tegangan mendekati keadaan konstan.
Harga arus yang melewaati LED sebanding dengan intensitas cahaya yang dipancarkan, jika arus semakin besar maka intensitas cahaya akan naik, ini berarti arus yang dihasilkan oleh LED infra merah dipengaruhi oleh tegangan dan tahanan. Semakin besar tegangan maka arus yang dihasilkan akan semakin besar dan sebaliknya semakin besar tahanan yang diberikan maka arus yang dihasilkan akan semakin kecil.
Kolektor C
Basis
B
Emitor E II.4. PHOTOTRANSISTOR
Phototransistor adalah suatu alat semi konduktor cahaya yang lebih peka dari foto dioda P-N. Phototransistor yang sering dijumpai adalah transistor bipolar jenis NPN dengan sambungan kolektor-basis PN yang peka cahaya. Apa bila sambungan tersebut dikenai cahaya melalui lensa yang membuka pada bungkus transistor, maka timbul aliran arus control yang menghidupkan transistror ON. Aksi ini sama dengan yang terjadi pada arus basis-emitor dari transistor PNP biasa.
Phototransistor dapat sebagai alat dengan dua kaki atau tiga kaki. Kaki basis dapat dibawa keluar sehingga alat dapat digunakan sebagai transistor bipolar konvesional, dengan atau tanpa tambahan keistimewaan kepekaan cahaya. Apabila cahaya mengenai sambungan PN kolektor-basis, arus basisyang dihasilkan berbanding langsung dengan intensitas cahaya, aksi tersebut menghasilkan arus kolektor yang dikuatkan. Kecuali untuk arus basis dibangkitkan, phototransistor bertindak seperti transistor bipolar konvensional.
2.5. MOTOR STEPPER
Motor langkah (stepper) banyak digunakan dalam berbagai aplikasi, dipergunakan apabila dikehendaki jumlah putaran yang tepat atau diperlukan sebagaian dari putaran motor. Suatu contoh dapat dijumpai pada disk drive, untuk proses pembacaan dan/atau penulisan data ke/dari cakram (disk), head baca-tulis ditempatkan pada tempat yang tepat diatas jalur atau track pada cakram, untuk head tersebut dihubungkan dengan sebuah motor langkah.
Gambar 2.9 Wujud Motor Langkah (stepper)
U
dilakukan oleh sebuah robot yang memerlukan ketepatan posisi dalam gerakan lengannya dan lain-lain.
Pada gambar 2.10 dibawah ditunjukan dasar susunan sebuah motor langkah (stepper).
Gambar 2.10 Diagram Motor Langkah (stepper)
B A
C
D
Motor langkah yang akan digunakan memiliki 4 fasa (pole atau kutub), pengiriman pulsa dari mikrokontroller ke rangkaian motor langkah dilakukan secara bergantian, masing-masing 4 data (sesuai dengan jumlah fasanya), sebagian ditunjukan pada gambar 2.11, dibawah ini :
Gambar 2.11 Pemberian data /pulsa pada motor stepper
2.6. BUZZER
Buzzer merupakan alat yang mengeluarkan bunyi alarm. Alat ini sering digunakan sebagai alat peraga berupa suara atau bunyi sebagai penanda. Buzzer ini menggunakan transistor jenis PNP dengan catu daya 5 V yang akan “on” jika diberi tegangan forward dan akan “off” jika diberi tegangan reverse.
BAB III
REKAYASA
3.1 Perekayasaan Diagram Blok Sistem
Perekayasaan sistem keseluruhan diperlihatkan pada gambar blok diagram
berikut:
Gambar 3.1 : Diagram Blok Sistem Pengendali Infus Dengan Menggunakan
Sensor Phototransistor Berbasis Mikrokontroller AT89S51
Display
Mikro
kontroller
Stepper Motor Driver
Stepper Motor Sensor Detect
Cairan Infus
Tombol
Pada gambar diatas terdapat beberapa blok yang masing-masing berfungsi
membentuk suatu kordinasi hingga mencapai tujuan yang diinginkan, yaitu Input,
Proses, dan Output.
Input merupakan masukan ke pemeroses yang berupa besaran-besaran
baku sedangkan proses berfungsi sebagai bagian yang melakukan pengolahan
masukan menjadi suatu keluaran yang diinginkan, masukan pada rancangan ini
berupa sensor dan masukan set point dalam hal ini adalah sensor yang mendeteksi
level air atau cairan dalam botol infus. Tombol juga berfungsi sebagai input yaitu
yang memberikan masukan set point pada pemeroses. Sedangkan sebagai out put
sistem adalah pengendali posisi dengan motor penggerak dan penampil (display).
Fungsi pengendali posisi adalah pengendalian posisi jepitan selang infus sehingga
diperoleh tetesan yang diinginkan. Output display berfungsi menampilkan status
3.2. Perekayasaan Masing-masing Rangkaian Pendukung Sistem
Rangkaian Sistem Pengendali Infus dapat dilihat seperti gambar berikut :
Terdapat beberapa bagian sistem, yaitu bagian-bagian rangkaian yang
terhubung membentuk suatu sistem. Adapun bagian-bagian rangkaian tersebut adalah
:
1. Sensor
2. Tombol
3. Driver Stepper Motor
4. Display 7 Segment
5. Driver Buzzer
6. Kontroler.
2. Sensor
Yang dimaksud sebagai sensor dalam rangkaian ini adalah, suatu piranti yang
berfungsi mengubah besaran fisik menjadi suatu besaran listrik, dan dalam hal ini
adalah mengubahan level air menjadi besaran listrik.
Sensor yang digunakan pada rancangan ini adalah sensor photodioda yang
terdiri dari sebuah pemancar infra merah dan sebuah penerima infra merah. Pemancar
infra merah berupa sebuah LED infra merah yang akan memancarkan cahaya infra
merah ke penerima. Sedangkan sebagai penerima infra merah digunakan sebuah photo
dioda yang dirancang sedemikian rupa untuk mengubah besaran cahaya infra merah
Gambar 3.3 Rangkaian Sensor
Bila tidak terdapat halangan diantara pemancar dan penerima maka cahaya
infra merah langsung mengenai photodioda, hal ini menyebabkan photodioda
mendapat bias maju sehinga mencapai titik jenuh dan mengalirkan arus ke basis dari
transistor BC547, sehingga logika pada kolektor adalah logika 0 (nol), dan sebaliknya
bila terdapat halangan pada photo dioda menyebabkan terputusnya bias sehingga
photo dioda mengalami fase cut off dan menyebabkan putusnya arus ke basis
transistor BC547 sehingga logika keluaran kolektor berlogika 1 (satu).
3. Tombol
Fungsi tombol adalah sebagai pemberi masukan kepada mikrokontroller
berupa masukan set point yaitu jumlah tetes infus persatuan waktu yang diinginkan.
Sehingga tiap penekanan tombol akan terbaca oleh prosessor atau mikrokontroller.
Gambar 3.4 Rangkaian Tombol
Ketika tombol ditekan maka data berlogika rendah akan masuk ke masing-masing port
Pada rangkaian ini menggunakan tombol tipe push-on yang salah satu pin
nya dihubungkan ke ground (pin akan berlogika 0) , sehingga jika salah satu tombol
ini di tekan maka akan terhubung antara ground dengan salah satu pin dari
mikrokontroller sedangkan jika tidak mengalami penekanan maka port
mikrokontroller akan tetap berlogika 1.
4. Driver Motor
Yang dimaksud driver motor adalah rangkaian penguat arus yang berfungsi
menguatkan arus sehingga dapat mengendalikan atau menjalankan sebuah stepper
Gambar 3.4 Rangkaian Driver Stepper Motor
Driver stepper motor dirancang dengan menggunakan sebuah transistor dan
resistor. Jenis transistor yang digunakan adalah jenis NPN dengan tipe BD139.
Transistor ini akan berkerja sebagai switch atau saklar. Dengan memberikan arus bias
jenuh pada basis transistor, akan menyebabkan transistor jenuh atau ON sehingga
mengalir arus kolektor ke emitor.
Pengaturan bias dilakukan oleh mikrokontroller dengan mengeluarkan logika 0
(nol) atau 1 (satu). Yaitu bila diberikan logika 0 pada basis transistor menyebabkan
arus basis sama dengan 0, dengan demikian transistor berada dalam keadaan cut off.
Dan sebaliknya bila logika 1 akan menyebabkan transistor mendapat bias maju
sehingga transistor jenuh atau ON. Resistor pada basis transistor berfungsi menambah
arus bias sehingga cukup untuk membuat transistor jenuh pada keadaan logika 1.
Terdapat 4 buah transistor penguat untuk menggerakkan sebuah stepper motor
(single volt 4 fasa) karena terdapat 4 buah kumparan dalam sebuah motor stepper jenis
tersebut, sedangkan cara menggerakkan motor adalah dengan memberikan pulsa
bergantian ditiap kumparan secara beraturan. Pengaturan urutan pulsa motor melalui
5. Display 7-Segment
Pada perancangan ini digunakan satu buah driver 7447 dan 1 buah ULN2803.
IC7447 ini berfungsi untuk mengaktifkan segment-segment pada rangkaian display
sesuai dengan data yang dikirimkan. Sedangkan IC ULN2803 berfungsi untuk
menaikkan arus agar 7-segment dapat hidup lebih terang (menggunakan 7-segment
2,3 Inch). Pada rangkaian driver ini digunakan IC 7447 yang merupakan tipe TTL
yang berfungsi sebagai decoder atau driver bilangan BCD ke bilangan seven-segment.
Pada perancangan ini digunakan display seven-segment common anoda. Input dari 7447 diambil dari output mikrokontroler pada port p0.0 hingga p0.3. IC 7447
mempunyai 4 buah input sebagai data bilangan BCD atau hexa. Input pada 7447 yaitu
A, B, C, dan D yang masing-masing berada pada pin 7, 1, 2, dan 6. Sedangkan
outputnya ada 7 yaitu a hingga g yang berada pada pin 9 hingga pin 15.
6. Driver Buzzer
Pada perancangan rangkaian driver buzzer ini menggunakan buzzer. Buzzer
ini akan berbunyi jika ada cairan infus sudah kosong. Untuk rangkaian ini digunakan
transistor BC 557 sebagai driver (saklar) . Dari gambar rangkaian dapat dilihat bahwa
jika input base BC557 diberi logika 0, maka BC557 akan ON atau berfungsi sebagai
saklar, sehingga arus tersebut akan mengalir ke buzzer dan akan mengaktifkan buzzer.
Gambar 3.6 Driver Buzzer
7. Kontroler
Kontroler adalah piranti berupa IC yang berfungsi melakukan pengontrolan
terhadap seluruh proses kerja sistem. Kontroler yang digunakan adalah jenis
AT89S51. kerja mikrokontroller tersebut tersusun atau terprogram sedemikian rupa,
berupa suatu algoritma dan perintah-perintah sehingga membentuk suatu kerja sesuai
dengan yang diinginkan. Penysunan program dilakukan dengan menggunakan bahasa
assembly yang kemudian dikompele menjadi bahasa mesin dan disuntikkan kedalam
IC dengan peralatan khusus yaitu downloader.
Kerja mikrokontroller pada perancangan adalah membaca masukan set point
kemudian melakukan pengaturan terhadap kecepatan tetesan infus dengan membuka
mikrokontroller adalah melalui sensor yaitu sensor batas atau level dan sensor tetesan
infus.
3.3. Perekayasaan Sistem Keseluruhan
Perinsip kerja sistem keseluruhan adalah pada saat sistem diaktifkan,
mikrokontroller akan direset keposisi awal atau start kemudian dilanjutkan dengan
membaca masukan set point. Bila masukan telah diberikan melalui tombol, kontroler
akan mulai melakukan pengaturan, yaitu dengan membaca sensor-sensor dan
mengendalikan kancing penjepit pada selang infus dengan menggunakan motor
stepper. Pengaturan akan terus dilakukan sampai tercapai keadaa konstan, yaitu
kecepatan tetesan infus sama dengan set point yang diminta. Proses pembacaan
tombol akan ditampilkan pada display 7-segment. Bila kondisi level cairan infus telah
minimal maka alarm akan berbunyi.
3.4. Perekayasaan Flow Chart / Algoritma Kerja Sistem
Sistem digerakkan oleh algorima atau susunan perintah-perintah yang
membentuk program yang berkerja dengan interaksi antara komponen-komponen
perintah-perintah tersebut dapat digambarkan berupa sebuah diagram alir yang
menggambarkan kerja sisem secara keseluruhan.
Diagram alir dapat dilihat pada gambar dibawah.
Gambar 3.6 Flow Chart
Kerja diagram alir di atas adalah sebgai berikut :
Mulai dari start program dibuat untuk memeriksa tombol apakah ada
tetesan infus dengan cara melakukan penekanan ataupun pelepasan penjepitan saluran
infus sesuai dengan setpoint jumlah tetesan infus. Jika tidak ada penekanan pada
tombol maka program akan memeriksa isi dari cairan infus apakah dalam kondisi
kosong, jika kosong maka program akan menghidupkan alarm, namun jika tidak maka
BAB IV
PENGUKURAN DAN PENGUJIAN
IV.1. Pengukuran Rangkaian
Setelah perencanaan dan pembuatan alat selesai, maka dilakukan pengukuran. Pengukuran ini merupakan bagian terpenting dalam perakitan suatu alat. Pengujian dan pengukuran ini dilakukan untuk mengetahui apakah peralatan dapat beroprasi dengan normal dan untuk menunjukan bahwa alat telah berkerja sesuai dengan yang diharapkan.
Pengukuran dilakukan pada setiap blok rangkaian untuk mempermudah dan menganalisa hasil pengujian dan pengukuran.
IV.1.I. Pengukuran Rangkaian Mikrokontroller
Pengukuran pada rangkaian Mikrokontroller dilakukan dengan mengukur tegangan setiap pin mikrokontroller, dari pengukuran yang dilakukan diperoleh hasil sebagai berikut :
Mikrokontroller Volt
Pin 1 0,28
Pin 2 0,28
Pin 3 0,29
Pin 4 0,28
Pin 5 4,79
Pin 6 4,79
Pin 7 4,79
Pin 8 0
Pin 9 0
Pin 10 0
Pin 11 4,79
Pin 12 4,79
Pin 13 4,79
Pin 14 4,79
Pin 15 0
Pin 17 0
Pin 18 1,88
Pin 19 2,05
Pin 20 0
Pin 21 4,8
Pin 22 4,8
Pin 23 4,8
Pin 24 4,8
Pin 25 4,8
Pin 26 4,8
Pin 27 4,8
Pin 28 4,8
Pin 29 4,9
Pin 30 1,05
Pin 31 4,9
Pin 32 4,8
Pin 34 4,8
Pin 35 4,8
Pin 36 0,25
Pin 37 0,23
Pin 38 0,3
Pin 39 0,24
Pin 40 4,89
IV.1.2. Pengukuran Rangkaian Driver 7-Segment
Untuk menampilkan data yang akan ditampilkan, maka dibutuhkan komponen yang dapat menampilkan angka-angka dari angka 0 sampai dengan angka 9, sehingga komponen yang dipilih adalah 7 segment common anoda. Input dari 7-segment tersebut berupa bilangan biner 7-segment (dimulai dari a,b,c,d,e,f dan g).
Agar mikrokontroller dapat dengan mudah memberikan data ke 7-segment
berupa tampilan angka-angka 0 hingga angka 9, maka dibutuhkan sebuah decoder
untuk melakukannya. Berhubung 7-segment yang digunakan berupa Common Anoda,
maka pilihan yang tepat adalah menggunakan IC decoder 7447. IC ini dapat merubah
biner. Pada aplikasi ini, dibutuhkan sebanyak 1 buah IC 7447 untuk 1 buah 7-segment.
Cara yang digunakan adalah dengan memasukkan setiap data yang akan ditampilkan.
Selanjutnya output dari IC 7447 akan menjadi masukan ke IC ULN2803 agar arus
yang masuk menjadi lebih besar, hingga membuat tampilan 7-segment tampil menjadi
lebih terang.
Setiap masukan ke input dari IC 7447 maka akan di konversi menjadi data 7-segment pada outputnya, output tersebut akan dikirimkan ke 7-segment.
Gambar. 4.3. Rangkaian Pengukuran Driver
Tabel 4.3. Titik Pengukuran Rangkaian Display
DESIMAL
A B C D a b C d e f G
IV.1.3. Pengukuran Rangkaian Alarm
0 0 0 0 0 0 0 0 0 0 1 0
0 0 0 1 1 0 0 1 1 1 1 1
0 0 1 0 0 0 1 0 1 1 0 2
0 0 1 1 0 0 0 0 1 1 0 3
0 1 0 0 1 0 0 1 1 0 0 4
0 1 0 1 0 1 0 0 1 0 0 5
0 1 1 0 1 1 1 0 0 0 0 6
0 1 1 1 0 0 0 1 1 1 1 7
1 0 0 0 0 0 0 0 0 0 0 8
Rangkaian alarm dihubungkan dengan port P2.7 dari mikrokontroller, dimana alarm yang digunakan adalah sebuah buzzer yang dihubungkan dengan sebuah driver transistor tipe PNP (BC557). Transistor BC557 akan aktif jika diberi logika 0 oleh mikrokontroller.
Gambar 4.5. Rangkaian Alarm
Dari hasil pengujian didapat hasil sebagai berikut:
Tabel 4.4 Data Hasil Pengukuran Rangkaian Alarm
IV.1.4. Pengukuran Rangkaian Driver Stepper Motor KONDISI Port P2.7
BUNYI 0.3 mV
Setiap kumparan pada motor stepper akan aktif apabila menerima tegangan atau mendapat logika 1 dan 0 pada satu kumparan. maka akan dibangkitkan kutub magnet yang berlawanan dengan kutub magnet tetap pada rotornya. Sehingga posisi magnet rotor akan ditarik mendekati lilitan yang menghasilkan kutub magnet tadi. Langkah berikutnya yaitu lilitan bersebelahan diberi tegangan sedangkan tegangan sebelumnya dilepas maka kutub tetap pada rotor akan berpindah posisi menjadi kutub magnet yang dihasilkan sekarang.
Gambar 4.4 Titik Pengukuran pada Driver Stepper Motor
Tabel 4.3. Data Pengukuran Rangkaian Driver Motor Stepper
Driver Stepper Motor
TP5 TP6 TP7 TP8 TP9 TP10 TP11 TP12
1 0 0 0 0 1 1 1
0 1 0 0 1 0 1 1
0 0 1 0 1 1 0 1
0 0 0 1 1 1 1 0
IV.2. Pengujian Keseluruhan Sistem
Langkah-lanagkah pengujian keseluruhan adalah sebagai berikut :
1. Siapkan semua komponen sistem yang akan diuji
2. Periksa semua komponen apakah telah terhubung dengan baik 3. Aktifkan Catu Daya
4. Amati pesan pada tampilan 7segment, apakah berfungsi dengan baik 5. Berikan masukan set point ke sistem melalui keypad
6. Jalankan sistem dengan tombol ENTER 7. Perhatikan apakah sistem berkerja dengan baik
8. Lakukan perbaikan atau penyempurnaan bila terdapat kekurangan-kekurangan
Keterangan :
Dari hasil pengamatan tersebut diperlihatkan bahwa motor penjepit selang infus senantiasa bergerak melakukan penyesuaian hingga diperoleh hasil sama dengan set point. Adapun kesalahan yang ditimbulkan adalah kesalahan mekanisme pergerakan penjepit selang.
IV.3. Pengujian Perangkat Lunak Sistem
Untuk memudahkan pengenalan masing-masing port dalam pemograman, dibutuhkan sebuah inisialisasi masing-masing port tersebut, adapun port-port yang digunakan haruslah diberi alamat dari masing-masing port tersebut. Untuk port p0 memiliki alamat 080h sedangkan port p3 alamatnya 0b0h.
p0 equ 080h
Pada proses pembuatan program selalu diawali dengan penempatan awal dari program, hal ini dilakukan dengan pemberian alamat awal 0000h seperti pada perintah dibawah ini :
Kemudian pada rutin setting, pertama-tama program akan melakukan pengecekan terhadap tombol, jika port p3.0 ditekan maka program akan lompat ke rutin set_tekan, namun jika tidak maka program akan memeriksa port p3.1, jika berlogika 0 maka program akan lompat ke rutin set_lepas, demikian seterusnya hingga port p3.2, jika tidak ada yang berlogika 0 maka program akan memasukkan data 00h ke port p1 dan dilanjutkan dengan lompat ke rutin setting.
Kemudian pada rutin set_tekan, program akan melakukan pengecekan terhadap port
p3.0, jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa
port p3.0 namun jika tidak mengalami penekanan maka program akan lompat ke rutin
tekan dan dilanjutkan dengan lompat ke rutin setting.
set_tekan: jnb p3.0,$
call tekan
jmp setting
Pada rutin set_lepas, program akan melakukan pengecekan terhadap port p3.1,
jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.1 namun jika tidak mengalami penekanan maka program akan lompat ke rutin
lepas dan dilanjutkan dengan lompat ke rutin setting.
set_lepas: jnb p3.1,$
call lepas
jmp setting
Pada rutin check_1, program akan melakukan pengecekan terhadap port p3.2,
p3.2 namun jika tidak mengalami penekanan maka program akan lompat ke rutin
delay dan dilanjutkan dengan lompat ke rutin beep.
check_1: jnb p3.2,$
call delay
call beep
Pada rutin check_1again, program akan melakukan pengecekan terhadap port
p3.0, jika port p3.0 berlogika 0 maka program akan lompat ke rutin tekan1, jika
berlogika 1 maka program akan memeriksa port p3.1 sedangkan jika port p3.1
berlogika 0 maka program akan lompat ke rutin lepas1, jika berlogika 1 maka program
akan memeriksa port p3.2, apakah berlogika 0 atau 1, jika berlogika 0 maka program
akan lompat ke rutin setting_zero, sedangkan jika berlogika 1 aka data 00h
dimasukkan ke port p1 dan dilanjutkan dengan lompat ke rutin check_1again.
check_1again:jnb p3.0,tekan1 jnb p3.1,lepas1 jnb p3.2,setting_zero
mov p1,#00h
jmp check_1again
Pada subrutin tekan program memasukkan data 11111000b (f8h) ke port 1 (P1). Lalu diikuti dengan lompat ke rutin dly_lo. Hal yang sama dilakukan untuk data 11110100b (f4h), 11110010b (f2h) dan 11110001b (f1h) dimasukkan ke port p1 lalu lompat ke rutin dly_lo kemudian di akhir program akan lompat ke rutin yang memanggil.
tekan: mov p1,#11111000b call dly_lo
mov p1,#11110001b call dly_lo
mov p1,#00h
ret
Pada subrutin lepas program memasukkan data 11110001b (f1h) ke port 1 (P1). Lalu diikuti dengan lompat ke rutin dly_lo. Hal yang sama dilakukan untuk data 11110010b (f2h), 11110100b (f4h) dan 11111000b (f8h) dimasukkan ke port p1 lalu lompat ke rutin dly_lo kemudian di akhir program akan lompat ke rutin yang memanggil.
lepas: mov p1,#11110001b
Pada rutin tekan1, program akan melakukan pengecekan terhadap port p3.0,
jika port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.0 namun jika tidak mengalami penekanan maka program akan memasukkan data
step1 ke akumulator lalu dibandingkan dengan data 00h, jika tidak sama maka
program akan lompat ke rutin get_tekan namun jika sama maka program akan lompat
ke rutin check_1again.
tekan1: jnb p3.0,$
mov a,step1
cjne a,#00h,get_tekan
jmp check_1again
Pada rutin get_tekan data dari step1 dimasukkan ke akumulator lalu isi dari
step1 dikurangkan dengan 1 lalu dimasukkan ke dalam step1 dan dibandingkan
sama maka program akan memasukkan data 00h ke step1 dan dilanjutkan dengan
lompat ke check_1again.
get_tekan: mov a,step1
dec a
mov step1,a
cjne a,#0ffh,tekanj
mov step1,#00h
jmp check_1again
Pada rutin tekanj program akan lompat ke rutin tekan, lalu lompat ke rutin
check_1again.
tekanj: call tekan
jmp check_1again
Pada rutin lepas1, program akan melakukan pengecekan terhadap port p3.1,
jika port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.1 namun jika tidak mengalami penekanan maka program akan memasukkan data
step1 ke akumulator lalu dibandingkan dengan data 0ffh, jika tidak sama maka
program akan lompat ke rutin get_lepas namun jika sama maka program akan lompat
ke rutin check_1again.
lepas1: jnb p3.1,$
mov a,step1
cjne a,#0ffh,get_lepas
jmp check_1again
Pada rutin get_lepas data dari step1 dimasukkan ke akumulator lalu isi dari
step1 dikurangkan dengan 1 lalu dimasukkan ke dalam step1 dan dibandingkan
dengan angka 00h, jika tidak sama maka program akan lompat ke lepasj namun jika
get_lepas: mov a,step1
Pada rutin lepasj program akan lompat ke rutin lepas, lalu lompat ke rutin
check_1again.
lepasj: call lepas
jmp check_1again
Pada rutin setting_zero data dari step1 dimasukkan ke akumulator lalu isi dari
akumulator dimasukkan ke register one lalu program lompat ke rutin tekan, kemudian
isi dari register one dikurangkan dengan 1 lalu dibandingkan dengan angka 00h, jika
tidak sama maka program akan lompat ke next_tekan namun jika sama maka program
akan memasukkan data 00h ke port p1 dan dilanjutkan dengan lompat ke
check_tombol.
setting_zero:mov a,step1
mov one,a
next_tekan: call tekan
mov a,one
Pada rutin check_tombol, program akan melakukan pengecekan terhadap port
p3.0, jika port p3.0 berlogika 0 maka program akan lompat ke rutin satu, jika
berlogika 1 maka program akan memeriksa port p3.1 sedangkan jika port p3.1
berlogika 0 maka program akan lompat ke rutin dua, jika berlogika 1 maka program
akan lompat ke rutin tiga, demikan seterusnya hingga port p2.0 dicek apakah
berlogika 0 atau berlogika 1namun jika berlogika 1 maka program akan lompat ke
rutin check_tombol.
Pada rutin satu, program akan melakukan pengecekan terhadap port p3.0, jika
port p3.0 masih berlogika 0 maka program akan terus menerus memeriksa port p3.0
namun jika tidak mengalami penekanan maka program akan memasukkan data 01h ke
status lalu memasukkan data 01h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
satu: jnb p3.0,$
mov status,#01h
mov p0,#01h
jmp check_tombol
Pada rutin dua, program akan melakukan pengecekan terhadap port p3.1, jika
port p3.1 masih berlogika 0 maka program akan terus menerus memeriksa port p3.1
namun jika tidak mengalami penekanan maka program akan memasukkan data 02h ke
status lalu memasukkan data 02h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
dua: jnb p3.1,$
Pada rutin tiga, program akan melakukan pengecekan terhadap port p3.2, jika
port p3.2 masih berlogika 0 maka program akan terus menerus memeriksa port p3.2
namun jika tidak mengalami penekanan maka program akan memasukkan data 03h ke
status lalu memasukkan data 03h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
tiga: jnb p3.2,$
mov status,#03h
mov p0,#03h
jmp check_tombol
Pada rutin empat, program akan melakukan pengecekan terhadap port p3.3,
jika port p3.3 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.3 namun jika tidak mengalami penekanan maka program akan memasukkan data
04h ke status lalu memasukkan data 04h ke port p0 kemudian program akan lompat ke
rutin check_tombol.
empat: jnb p3.3,$
mov status,#04h
mov p0,#04h
jmp check_tombol
Pada rutin lima, program akan melakukan pengecekan terhadap port p3.4, jika
port p3.4 masih berlogika 0 maka program akan terus menerus memeriksa port p3.4
namun jika tidak mengalami penekanan maka program akan memasukkan data 05h ke
status lalu memasukkan data 05h ke port p0 kemudian program akan lompat ke rutin
check_tombol.
lima: jnb p3.4,$
mov status,#05h
mov p0,#05h
Pada rutin enam, program akan melakukan pengecekan terhadap port p3.5,
jika port p3.5 masih berlogika 0 maka program akan terus menerus memeriksa port
p3.5 namun jika tidak mengalami penekanan maka program akan memasukkan data
06h ke status lalu memasukkan data 06h ke port p0 kemudian program akan lompat ke
rutin check_tombol.
enam: jnb p3.5,$
mov status,#06h
mov p0,#06h
jmp check_tombol
Pada rutin infus_kosong program akan lompat ke rutin beep, kemudian
program akan memeriksa apakah port p2.0 berlogika 0 atau 1, jika berlogika 0 maka
program akan lompat ke rutin infus_kosong, namun jika berlogika 1 maka program
akan lompat ke rutin check_tombol.
infus_kosong:call beep
jnb p2.0,infus_kosong
jmp check_tombol
Pada rutin action data pada status dimasukkan ke akumulator lalu
dibandingkan dengan data 01h, jika tidak sama maka program lompat ke rutin act2,
jika sama maka program akan lompat ke rutin satutetes. Demikian halnya untuk rutin
act2 hingga act6 hal yang sama akan dilakukan namun jika tidak sama maka program
akan lompat ke rutin check_tombol.