OPTOCOUPLER BERBASIS MIKROKONTROLLER ATMega
8535 PADA PERANCANGAN SISTEM KENDALI OTOMATIS
TETESAN CAIRAN INFUS PADA PASIEN
TUGAS AKHIR
ARIE YUDHA NUGRAHA
072408022
PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
OPTOCOUPLER BERBASIS MIKROKONTROLLER ATMega 8535 PADA PERANCANGAN SISTEM KENDALI OTOMATIS TETESAN CAIRAN
INFUS PADA PASIEN
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Ahli Madya
ARIE YUDHA NUGRAHA 072408022
PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : MOTOR STEPPER BERBASIS
MIKROKONTROLLER ATMega 8535 PADA PERANCANGAN SISTEM KENDALI OTOMATIS TETESAN CAIRAN INFUS PADA PASIEN
Kategori : TUGAS AKHIR
Nama : ARIE YUDHA NUGRAHA
Nomor Induk Mahasiswa : 072408022
Program Studi : DIPLOMA III FISIKA INSTRUMENTASI
Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM ( FMIPA ) UNIVERSITAS SUMATERA UTARA
Di luluskan di
Medan, Agustus 2011
Diketahui/Disetujui oleh
Ketua Program Studi ,
D3 Fisika Instrumentasi FMIPA USU
Ketua, Pembimbing
Dr. Susilawati, M.Si Drs. Syahrul Humaidi.M.sc
PERNYATAAN
OPTOCOUPLER BERBASIS MIKROKONTROLLER ATMega 8535 PADA PERANCANGAN SISTEM KENDALI OTOMATIS TETESAN CAIRAN
INFUS PADA PASIEN
TUGAS AKHIR
Saya mengakui bahwa Tugas Akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, Agustus 2011
iii PENGHARGAAN
Alhamdulillah puji dan syukur penulis ucapkan kepada Allah Subhanahuwata’ala, atas segala karunia Nya yang telah diberikan kepada penulis seingga penulis di berikan begitu banyak kemudahan dan kelancaran dalam menyelesaikan kajian dalam Tugas Akhir ini sesuai degan waktu yang direncanakan.
Ucapan terima kasih saya sampaikan kepada Bapak Dr. Sutarman M.Sc, selaku Dekan FMIPA USU dan Ibu Dr. Susilawati S.Si, M.Si, selaku Ketua Jurusan Program Studi Fisika lalu kepada Bapak Syahrul Humaidi M.Sc sebagai dosen pembimbing dalam penyelesaian tugas akhir ini, yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian dalam tugas akhir ini. Ucapan terima kasih juga ditujukan kepada Bapak Dr. Marhaposan Situmorang selaku ketua departemen Fisika, lalu Ibu Dra. Justinon, M.Si sebagai sekertaris jurusan program studi Fisika Instrumentasi FMIPA USU, seluruh Dosen dan pegawai pada Departemen Fisika khususnya Program Studi Fisika Instrumentasi FMIPA USU.
Allah mengajarkan kita untuk bersyukur satu kata yang lebih luas maknanya dari pada Terima Kasih, maka pada nikmat Allah yang menyambangi saya tak cukup rasanya berucap Syukran ! kecuali kita menghayati doa Jazaakumullahu Khairan Katsiiran.” Syukur Kami kepada Ayahanda dan Ibunda serta Abang dan Kakak saya tercinta semoga Allah terus menguatkan kami untuk berbakti “ Rabbighfirlii wa li walidayya.”
Jazakumullah khairan katsiran sebuah doa yang saya tujukan untuk para
pendahulu dakwah Bang Andi, Bang Yopi, Bang Emil, Bang Wahyudhi, Bang Fadhlan, yang terus menginspirasi dan tempat saya banyak belajar, lalu Bang Faisal Akbar yang membuka wawasan saya, jazakallah bang buku- buku nya luar biasa. Untuk kak Nana, kak Chinta, kak Sarah, kak Dila, kak Lailan yang terus percaya kepada adik mu ini walau terkadang sulit dimengerti .
Jazakumullah khairan katsiran Doa itu saya lirihkan juga untuk, Saudara –
Saudara ku satu seperguruan ada akh Dedy yang uda di Bogor, akh Agus si Presiden SGC , akh Hadi yang uda lulus PNS, akh Oki pakar IT, akh Riko sang Politisi, akh Maulana si Kalem yang baik hati, akh Ikhsan si Fotografer, akh Aslam Mapres Usu semoga Allah memepertemukan kita di Akhirat ya akhi dan terkhusus Murabbi saya yang terus membimbing saya, Jazakallah untuk semuanya.
Jazakumullah Khairan katsiraan juga untuk seluruh rekan - rekan yang di UKMI
iv kuliah yang lucu-lucu.yang nama- namanya tak mampu saya tuliskan satu persatu,
Barakah ya akh dan yang pasti kepada kalian semua saya hanya ingin mengatakan ini
sebuah pertemuan yang luar biasa dan tidak akan terlupa sampai kapanpun. Terima kasih
v ABSTRAK
Infuse berfungsi untuk memberikan cairan kepada pasien secara berkala. Kesalahan dalam pemberian cairan infuse dapat berakibat buruk kepada pasien, juga apabila terjadi masalah penyumbatan atau kehabisan cairan jika tidak segera ditangani akan berbahaya bagi pasien. Infuse yang ada saat ini penggunaannya masih secara manual dimana kesalahan – kesalahan seperti tersebut masih sering terjadi, oleh karena itu kita membuat sebuah perancangan alat pengendali Infuse yang dapat bekerja secara otomatis dan monitoring secara digital. Pada proyek akhir ini akan dirancang sebuah system kendali dan monitoring infuse secara berkala dan dokter atau suster hanya perlu memasukan jumlah tetesan yang diinginkan dari keypad. Sensor yang digunakan pada alat ini yaitu Optocoupler. Sedangkan sebagai pengganti penekan selang digunakan motor steper . Pada Tugas akhir ini digunakan mikrokontroller ATMega8535 sebagai pembangkit pulsa untuk mengontrol motor stepper serta rangkaian Buzzer Alarm sebagai Indikator kondisi tetesan, LCD dan keypad sebagai interface yang memudahkan dokter untuk mengontrol dan memudahkan dalam menggunakan alat ini. Hasil pengujian untuk menhitung jumlah tetesan infuse tiap detik memliki keakurasian rata-rata 80 %.
vi ABSTRACT
The function infuse which is to give intravenous fluids to patients on a regular basis Mistakes in giving intra venous fluids may be detrimental to the patient, also if there are problems with blockage or running out of liquids if not immediately addressed would be dangerous for patients. Infuse the current user is still manually where mistakes – mistakes such as these are still common, there fore we make an infusion control device design that can work automatically and digitally monitoring. In this final project will be designed a control system and periodic monitoring of infusion and the physician or nurse need only enter the desired number of droplets from the keypad. Sensor used in this tool is an optoucoupler While the pressure hose is used instead of motor stepper At the end of the project is used as microcontroller ATmega8535 pulse generator to control the stepper motor and circuit condition Buzzer Alarm as droplets LCD and keypad as an interface that allows the physician to control and ease in usingthis tool. The test results for calculates number of droplets a second infusion posses an average accuracy of 80 %
DAFTAR ISI
LEMBAR PERSETUJUAN-1 ... i
LEMBAR PERNYATAAN ... ii
LEMBAR PENGHARGAAN... iii
ABSTRAK ... v
ABSTRACT ... . vi
DAFTAR ISI ... vii
DAFTAR GAMBAR ... x
DAFTAR TABEL ... xii
LEMBAR PERSEMBAHAN ... xiv
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Batasan Masalah ... 2
1.3. Maksud dan Tujuan Penulisan ... 2
1.4. Metode Pengumpulan Data ... 2
1.5. Sistematika Penulisan ... 3
BAB II TINJAUAN TEORITIS ... 5
2.1. Sensor Optocoupler ... 5
2.2. Motor ... 8
2.3. Motor Stepper ... 9
2.3.1. Tipe Motor Stepper ... 9
2.3.2. Variabel Relukstansi Motor ... 11
2.4. Microkontroler AVR ATmega8535 ... 12
2.4.1. Fitur ATmega8535 ... 14
2.4.3. Arsitektur ATmega8535 ... 16
2.4.4. Program Memori ... 18
2.4.5. Memori Data (SRAM) ... 18
2.4.6. EEPROM ... 19
2.5. Perangkat Lunak ( software ) ... 19
2.5.1. Dasar Pemrograman ATmega8535 dengan Bahasa C ... 19
2.5.1.1. Pengenalan pada Bahasa C ... 20
2.5.1.2. Tipe Data ... 20
2.5.1.3. Header ... 22
2.5.1.4 Operator Aritmatika ... 23
2.5.1.5 Operator Pembanding ... 24
2.5.1.6 Operator Logika ... 25
2.5.1.7 Operator Bitwise ... 26
2.5.1.8 Operator Penugasan dan Operator Majemuk ... 27
2.5.1.9. Operator Penambahan dan Pengurangan ... 28
2.5.1.10 Pernyataan If dan If Bersarang ... 29
2.5.1.11 Pernyataan Switch ... 31
2.5.1.12 Pernyataan While ... 32
2.5.2. Software Code Vision AVR ... 33
BAB III RANGKAIAN PADA SISTEM PENGENDALIAN TETESAN CAIRAN INFUSE PADA PASIEN ... 36
3.1.Rangkaian Power Supply ... 36
3.1.1. Cara Kerja Rangkaian ... 36
3.1.2. Fungsi Kerja Rangkaian... 36
3.1.3. Pengujian Rangkaian ... 37
3.2.Rangkaian Microkontroler ATmega 8535 ... 38
3.2.1. Cara kerja Rangkaian ... 38
3.2.2. Fungsi Kerja Rangkaian... 38
3.2.3. Pengujian Rangkaian ... 39
3.3.Rangkaian Display LCD ... 41
3.3.1. Cara kerja Rangkaian ... 41
3.3.3. Pengujian Rangkaian ... 46
3.4.Rangkaian Sensor Optic ... 48
3.4.1. Cara kerja Rangkaian…. ... 48
3.4.2. Fungsi Kerja Rangkaian... 49
3.4.3. Pengujian Rangkaian ... 49
3.5.Rangkaian Keypad ... 51
3.5.1. Cara Kerja Rangkaian ... 51
3.5.2. Fungsi Kerja Rangkaian... 51
3.5.3. Pengujian Kerja Rangkaian ... 52
3.6.Rangkaian Driver Motor Stepper ... 54
3.6.1. Cara kerja Rangkaian ... 54
3.6.2. Fungsi Kerja Rangkaian... 55
3.6.3. Pengujian Kerja Rangkaian ... 56
3.7.Rangkaian Buzzer ... 57
3.7.1. Cara kerja Rangkaian ... 57
3.7.2. Fungsi Kerja Rangkaian... 58
3.7.3. Pengujian Rangkaian ... 58
BAB IV ANALISA RANGKAIAN SISTEM PENGENDALIAN TETESAN CAIRAN INFUSE PADA PASIEN ... 59
4.1 Diagram Block dan Cara Kerja Sistem Pengendali Tetesan Infuse ... 59
4.2 Diagram Alir ( Flowchart ) ... 60
4.3 Program ... 62
BAB V KESIMPULAN DAN SARAN... 67
5.1. Kesimpulan ... 67
5.2. Saran ... 67
DAFTAR PUSTAKA ... 69
Lampiran-1 ... 70
DAFTAR GAMBAR
Gambar 2.1. Optocoupler ... 7
Gambar 2.2. Motor Stepper Unipolar ... 10
Gambar 2.3. Motor Stepper Bipolar ... 10
Gambar 2.4. Variabel Relukstansi ... 11
Gambar 2.5. Urutan Data Motor Stepper Dengan Tipe Variabel Reluktansi ... 11
Gambar 2.6. Arsitek ATmega8535 ... 17
Gambar 2.7. Program Memori ... 18
Gambar 3.1. Rangkaian Power Supplay (PSA) ... 37
Gambar 3.2. Rangkaian IC Regulator ... 37
Gambar 3.3. Rangkaian Mikrokontroler ATmega 8535 ... 39
Gambar 3.4 Tampilan Create New file ... 39
Gambar 3.5. Tampilan Confirm ... 40
Gambar 3.6. Tampilan Setting Clock Mikrokontroler ... 40
Gambar 3.7. Tampilan Settng PORT ... 41
Gambar 3.8. Menu File Code Vision AVR ... 41
Gambar 3.9. Rangkaian Display LCD ... 44
Gambar 3.10. Rangkaian Memori LCD ... 44
Gambar 3.11. Tampilan Settingan LCD ... 46
Gambar 3.12. Rangkaian Sistem Sensor ... 48
Gambar 3.15. Rangkaian Driver Motor Stepper ... 55
Gambar 3.16. Rangkaian Buzzer ... 57
Gambar 4.1. Block Diagram Sistem ... 59
DAFTAR TABEL
Tabel 2.1. Jenis-Jenis AVR ... 13
Tabel 2.2. PORTA ... 15
Tabel 2.3 PORTB ... 15
Tabel 2.4. PORTC ... 16
Tabel 2.5. PORTD ... 16
Tabel 2.6. Tipe Data ... 21
Tabel 2.7. Operasi Aritmatika ... 23
Tabel 2.8. Operator Pembanding ... 24
Tabel 2.9. Operator Logika ... 25
Tabel 2.10. Operator Bitwise ... 26
Tabel 2.11. Operator Penugasan ... 27
Tabel 2.12. Operator Penugasan ... 28
Tabel 2.13. Operator Penugasan ... 28
Tabel 3.1. Tegangan IC 7805 ... 37
Tabel 3.2. Truth Tabel LED ... 42
Tabel 3.3. Tegangan PIN Mikrokontroler ... 42
Tabel 3.4. Alamat Memori DDRAM ... 45
Tabel 3.5. Tegangan PIN LCD ... 47
Tabel 3.6. Keadaan Sensor ... 49
v ABSTRAK
Infuse berfungsi untuk memberikan cairan kepada pasien secara berkala. Kesalahan dalam pemberian cairan infuse dapat berakibat buruk kepada pasien, juga apabila terjadi masalah penyumbatan atau kehabisan cairan jika tidak segera ditangani akan berbahaya bagi pasien. Infuse yang ada saat ini penggunaannya masih secara manual dimana kesalahan – kesalahan seperti tersebut masih sering terjadi, oleh karena itu kita membuat sebuah perancangan alat pengendali Infuse yang dapat bekerja secara otomatis dan monitoring secara digital. Pada proyek akhir ini akan dirancang sebuah system kendali dan monitoring infuse secara berkala dan dokter atau suster hanya perlu memasukan jumlah tetesan yang diinginkan dari keypad. Sensor yang digunakan pada alat ini yaitu Optocoupler. Sedangkan sebagai pengganti penekan selang digunakan motor steper . Pada Tugas akhir ini digunakan mikrokontroller ATMega8535 sebagai pembangkit pulsa untuk mengontrol motor stepper serta rangkaian Buzzer Alarm sebagai Indikator kondisi tetesan, LCD dan keypad sebagai interface yang memudahkan dokter untuk mengontrol dan memudahkan dalam menggunakan alat ini. Hasil pengujian untuk menhitung jumlah tetesan infuse tiap detik memliki keakurasian rata-rata 80 %.
vi ABSTRACT
The function infuse which is to give intravenous fluids to patients on a regular basis Mistakes in giving intra venous fluids may be detrimental to the patient, also if there are problems with blockage or running out of liquids if not immediately addressed would be dangerous for patients. Infuse the current user is still manually where mistakes – mistakes such as these are still common, there fore we make an infusion control device design that can work automatically and digitally monitoring. In this final project will be designed a control system and periodic monitoring of infusion and the physician or nurse need only enter the desired number of droplets from the keypad. Sensor used in this tool is an optoucoupler While the pressure hose is used instead of motor stepper At the end of the project is used as microcontroller ATmega8535 pulse generator to control the stepper motor and circuit condition Buzzer Alarm as droplets LCD and keypad as an interface that allows the physician to control and ease in usingthis tool. The test results for calculates number of droplets a second infusion posses an average accuracy of 80 %
BAB 1
PENDAHULUAN
1.1 LATAR BELAKANG
Dengan perkembangan ilmu kedokteran dan teknologi yang semakin canggih
menyebabkan tuntutan akan kemudahan dan keakuratan. Demikian halnya
perkembangan ilmu dan teknologi dibidang alat-alat kesehatan. Salah satu peralatan
yang ada dan sering digunakan dirumah sakit salah satunya adalah infuse. Kita
mengetahui dalam penggunaan infuse yang dilakukan secara manual untuk
mengetahui jumlah tetesan infuse yang akan diberikan kepada pasien, suster harus
menghitung tetesannya sambil melihat jam tangan selama satu menit. cara ini tentu
masih jauh dari tingkat ketelitiannya.
Sebagai upaya untuk mengatasi hal tersebut maka kami berusaha merancang dan
membuat alat pengatur jumlah tetesan infuse pada pasien untuk mencatat banyaknya
tetesan infuse dan monitoring secara digital dengan display LCD dan Rangkaian
buzzer alarm sebagai indikator bila terjadi bahaya. Alat ini menggunakan
mikrokontroller ATmega 8535 sebagai pembangkit PWM untuk kontrol putaran motor
stepper . Alat ini dapat mempermudah paramedis dalam mengatur tetesan infuse.
Sehingga dalam mengatur jumlah tetesan infuse, dokter atau suster tidak secara
manual dan dapat meningkatkan pelayanan kepada pasien.
Dengan alat ini dokter maupun suster dapat dengan mudah melakukan
monitoring infuse pada pasien karena di tampilkan dalam bentuk display digital dan
selain itu dalam upaya menjaga keselamatan alat in juga menggunakan rangkaian
buzzer sebagai indikator infuse setiap 1 detik sekali dan alarm ini akan memberikan
peringatan bila terjadi sumbatan atau pada tetesan infuse yang tidak mengalir dengan
1.2 Batasan Masalah
Melihat banyaknya masalah yang akan muncul dari perancangan ini, maka penulis
membatasi masalah yang akan menjadi pembahasan dalam perancangan alat ini yaitu:
a. Pembahasan perangkat keras sistem kontrol otomatis kecepatan tetes infuse
sesuai blok diagram sistem.
b. Prinsip kerja Sensor pembaca jumlah tetesan infuse menggunakan sensor
Optocoupler
c. Penggunaan Mikrokontroller AVR ATmega 8535. Untuk sistem ini.
1.3 Maksud dan Tujuan Penulisan
Adapun yang menjadi tujuan Proyek Tugas Akhir ini adalah:
a. Untuk membuat tugas akhir sebagai salah satu syarat menyelesaikan program
pendidikan Diploma III di FMIPA USU
b. Sebagai Penerapan ilmu yang dipelajari di bangku perkuliahan secara nyata
dan aplikatif
c. Untuk memudahkan mengontrol dan memonitoring jumlah tetesan infuse
pada pasien. di rumah sakit
d. Untuk memanfaatkan Mikrokontroller sebagai pemerosesan dan pengontrolan
sistem kerja dari rangkaian – rangkaian yang digunakan
e. Untuk memberikan sebuah inovasi baru untuk system pengobatan di bidang
medis dari pemanfaatan elektronika dalam kehidupan sehari - hari
1.4. Metode Pengumpulan Data
Data- data yang digunakan dalam penulisan tugas akhir ini diperoleh melalui beberapa
metode ada pun metode yang digunakan penulis dalam proses pengumpulan data
a. Studi keperpustakaan
Penulis mengumpulkan data dan teori yang dibutuhkan dalam penulisan tugas
akhir melalui buku-buku dan referensi lainya yang berkaiatan dengan tugas
akhir ini
b. Lembar Data ( Datasheet) komponen yang dipakai pada alat
Lembar data ( Datasheet) merupakan data-data yang dikeluarkan oleh
produsen komponen elektronika mengenai fungsi, karakteristik dan data- data
penting lainnya tentang komponen hasil produksi dari produsen komponen
elektronika yang bersangkutan.
c. Pengujian Alat
Data diperoleh setelah alat yang dibuat diuji dan diambil kesimpulan dari hasil
pengujian tersebut
d. Berkonsultasi dengan Dosen pembimbing.
Penulisan melakukan konsultasi dengan berdiskusi dan bertanya secara
langsung pada Dosen pembimbing penulis mengenai segala sesuatu yang
berhubungan dengan penulisan tugas akhir
1.5. Sistematika Penulisan
Adapun sistematika penulisan yang digunakan penulis dalam penulisan laporan Tugas
Akhir ini adalah sebagai berikut :
BAB 1. PENDAHULUAN
Dalam bab ini berisikan mengenai latar belakang, tujuan penulisan, batasan
masalah tugas akhir, metode pengumpulan data dan untuk penulisan laporan
praktek proyek, serta sistematika penulisan.
BAB 2 . TINJAUAN TEORITIS
Tinjauan teoritis dalam bab ini dijelaskan tentang teori pendukung yang
digunakan untuk pembahasan meliputi gambar umum, prinsip kerja dari alat
maupun komponen yang digunakan, serta penjelasan mengenai
BAB 3 . RANGKAIAN PADA SISTEM PENGENDALIAN TETESAN INFUSE PADA PASIEN
Pada bab ini dipaparkan mengenai rangkaian- rangkaian yang digunakan pada
sistem Penegendali Tetesan Infuse pada pasien menggunakan optocoupler dan
sistem kerja perblok diagram dan juga secara keseluruhan
BAB 4 . ANALISA RANGKAIAN PENGENDALI TETESAN INFUSE PASIEN DAN PEMROGRAMAN
Dalam bab ini dibahas tentang cara pengujian rangkaian baik secara per blok
maupun secara keseluruhan
BAB 5 . KESIMPULAN DAN SARAN
Bab ini merupakan penutup yang meliputi tentang kesimpulan dari
pembahasan yang dilakukan dari tugas proyek ini serta saran apakah rangkaian
ini dibuat lebih efisien dan di kembangkan perakitanya pada suatu metode lain
BAB 2
TINJAUAN TEORITIS
2.1 Sensor Optocoupler
Optocoupler adalah suatu piranti yang terdiri dari 2 bagian yaitu transmitter dan
receiver, yaitu antara bagian cahaya dengan bagian deteksi sumber cahaya terpisah.
Biasanya optocoupler digunakan sebagai saklar elektrik, yang bekerja secara otomatis.
Pada dasarnya Optocoupler adalah suatu komponen penghubung (coupling)
yang bekerja berdasarkan picu cahaya optic. Optocoupler terdiri dari dua bagian yaitu:
1. Pada transmitter dibangun dari sebuah LED infra merah. Jika dibandingkan
dengan menggunakan LED biasa, LED infra merah memiliki ketahanan yang
lebih baik terhadap sinyal tampak. Cahaya yang dipancarkan oleh LED infra
merah tidak terlihat oleh mata telanjang.
2. Pada bagian receiver dibangun dengan dasar komponen Photodiode. Photodiode
merupakan suatu transistor yang peka terhadap tenaga cahaya. Suatu sumber
cahaya menghasilkan energi panas, begitu pula dengan spektrum infra merah.
Karena spekrum inframerah mempunyai efek panas yang lebih besar dari cahaya
tampak, maka Photodiode lebih peka untuk menangkap radiasi dari sinar infra
merah.
Oleh karena itu Optocoupler dapat dikatakan sebagai gabungan dari LED
merah termasuk dalam gelombang elektromagnetik yang tidak tampak oleh mata
telanjang. Sinar ini tidak tampak oleh mata karena mempunyai panjang gelombang ,
berkas cahaya yang terlalu panjang bagi tanggapan mata manusia. Sinar infra merah
mempunyai daerah frekuensi 1 x 1012 Hz sampai dengan 1 x 1014 GHz atau daerah
frekuensi dengan panjang gelombang 1µm – 1mm.
LED infra merah ini merupakan komponen elektronika yang memancarkan
cahaya infra merah dengan konsumsi daya sangat kecil. Jika diberi bias maju, LED
infra merah yang terdapat pada optocoupler akan mengeluarkan panjang gelombang
sekitar 0,9 mikrometer.
Proses terjadinya pancaran cahaya pada LED infra merah dalam optocoupler
adalah sebagai berikut. Saat dioda menghantarkan arus, elektron lepas dari ikatannya
karena memerlukan tenaga dari catu daya listrik. Setelah elektron lepas, banyak
elektron yang bergabung dengan lubang yang ada di sekitarnya (memasuki lubang lain
yang kosong). Pada saat masuk lubang yang lain, elektron melepaskan tenaga yang
akan diradiasikan dalam bentuk cahaya, sehingga dioda akan menyala atau
memancarkan cahaya pada saat dilewati arus. Cahaya infra merah yang terdapat pada
optocoupler tidak perlu lensa untuk memfokuskan cahaya karena dalam satu chip
mempunyai jarak yang dekat dengan penerimanya. Pada optocoupler yang bertugas
sebagai penerima cahaya infra merah adalah fototransistor. Fototransistor merupakan
komponen elektronika yang berfungsi sebagai detektor cahaya infra merah. Detektor
cahaya ini mengubah efek cahaya menjadi sinyal listrik, oleh sebab itu fototransistor
termasuk dalam golongan detektor optik.
Fototransistor memiliki sambungan kolektor–basis yang besar dengan cahaya
infra merah, karena cahaya ini dapat membangkitkan pasangan lubang elektron.
Dengan diberi bias maju, cahaya yang masuk akan menimbulkan arus pada kolektor.
Fototransistor memiliki bahan utama yaitu germanium atau silikon yang
sama dengan bahan pembuat transistor. Tipe fototransistor juga sama dengan
transistor pada umumnya yaitu PNP dan NPN. Perbedaan transistor dengan
mengaktifkan daerah basis, sedangkan transistor biasa ditempatkan pada dinding
logam yang tertutup.
Ditinjau dari penggunaanya, fisik optocoupler dapat berbentuk
bermacam-macam. Bila hanya digunakan untuk mengisolasi level tegangan atau data pada sisi
transmitter dan sisi receiver, maka optocoupler ini biasanya dibuat dalam bentuk solid
(tidak ada ruang antara LED dan Photodiode). Sehingga sinyal listrik yang ada pada
input dan output akan terisolasi. Dengan kata lain optocoupler ini digunakan sebagai
optoisolator jenis IC.
Prinsip kerja dari optocoupler adalah :
a. Jika antara Photodiode dan LED terhalang maka Photodiode tersebut akan off
sehingga output dari kolektor akan berlogika high.
b. Sebaliknya jika antara Photodiode dan LED tidak terhalang maka Photodiode
dan LED tidak terhalang maka Photodiode tersebut akan on sehingga
output-nya akan berlogika low.
Sebagai piranti elektronika yang berfungsi sebagai pemisah antara rangkaian
power dengan rangkaian control. Komponen ini merupakan salah satu jenis komponen
yang memanfaatkan sinar sebagai pemicu on/off-nya. Opto berarti optic dan coupler
berarti pemicu. Sehingga bisa diartikan bahwa optocoupler merupakan suatu
komponen yang bekerja berdasarkan picu cahaya optic opto-coupler termasuk dalam
sensor, dimana terdiri dari dua bagian yaitu transmitter dan receiver. Dasar rangkaian
dapat ditunjukkan seperti pada gambar dibawah ini:
Gambar 2.1 Optocoupler
Sebagai pemancar atau transmitter dibangun dari sebuah led infra merah
Sensor ini bisa digunakan sebagai isolator dari rangkaian tegangan rendah
kerangkaian tegangan tinggi. Selain itu juga bisa dipakai sebagai pendeteksi adanya
penghalang antara transmitter dan receiver dengan memberi ruang uji dibagian tengah
antara led dengan photo transistor. Penggunaan ini bisa diterapkan untuk mendeteksi
putaran motor atau mendeteksi lubang penanda disket pada disk drive computer. Tapi
pada alat yang penulis buat optocoupler untuk mendeteksi putaran.
Penggunaan dari optocoupler tergantung dari kebutuhannya. Ada berbagai
macam bentuk, jenis, dan type. Seperti MOC 3040 atau 3020, 4N25 atau 4N33dan
sebagainya. Pada umumnya semua jenis optocoupler pada lembar datanya mampu
dibebani tegangan sampai 7500 Volt tanpa terjadi kerusakan atau kebocoran. Biasanya
dipasaran optocoupler tersedianya dengan type 4NXX atau MOC XXXX dengan X
adalah angka part valuenya. Untuk type 4N25 ini mempunyai tegangan isolasi sebesar
2500 Volt dengan kemampuan maksimal led dialiri arus fordward sebesar 80 mA.
Namun besarnya arus led yang digunakan berkisar antara 15mA - 30 mA dan untuk
menghubungkan-nya dengan tegangan +5 Volt diperlukan tahanan sekitar 1K ohm
2.2 Motor
Motor merupakan perangkat elektromagnetik yang dapat mengubah energi listrik
menjadi energi mekanik. Perubahan ini dilakukan dengan merubah tenaga listrik
menjadi magnet yang disebut sebagai elektromagnit. Sebagaimana kita ketahui
bahwa : kutub-kutub dari magnet yang senama akan tolak-menolak dan kutub-kutub
tidak senama, tarik-menarik. Maka kita dapat memperoleh gerakan jika kita
menempatkan sebuah magnet pada sebuah poros yang dapat berputar, dan magnet
yang lain pada suatu kedudukan yang tetap. Dengan cara inilah energi listrik dapat
diubah menjadi energi mekanik.
Energi mekanik ini diguanakan untuk, misalnya memutar impeler pompa, fan
atau blower, menggerakkan kompresor, mengangkat bahan, dll. Motor listrik
kadangkala disebut “kuda kerja” nya industri sebab diperkirakan bahwa motor-motor
menggunakan sekitar 70% beban total industri.
Secara umum motor listrik dapat dibagi menjadi motor ac dan motor dc,
bembagian ini berdasarkan pada arus listrik yang digunakan untuk menggerakkannya.
Namun penulis pada bagian ini kita hanya membahas mengenai motor dc
2. 3 Motor Stepper
Motor stepper dibedakan menjadi dua macam berdasarkan magnet yang digunakan,
yaitu tipe permanen magnet dan variabel reluktansi. Pada umumnya motor stepper
yang digunakan saat ini adalah motor stepper yang mempunyai variabel reluktansi.
Cara yang paling mudah untuk membedakan antara tipe motor stepper di atas adalah
dengan cara memutar rotor dengan tangan ketika tidak dihubungkan ke suplay.
Pada motor stepper yang mempunyai permanen magnet maka ketika diputar
dengan tangan akan terasa lebih tersendat karena adanya gaya yang ditimbulkan oleh
magnet permanen. Tetapi ketika menggunakan motor dengan variabel reluktansi maka
ketika diputar akan lebih halus karena sisa reluktansinya cukup kecil.
2.3.1 Tipe Motor Stepper
a. Motor Stepper Unipolar
Motor stepper unipolar terdiri dari dua lilitan yang memiliki center tap. Center tap dari
masing masing lilitan ada yang berupa kabel terpisah ada juga yang sudah terhubung
didalamnya sehingga center tap yang keluar hanya satu kabel. Untuk motor stepper
yang center tapnya ada pada masing – masing lilitan kabel inputnya ada 6 kabel.
Namun jika center tapnya sudah terhubung di dalam kabel inputannya hanya 5 kabel.
menghubungkannya ke +VCC hal ini sangat dipengaruhi oleh driver yang digunakan.
Sebagai gambaran dapat dilihat konstruksi motor stepper unipolar pada gambar
berikut:
Gambar 2. 2 : Motor stepper Unipolar
b. Motor Stepper Bipolar
Motor stepper bipolar memiliki dua lilitan perbedaaan dari tipe unipolar adalah bahwa
pada tipe bipolar lilitannya tidak memiliki center tap. Keunggulan tipe bipolar yaitu
memiliki torsi yang lebih besar jika dibandingkan dengan tipe unipolar untuk ukuran
yang sama. Pada motor stepper tipe ini hanya memiliki empat kabel masukan. Namun
ntuk menggerakan motor stepper tipe ini lebih rumit jika dibandingkan dengan
menggerakan motor stepper tipe unipolar. Sebagai gambaran dapat dilihat konstruksi
motor stepper bipolar pada gambar berikut :
2.3.2 Variabel Reluktansi Motor
Pada motor stepper yang mempunyai variabel reluktansi maka terdapat 3 buah lilitan
yang pada ujungnya dijadikan satu pada sebuah pin common. Untuk dapat
menggerakkan motor ini maka aktivasi tiap-tiap lilitan harus sesuai urutannya.
Gambar 2.4 merupakan gambar struktur dari motor dengan variabel reluktansi dimana
tiap stepnya adalah 30°. Mempunyai 4 buah kutub pada rotor dan 6 buah kutub pada
statornya yang terletak saling berseberangan.
Gambar 2.4 Variabel Reluktansi Motor
Jika lilitan 1 dilewati oleh arus, lilitan 2 mati dan lilitan 3 juga mati maka
kumparan 1 akan menghasilkan gaya tolakan kepada rotor dan rotor akan berputar
sejauh 30° searah jarum jam sehingga kutub rotor dengan label Y sejajar dengan kutub
dengan label 2.
Jika kondisi seperti ini berulang terus menerus secara berurutan, lilitan 2
dilewati arus kemudian lilitan 3 maka motor akan berputar secara terus menerus. Agar
dapat berputar sebanyak 21 step maka perlu diberikan data dengan urutan seperti pada
data berikut :
Gambar 2.5 Urutan Data Motor Stepper Dengan Tipe Variabel Reluktansi
Dari data di atas ‘1’ diartikan bahwa lilitan yang bersangkutan dilewati arus
sehingga menghasilkan gaya tolak untuk rotor. Sedangkan ‘0’ diartikan lilitan dalam
2.4
Microkontroller Jenis AVR (Alf and Vegard RISC)Mikrokontroller merupakan alat pengolahan data digital dan analog (fitur ADC pada
seri AVR) dalam level tegangan maksimum 5V. Keunggulan mikrokontroller
dibanding microprocessor yaitu lebih murah dan didukung dengan software compiler
yang sangat beragam seperti software compailer C/C++, basic, pascal, bahkan
assembler. Sehingga penggunaan dapat memilih program yang sesuai dengan
kemampuannya.
Pada mikrokontroller AVR membutuhkan sedikit komponen pendukung, tidak
seperti mikrokontroller yang sistem pendukungnya terpisah atau terbentuk secara
parsial, seperti RAM, ROM, dan Mikroprocessor sendiri.
Keunggulan AVR dibanding dengan mikrokontroller lain, memiliki kecepatan
eksekusi yang lebih cepat karena sebagian besar instruksi dibentuk dalam satu siklus
clock, jika dibandingkan dengan mikrokontroller jenis MCS51 yang mengeksekusi
satu instruksi dengan 12 siklus clock.
AVR memiliki fitur yang lengkap (ADC internal, EEPROM internal,
Timer/counter, Watchdog timer, PWM, Port I/O, komunikasi serial, komperator, TWI,
dll), sehingga dengan fasilitas ini programer dan disigner dapat menggunakannya
untuk berbagai sistem elektronika seperti robot, automasi industri, peralatan
telekomunikasi dan berbagai keperluan lain.
Beberapa produsen mikrokontroller mengeluarkan jenis mikrokontroller yang
memiliki fitur-fitur yang sangat beragam seperti AVR jenis ATtiny, ATmega, dan
AT90. dari segi jumlah pin dan memori dapat kita lihat perbedaan jenis
Tabel 2.1 Jenis-Jenis AVR
Mikrontroller Memori
Tipe Jumlah Pin Flash EEPROM SRAM
TinyAVR 8 – 32 1 – 2K 64 – 128 0 – 128
AT90XX 20 – 44 1 – 8K 128 – 512 0 – 1K
ATmega 32 – 64 8 – 128K 512 – 4K 512 – 4K
Pemrograman mikrokontroller AVR dengan menggunakan bahasa C lebih
tangguh bila dibanding dengan jenis pemrograman lainnya. Karena bahasa program C
independent terhadap hardware, lain halnya dengan menggunakan bahasa assembler
yang mana setiap jenis mikronkontroller berbeda jenis pemrogramannya sehingga
orang yang ingin memprogram jenis mikrokontroller yang lainnya harus belajar
bahasa assembler nya dulu. Keunggulan lainnya dengan menggunakan bahasa C
adalah penyusunan program yang besar dapat dilakukan dengan mudah, dan program
yang sudah jadi dapat digunakan ke jenis AVR lain dengan hanya mengubah
fungsi-fungsi register dan portnya.
Beberapa faktor pertimbangan penting untuk memilih mikrokontroller jenis
AVR antara lain:
a. Harga mikrokontroller yang lebih murah dibanding mikroprocessor;
b. Ukuran memori mikrokontroller yang cukup besar dan untuk menambah
memorinya dapat digunakan memori eksternal;
c. Fitur ADC, timer, PWM, USART, dan fasilitas lainnya yang memudahkan
Disigner dalam merancang sistem;
d. Kecepatan eksekusi program dimana intruksi dieksekusi dalam 1 siklus clock
sementara mikrokontroller jenis MCS51 hanya dapat mengeksekusi intruksi
dalam 12 clock.
e. Adanya clock internal sehingga mikrokontroller dapat digunakan tanpa
menggunakan crystal;
f. Software pendukung yang sangat beragam dan penggunaanya jauh lebih
mudah karena software menyediakan fitur yang memudahkan dalam
menyediakan fitur design LCD pada BASCOM AVR dan fitur penghasil
program pada CodeVisionAVR.
2.4.1 Fitur ATmega8535
Berikut ini adalah fitur – fitur yang dimiliki oleh Atmega 8535
a. 130 macam intruksi yang hampir semuanya dieksekusi dala satu siklus clock
b. 32 x 8-bit register serba guna
c. Kecepatan mencapain16 MIPS dengan clock 16 MHz
d. 8 Kbyte Flash Memori, yang memiliki fasilitas In system Programing
e. 512 Byte internal EEPROM
f. 512 Byte SRAM
g. Programing Lock, Fasilitas untuk mengamankan kode program
h. 2 buah timer/counter 8-bit dan 1 buah timer/ counter 16-bit
i. 4 chanel output PWM
j. 8 chanel ADC 10-bit
k. Serial USART
l. Master / Slave SPI serial interface
m. Serial TWI atau 12C
n. On-Chip Analog Comparator
2.4.2 Fungsi Pin-Pin AVR ATmega8535 yang digunakan a. Fungsi VCC
VCC merupakn pin yang berfungsi sebagai masukan catu daya
b. Fungsi GND
GND merupakan pin ground untuk catu daya digital
c. Fungsi PORTA
PORTA memiliki fungsi input dan juga digunakan sebagai input analog yang akan
dikonfersikan menjadi data-data digital (ADC), seperti yang ditunjukkan pada tabel di
bawah. Jika salah satu PORTA dikonfigurasikan sebagai output ketika PORTA
menghasilkan data error. Untuk mengaktifkan fungsi ADC pada PORTA dengan
CodeVesion AVR akan dibahas di lab selanjutnya tentang teknik pemrograman C
pada ATmega8535 dengan menggunakan software CodeVision AVR. Fungsi PORTA
dapat dilihat pada tabel.
Tabel 2.2 PORTA
PORT Keterangan Fungsi PORT PA.0 Keypad (Baris ke-1)
PA.1 Keypad (Baris ke-1) PA.2 Keypad (Baris ke-2) PA.3 Keypad (Baris ke-2) PA.4 Keypad (Baris ke-3) PA.5 Keypad (Baris ke-3) PA.6 Keypad (Baris ke-4) PA.7 Keypad (Baris ke-4)
d. Fungsi PORTB
PORTB merupakan pin Input dan Output 8 bit dua arah dan memilki pin fungsi
khusus yaitu Timer/ Counter, Komparator analog dan SPI dan Fungsi PORTB yang
[image:31.595.187.469.180.383.2]digumakan pada rangkaian dapat dilihat pada tabel dibawah ini,
Tabel 2.3 PORTB
PORT Keterangan Fungsi PORT
PB.0 Driver Motor Stepper
PB.1 Driver Motor Stepper
PB.2 Driver Motor Stepper
PB.3 Driver Motor Stepper
PB.7 Buzzer
e. Fungsi PORTC
PORTC merupakan pin input dan output dua arah dan memiliki pin fungsi khusus
yaitu TWI, Komparator analog dan Timer Oscilator dan Fungsi PORTC yang
Tabel 2.4 PORTC
PORT Keterangan Fungsi PORT PC.0 D4 (LCD PIN 11)
PC.1 D5 (LCD PIN 12) PC.2 D6 (LCD PIN 13) PC.3 D7 (LCD PIN 14) PC.4 Free
PC.5 RS (LCD PIN 4) PC.6 RW (LCD PIN 5) PC.7 CLK (LCD PIN 6)
f. Fungsi PORTD
PORTD merupakan pin input dan output dua arah dan pin fungsi khusus yaitu
komparator analog, interupsi eksternal dan komunikasi serial. Fungsi PORTD dapat
dilihat pada tabel dibawah ini,
Tabel 2.5 PORTD
PORTIN Keterangan Fungsi PORT PIND.7 Input sensor Optik
2.4.3 Arsitektur ATmega8535
ATmega8535 adalah mikrokontroler 8-bit CMOS dengan menggunakan daya yang
rendah dan menjalankan intruksi dalam satu clock. Mikrokontroler ATmega8535
dikombinasikan dengan 32 register. Semua register terhubung langsung ke Arithmetic
Logic Unit (ALU), membiarkan 2 register untuk di akses di dalam satu instruksi
dieksekusi dalam satu clock. Status dan kontrol berfungsi untuk menyimpan instruksi
aritmatika yang baru saja dieksekusi. Informasi ini berguna untuk mengubah alur
program saat mengeksekusi operasi kondisional. Instruksi dijemput dari flash
memory. Setiap byte flash memory memiliki alamat masing-masing. Alamat instruksi
yang akan dieksekusi senantiasa disimpan Program Counter. Ketika terjadi interupsi
stack. Alamat interupsi atau rutin kemudian ditulis ke Program Counter, instruksi
kemudian dijemput dan dieksekusi. Ketika CPU telah mengeksekusi rutin interupsi
[image:33.595.125.534.175.645.2]atau rutin biasa, alamat yang ada di stack dibaca dan ditulis kembali ke Program
2.4.4 Program Memori
ATmega8535 berisi 8K bytes On-Chip di dalam sistem Memori flash
Reprogrammable untuk penyimpanan program. Karena semua AVR instruksi adalah
16 atau 32 bits lebar, Flash adalah berbentuk 4K x16. Untuk keamanan perangkat
lunak, Flash Ruang program memori adalah dibagi menjadi dua bagian, bagian boot
program dan bagian aplikasi program dengan alamat mulai dari $000 sampai
$FFF.Flash Memori mempunyai suatu daya tahan sedikitnya 10,000 write/erase
Cycles. ATmega8535 Program Counter (PC) adalah 12 bitlebar, alamat ini 4K lokasi
[image:34.595.219.416.311.574.2]program memori.
Gambar 2.7 Program Memori
2.4.5 Memori Data (SRAM)
Memori data terbagi menjadi 3 bagian, yaitu 32 register umum,64 buah register
I/O,dan 512 byte SRAM. Dalam data memori terdapat 608 lokasi address data. 96
address lainnya digunakan untuk internal data SRAM. Register file terdiri dari 32
general purpose working register, I/O register terdiri dari 64 register
2.4.6 EEPROM
ATmega8535 memiliki EEPROM sebesar 512 byte untuk menyimpan data. Lokasinya
terpisah dengan sistem address register, data register dan control register yang dibuat
khusus untuk EEPROM. EEPROM dapat diprogram, dibaca dan dihapus sebanyak
100.000 kali.
Data yang tersimpan di EEPROM akan tetap tersimpan walaupun
mikrokontroller ATmega8535 tidak diberi catu daya.
2.5 Perangkat Lunak ( Software )
2.5.1 ATmega8535 dengan Bahasa C
C adalah bahasa pemrograman yang dapat dikatakan berada antara bahasa tingkat
rendah (bahasa yang berorientasi pada mesin) dan bahasa tingkat tinggi (bahasa yang
berorientasi pada manusia). Seperti yang diketahui, bahasa tingkat tinggi mempunyai
kompatibilitas antara platform. Karena itu, amat mudah untuk membuat program pada
berbagai mesin. Berbeda halnya dengan menggunakan bahasa mesin, sebab setiap
perintahnya sangat bergantung pada jenis mesin
.
Pembuat bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada
tahun 1972. C adalah bahasa pemrograman tersetruktur , yang membagi program
dalam bentuk block. Tujuannya untuk memudahkan dalam pembuatan dan
pengembangan program. Program yang ditulis dengan bahasa C mudah sekali
standarisasi bahasa C yaitu berupa standar ANSI (American National Standar
Institute) yang dijadikan acuan oleh para pembuat kompiler.
2.5.1.1 Pengenalan pada Bahasa C
Pengenalan meruapakan sebuah nama yang didefenisikan oleh program untuk
menunjukkan sebuah konstanta, variabel, fungsi, label, atau tipe data khusus.
Pemberian pengenal pada program harus memenuhi syarat-syarat dibawah ini:
a. Karakter pertama tidak menggunakan angka;
b. Karakter kedua berupa huruf, angka, garis bawah;
c. Tidak menggunakan spasi;
d. Bersifat case sensitive, yaitu huruf kapital dan huruf kecil dianggap berbeda;
e. Tidak boleh menggunakan kata-kata yang merupakan sintaks atau operator
Contoh menggunakan pengenal yang diperbolehkan:
1. Nama
2. _nama
3. Nama2
4. Nama_pengenal
Contoh penggunaan pengenal yang tidak diperbolehkan:
1. 2nama
2. Nama+2
3. Nama pengenal
2.5.1.2 Tipe Data
Pemberian signed dan unsigned pada tipe data menyebabkan jangkauan dari tipe
berubah. Pada unsigned menyebabkan tipe data akan selalu bernilai positif sedangkan
signed menyebabkan nilai tipe data bernilai negatif dan memungkinkan data bernilai
Tabel 2.6 Tipe Data
Pemodifikasi Tipe Persamaan Jangkauan Nilai
Signed char Char -128 s/d 127
Signed int Int -32.768 s/d 32.767
Signed short int Short, signed, short -32.768 s/d 32.767
Signed long int Long, long int, signed long -2.147.483 s/d 2.147.647
Unsigned char Tidak ada 0 s/d 255
Unsigned int Unsigned 0 s/d 65.535
Unsigned short int Unsigned short 0 s/d 65.535
Unsigned lonng int Unsigned long 0 s/d 4.294.967.295
Contoh program yang menunjukkan pengaruh signed dan unsigned pada hasil
program,
#include <mega.8535.h>
#include <delay.h>
Void main (void)
{
Int a, b; //pengenal
Unsigned d, c;
a = b0;
b = 40;
d = 50;
e = 40;
PORTC = 0x00;
DDRC = 0xff //set PORTC sebagai output
PORTB = 0x00;
While(1)
{
PORTB = a b;
PORTC = d – e;
Delay_ms (100);
};
}
Program di atas akan memberikan data di PORTIB – 10 (desimal) sedangkan
PORTIB = -10 (desimal) karena PORT mikrokontroler tidak dapat mengeluarkan nilai
negatif maka PORTIB dan PORTC akan memiliki keluaran 0x0A tapi pada
kenyataannya PORTC lebih banyak memakan memori karena tanda negatif tersebut
disimpan dalam memori.
Pada program di atas terdapat tulisan //set PORTB sebagai output yang
berguna sebagai komentar yang mana komentar ini tidak mempengaruhi hasil dari
program. Ada dua cara penulisan komentar pada pemrograman bahasa C, yaitu
dengan mengawali komentar dengan tanda “// “ ( untuk komentar yang hanya satu
baris) dan mengawali komentar dengan tanda “ /* “ dan mengakhiri komentar dengan
tanda “ */ “.
Contoh:
/ / ini adalah komentar
/+ ini adalah komentar
Yang lebih panjang
Dan lebih panjang lagi +/
2.5.1.3 Header
Header digunakan untuk menginstruksikan kompiler untuk menyisipkan file lain. Di
yang kita gunakan (pada software Code Vision AVR). File-file yang berakhiran .h
disebut file header.
File header yang digunakan untuk mendefinisikan jenis mikrokontroler yang
digunakan berfungsi sebagai pengarah yang mana pendeklarasian register-register
yang terdapat program difungsikan untuk jenis mikrokontroler apa yang digunakan (
pada software Code Vision AVR ).
Contoh:
# include <mega8535. h>
# include <delay. h>
# include <stdio. h>
2.5.1.4 Operator Aritmatika
Operator aritmatika digunakan untuk melakukan proses perhitungan matematika.
Fungsi-fungsi matematika yang terdapat pada bahasa C dapat dilihat pada tabel di
[image:39.595.187.445.494.628.2]bawah ini:
Tabel 2.7 Operasi Aritmatika
Operator Keterangan
+ Operator untuk penjumlahan
- Operator untuk pengurangan
* Operator untuk perkalian
/ Operator untuk pembagian
% Operator untuk sisa bagi
Contoh penggunaan operator aritmatika dapat dilihat di bawah ini,
# include < mega8535. h>
# include < delay. h>
{
Unsigned char a, b;
a = 0x03 ;
b = 0x05 ;
DDRC 0xFF ; / / PORTC di gunakan sebagai output
While ( 1 )
{
PORTC = ( a * b ) ;
delay_ms ( 500 ) ;
}
}
2.5.1.5 Operator Pembanding
Operator pembanding digunakan untuk membandingkan 2 data atau lebih. Hasil
operator akan di jalankan jika pernyataan benar dan tidak di jalankan jika salah.
[image:40.595.129.501.514.680.2]Operator pembanding dapat kita lihat pada tabel di bawah ini:
Tabel 2.8 Operator Pembanding
Operator Contoh Keterangan
= = x = = y Benar jika kedua data bernilai sama
! = x ! = y Bernilai benar jika kedua data tidak sama
> x > y Bernilai benar jika nilai x lebih besar dari pada y
< x < y Bernilai jika x lebih kecil dari y
>= x >= y Bernilai jika x lebih besar atau sama dengan y
<= x <= y Bernilai benar jika x lebih kecil atau sama dengan y
2.5.1.6 Operator Logika
Operator logika digunakan untuk membentuk logika dari dua pernyataan atau lebih.
Tabel 2.9 Operator Logika
Operator Keterangan
&& Logika AND
| | Logika OR
| Logika NOT
Contoh program:
# include < mega32 . h>
# include < delay . h>
void main ( void )
{
DDRC = 0XFF ; // sebagai output
DDRA = 0X00 ; // sebagai input
while ((1 )
{
if ( PINA . 0 = 1 ) | | ( PINA. 1 = 1 ) {
PORTC = 0XFF ;
delay_ms ( 500 ) ;
PORTC – 0X00 ;
delay_ms ( 500 ) ;
{
else {
PORTC = 0x00 ;
delay ms ( 500 ) ;
}
}
}
Apabila PINA.0 atau PINA.1 diberi input logika 1 maka PORTC akan mengeluarkan
logika 0xff kemudian logika 0x00 secara bergantian dengan selang waktu 0,5 s. dan
apabila bukan PINA.1 atau PINA.0 diberi logika 1 maka PORTC akan mengeluarkan
logika 0x00
2.5.1.7 Operator Bitwise
Operator logika ini bekerja pada level bit. Perbedaan operator bitwise dengan operator
logika adalah pada operator logika akan menghasilkan pernyataan benar atau salah
sedangkan pada operator bitwise akan menghasilkan data biner. Operator bitwise
[image:42.595.209.426.364.525.2]dapat dilihat pada tabel di bawah ini:
Tabel 2. 10 Operator Bitwise
Operator Keterangan
& Operator AND level bit
¦ Operator OR level bit
^ Operator XOR level bit
~ Operator NOT level bit
>> Operator geser kanan
<< Operator geser kiri
Contoh program:
# include < mega32 . h>
# include < delay . h>
void main ( void )
{
Unsigned char a, b, c;
DDRA = 0X00 ; // sebagai input
while ((1 )
{
a = 0x12;
b = 0x34;
c = a & b;
PORTC = c;
Delay_ms (500);
};
}
Penjelasan program:
a = 0x12 = 0001 0010
b = 0x32 = 0011 0000
---
a & b = 0001 0000
2.5.1.8 Operator penugasan dan operator majemuk
Operator ini digunakan untuk memberikan nilai atau manipulasi data sebuah variabel.
Operator penguasa dapat kita lihat pada tabel di bawah ini:
Tabel 2. 11 Operator Penugasan
Operator Keterangan
= Memberikan nilai variable
-= Mengurangi nilai variable
*= Mengalikan nilai variable
/= Membagi nilai variable
%= Memperoleh sisa bagi
Contoh :
a +- 2 ; artinya nilai variabel a berubah menjadi a – a + 2
a *= 4 ; artinya nilai varibel b berubah menjadi b = b* 4
selain operator penugasan diatas juga ada operator penugasan yang berkaitan dengan
operator bitwise seperti pada tabel dibawah ini:
Tabel 2. 12 Operator Penugasan
Operator Contoh Arti
&= x &= 1 Variabel x di AND kan dengan 1
¦= x ¦= 1 Variabel x di OR kan dengan 1
~= x ~= 1 x = ~ (1) ; x = 0xFE
^= x ^= 1 Variabel x di XOR kan dengan 1
<<= x <<= 1 Variabel x digeser kiri 1 kali
>>= x >>= 1 Variabel x digeser kanan 1 kali
2.5.1.9 Operator Penambahan dan Pengurangan
Operator ini digunakan untuk menaikkan atau menurunkan nilai suatu variabel dengan
selisih 11. operator ini dapat dilihat pada tabel di bawah ini:
Tabel 2. 13 Operator Penugasan
Operator Keterangan
++ Penambahan 1 pada variable
Contoh :
a = 1;
b = 2;
a ++ ;
b --;
Penjelasan:
Maka operator a++ akan mengubah variabel a dari satu menjadi 2, sedangkan operator
B akan mengubah variabel b dari 2 menjadi 1.
2.5.1.10 Pernyataan If dan If Bersarang
Pernyataan if digunakan untuk pengambilan keputusan terhadap 2 atau lebih
pernyataan dengan menghasilkan pernyataan benar atau salah. Jika pernyataan benar
maka akan di jalankan intruksi pada blok nya, sedangkan jika pernyataan tidak benar
maka intruksi yang pada blok lain yang di jalankan ( sesuai dengan arah programnya
).
Bentuk pernyataan IF adalah sebagai berikut:
1. Bentuk sederhana
If (kondisi) {
Pernyataan_1;
Pernyataan_2;
………..;
}
2. Pernyataan else
If (kondisi)
Pernyataan_1;
………..;
}
Else
{
Pernyataan_2;
………..;
}
3. If di dalam if
Pernyataan ini sering disebut nested if atau if bersarang. Salah satu
bentuknya adalah sebagai berikut:
If (kondisi1)
Pernyataan_1;
Else if (kondisi2)
Penyataan_2;
Else if (kondisi3)
Pernyataan_3;
Else
Pernyataan;
Contoh program
if (dtkey == 0x0a)
{
}
else
Data = dtkey;
sprintf(buf,"%x ",Data);
lcd_puts(buf);
2.5.1.11 Pernyataan Switch
Penyataan switch di gunakan untuk melakukan pengambilan keputusan terhadap
banyak kemungkinan. Bentuk pernyataan switch adalah sebagai berikut:
Switch (ekspresi)
{
Case nilai_1 : pernyataan_1;break;
Case nilai_2 : pernyataan_2;break;
Case nilai_3 : pernyataan_3;break;
…
Default : pernyataan_default;break;
}
Pada pernyataan switch, masing-masing pernyataan (pernyataan_1 sampai
dengan pernyataan _default) dapat berupa satu atau beberapa perintah dan tidak perlu
berupa blok pernyataan. Pernyataan_1 akan dikerjakan jika ekspresi bernilai sama
dengan nilai_1, pernyataan_2 akan dikerjakan jika ekspresi bernilai sama dengan
nilai_2, pernyataan _3 akan dikerjakan jika ekspresi bernilai sama dengan nilai_3 dan
seterusnya. Pernyataan_default bersifat opsional, artinya boleh dikerjakan apabila
nilai ekspresi tidak ada yang sama satupun dengan salah satu nilai_1, nilai_2. nilai_3
dan seterusnya. Setiap akhir dari pernyataan harus diakhiri dengan break, karena ini
digunakan untuk keluar dari pernyataan switch.
Contoh:
Switch ( PINA )
{
case 1: dtkey=0x1;break;
case 2: dtkey=0x4;break;
};
Pernyataan di atas berarti membaca port A, kemudian datanya ( PINA ) akan
dikeluarkan ke port C kemudian program keluar dari pernyataan switch tetapi jika
PINA bernilai 2 maka data 0x4 akan dikeluarkan ke port C kemudian program keluar
dari pernyataan switch.
2.5.1.12 Pernyataan While
Pernyataan while digunakan untuk mengulangi sebuah pernyataan atau blok
kenyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk
pernyataan while adalah sebagai berikut:
While (kondisi)
{
// sebuah pernyataan atau blok pernyataan
}
Jika pernyataan yang akan diulangi hanya sebuah pernyataan saja maka
tanda { dan } bisa dihilangkan.
Contoh:
Unsigned char a = 0
…* *
While (a < 10)
{
PORT=a;
a++;
}
Pernyataan di atas akan mengeluarkan data a ke port C secara berulang-ulang.
Setiap kali pengulangan nilai a akan bertambah 1 dan setelah nilai a mencapai 10
2.5.2 Software Code Vision AVR
Code Vision AVR merupakan salah satu software kompiler yang khusus digunakan
untuk mikrokontroler keluarga AVR, dan dari beberapa kompiler C yang digunakan ,
Code Vision AVR merupakan yang terbaik dibandingkan kompiler-kompiler yang
lain karena beberapa kelebihan yang dimiliki oleh CodeVision AVR antara lain :
a. Menggunakan IDE ( Integrated Development Environment )
b. Fasilitas yang disediakan lengkap ( mengedit program, mendownload program,
mengkompile program )
c. Mampu membangkitkan kode program secara otomatis dengan menggunakan
fasilitas CodeWizardAVR
d. Memiliki fasilitas untuk mendownload program langsung dari
CodeVisionAVR dengan menggunakan hardware khusus seperti
AtmelSTK500, Kanda System STK200+/300 dan beberapa hardware lain yang
telah didefinisikan oleh CodeVisionAVR
e. Memiliki fasilitas debugger sehingga dapat menggunakan software compiler
lain untuk mengecek kode Assembler nya contoh AVRStudio
f. Memiliki terminal komunikasi serial yang terintegerasi dalam
CodeVisionAVR sehingga dapat digunakan untuk membantupengecekan
program yang telah dibuat khususnya yang menggunakan fasilitas komunikasi
serial UART
Adapun tahap – tahap dalam menggunakan Code Vision AVR
a. Buka program Code Vision AVR dengan cara star menu → All Program →
CodeVision AVR→CodeVision AVR C Compiler
b. U ntuk membuat Project Baru gunakan File → New maka akan muncul 2
pilihan yaitu source atau project. Karena kita akan membuat project dulu maka
→ pili Project
c. Setelah itu akan muncul konfirmasi apakah kita akan menggunakan fasilitas
CodeWizardAVR atau tidak. Pilih Yes jika ingin menggunakan fasilitas
CodeWizardAVR atau No jika tidak. Fasilitas CodeWizardAVR digunakan
telah tersedia. Untuk project pertama ini kita akan menuliskan kode program
sendiri sehingga kita pilih No
d. Tuliskan dan simpan nama file project Anda. Sebagai contoh kita simpan
dengan nam projectku.prj
e. Pilih Tab C Compiler kemudian pilih Chip sesuai dengan IC mikrokontroler
yang kita pakai serta atur Clock sesuai dengan frekuensi kristal yang
digunakan
f. Sampai disini Anda telah selesai membuat file project baru dengan nama
projectku.prj. Langkah selanjutnya adalah Anda membuat file baru untuk
menuliskan listing program yaitu dengan cara : File → New → pilih Source.
Setelah itu akan muncul jendela baru yang dapat kita gunakan untk menulis
program. Sebagai contoh dalam program pertama ini kita akan tuliskan listing
program
#include <mega8535.h>
void main ( void )
{
DDRC=0xFF
PORTC=0x0F
}
Kemudian setelah itu kita simpan dengan cara File → Save dan diberi nama
Led.c.
g. Selanjutnya kita harus memasukan file program ini( led.c) kedalam file project
yang telah kita buat sebelumnya ( projectku.prj ) dengan cara :
Project → Configure → pilih tab Files → Add → pilih file led.c → Open,
sekarang file program led.c yang anda tuliskan telah masuk dalam project.
h. Langkah berikutnya adalah proses kompile. Untuk mengkompile program
yang telah kita tuliskan tadi dilakukan dengan cara : Project → Make
Informasi diatas akan muncul pada akhir proses kompilasi dari informasi
diatas kita dapat mengetahui Apabila dalam proses kompile ini terdapat
beberapa eror, maka kita harus mencari sumber error tersebut kemudian
membetulkannya dan mengkompilenya lagi sampai tidak terdapat error lagi,
jika proses kompile berjalan dengan baik maka akn muncul beberpa file baru
file dengan eksistensi *hex inilah yang akan didownload kedalam
mikrokontroler. Langkah berikut dan seterusnya adalah proses download
program ke mikrokontroler
i. Buka Program CodeVisionAVR Chip Programmer, caranya adalah tools I
Chip Programmer, jangan lupa pastikan setting programmernya pada modul
STK200
j. Buka file program yang akan didownload ke mikrokontroler. Caranya adalah
File I Load FLASH kemudian pilih nama file led.hex
k. Download program ke mikrokontroler. Caranya adalah program I All
l. Sekarang Anda bisa amati bagaiman menyalanya lampu LED yang terhubung
ke PORTC, jika 4 buah menyala dan 4 buah mati maka project pertama Anda
36 BAB 3
RANGKAIAN PADA SISTEM PENGENDALI TETESAN CAIRAN INFUSE PADA PASIEN
3.1. Perancangan Rangkaian Power Supplay (PSA)
3.1.1 Cara Kerja Rangkaian
Trafo step down merupakan Trafo system yang berfungsi untuk menurunkan tegangan dari 220 Volt AC menjadi 12 Volt AC. Kemudian 12 Volt AC akan disearahkan dengan menggunakan rangkaian dijembatan diode, selanjutnya 12 Volt DC akan diratakan oleh Kapasitor 220 µ F. Regulator tegangan 5 Volt ( LM7805CT) digunakan agar keluaran yang dihasilkan tetap 5 Volt walaupun terjadi perubahan pada tegangan masuknya. LED hanya sebagai indicator apabila PSA dinyalakan. Tegangan 12 Volt DC langsung diambil dari keluaran jembatan dioda penyearah.
3.1.2 Fungsi Rangkaian
37 Gambar 3.1. Rangkaian Power Supplay (PSA)
Input rangkaian ini adalah sebuah adaptor 12 volt. Regulator tegangan 5 volt (7805) digunakan untuk menghasilkan keluaran 5 volt. Tegangan 12 volt DC langsung diambil dari adaptor.
3.1.3 Pengujian Rangkaian
[image:53.595.211.387.496.555.2]Pengujian pada bagian rangkaian power supplay ini dapat dilakukan dengan mengukur tegangan dari setiap pin pada IC regulator 7805 dengan menggunakan volt meter digital. Titik pengukuran ditunjukkan pada gambar berikut ini:
Gambar 3.2. IC Regulator 7805
Dari hasil pengukuran diperoleh hasil sebagai berikut:
Tabel 3.1. Tabel tegangan IC 7805 Tegangan IC7805
PIN V(Volt) 7805
1
2
38
1 12
2 0
3 4.89
3.2. Perancangan Rangkaian Mikrokontroler ATmega8535
3.2.1 Cara Kerja Rangkaian
Mikrokontroler ini memiliki 32 port I/O, yaitu port A, port B, port C dan port D. Pin 33 sampai 40 adalah Port A yang merupakan port ADC, dimana port ini dapat menerima data analog. Pin 1 sampai 8 adalah port B. Pin 22 sampai 29 adalah port C. Dan Pin 14 sampai 21 adalah port D. Pin 10 dihubungkan ke sumber tegangan 5 volt. Dan pin 11 dihubungkan ke ground. Rangkaian mikrokontroler ini menggunakan komponen kristal sebagai sumber clocknya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroler dalam mengeksekusi suatu perintah tertentu.
3.2.2 Fungsi Rangkaian
39 Gambar 3.3. Rangkaian mikrokontroller ATmega8535
3.2.3 Pengujian Rangkaian
Pada pengujian mikrokontroller ATmega8535 ini dilakukan percobaan yang sifatnya sederhana tapi dapat menunjukkan bekerja tidaknya mikrokontroller ATmega8535 tersebut. Percobaan tersebut digunakan untuk menghidupkan beberapa LED secara bergantian. Percobaan ini dilakukan pada I/O port (Port A). Untuk menghidupkan LED tersebut dilakukan langkah sebagai berikut:
a. software CodeVisionAVR (terdapat Shortcut pada Desktop). b. Pilih menu File New dan pilih Project kemudian tekan OK.
[image:55.595.234.381.591.710.2]40 c. Kemudian pilih Yes saat ada pilihan menggunakan CodeWizardAVR, seperti
[image:56.595.221.410.339.595.2]tampak pada gambar berikut.
Gambar 3.5. Tampilan Confirm
d. Pada settingan CodeWizardAVR, atur konfigurasi chip menggunakan ATmega8535 sesuai dengan yang ada pada modul, dengan nilai clock 11,059200 MHz.
Gambar 3.6. Tampilan Setingan Clock Mikrokontroller
41 Gambar 3.7. Tampilan Settingan PORT
f. Setelah itu, pilih menu File Generate, Sava and Exit, dan simpan file dengan nama sesuai keinginan uji.
Gambar 3.8. Tampilan Menu File CodeVisionAVR
g. Akan muncul file .c yang akan digunakan untuk pemrograman. Selanjutnya dituliskan program sebagai berikut:
while (1) {
// Place your code here PORTA=240
[image:57.595.231.394.403.549.2]42 PORTA=15
delay_ms(100); };
}
[image:58.595.247.386.503.715.2]Jika program tersebut dijalankan, maka LED akan hidup dan mati secara bergantian seperti yang ditunjukkan dalam tabel berikut:
Tabel 3.2. Truth Table LED
LED 1 LED 2 LED 3 LED 4 LED 5 LED 6 LED 7 LED 8
Tahap 1 ON ON ON ON OFF OFF OFF OFF
Tahap 2 OFF OFF OFF OFF ON ON ON ON
f. Untuk compile program, dapat menggunakan tombol F9 atau meng-klik icon
pada toolbar. Jika program telah berjalan sesuai dengan yang dikehendaki, maka system minimum mikrokontroller ATmega8535 telah berjalan dengan baik. Selanjutnya dilakukan pengukuran pada masing masing pin dari mikrokontroller ATmega8535. dari hasil pengukuran didapatkan hasil sebagai berikut:
Tabel 3.3. Tabel Tegangan PIN Mikrokontroller
Tegangan PIN Mikrokontroller PIN V (Volt)
1 0.41
2 0.41
3 0.41
4 0.41
5 0.02
6 0.02
43
8 0.34
9 4.85
10 4.88
11 0.01
12 0.35
13 0.8
14 4.89
15 0.01
16 0.01
17 0.01
18 0.01
19 0.01
20 4.79
21 4.72
22 4.72
23 4.72
24 4.72
25 4.85
26 4.85
27 4.85
28 4.85
29 4.89
30 0.01
31 4.89
32 3.37
33 1.14
34 1.13
35 0.91
44
37 1.13
38 3.51
39 1.15
40 0.18
3.3. Rangkaian Display LCD
3.3.1 Cara kerja Rangkaian
[image:60.595.247.387.116.202.2]Rangkaian display LCD ini berfungsi untuk menampilkan jumlah tetesan dari infuse. Rangkaian display LCD ditunjukkan pada gambar berikut ini :
Gambar 3.9. Rangkaian Display LCD
LCD terdiri dari sejumlah memory yang digunakan untuk display. Semua teks yang kita tuliskan ke LCD adalah disimpan didalam memory ini, dan LCD secara berurutan membaca memory ini untuk menampilkan teks ke LCD itu sendiri.
[image:60.595.151.480.386.520.2]45 Pada peta memori tersebut, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamat 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya. Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor. Sebagai contoh, kita ingin menampilkan kata ”World” pada baris ke dua pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata ”World” pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM.
Tabel 3.4. Alamat Memori DDRAM
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 1 A A A A A A A
Catatan:
A : Alamat RAM yang akan dipilih
Sehingga alamat RAM LCD adalah 000 0000 S/D 111 1111 b atau 00 s/d 7Fh
3.3.2 Fungsi Rangkaian
46 3.3.3 Pengujian Rangkaian
[image:62.595.237.429.255.493.2]Pada tahap ini dilakukan percobaan untuk mengaktifkan LCD system. Pengaktifan LCD ini dilakukan dengan cara menampilkan beberapa karakter pada LCD. Untuk mengaktifkan LC