BAB 3 PERANCANGAN DAN IMPLEMENTASI...

32
20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan tentang perancangan dan implementasi sistem yang meliputi metode pengembangan perangkat stimulasi arus mikro, perancangan dan implementasi alat stimulasi OpenMCS, perancangan sinyal stimulasi arus mikro, dan perancangan dan implementasi program stimulasi μStimS. Keseluruhan sistem yang dirancang dan direalisasikan pada penelitian ini adalah seperti yang terlihat pada gambar 3.1. Gambar 3. 1 Diagram blok rancangan OpenMCS dan μStimS

Transcript of BAB 3 PERANCANGAN DAN IMPLEMENTASI...

Page 1: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

20

BAB 3

PERANCANGAN DAN

IMPLEMENTASI SISTEM

Pada bab ini akan diuraikan tentang perancangan dan implementasi sistem yang

meliputi metode pengembangan perangkat stimulasi arus mikro, perancangan dan

implementasi alat stimulasi OpenMCS, perancangan sinyal stimulasi arus mikro,

dan perancangan dan implementasi program stimulasi µStimS. Keseluruhan

sistem yang dirancang dan direalisasikan pada penelitian ini adalah seperti yang

terlihat pada gambar 3.1.

Gambar 3. 1 Diagram blok rancangan OpenMCS dan µStimS

Page 2: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

21

3.1 METODE PENGEMBANGAN PERANGKAT STIMULASI ARUS MIKRO

Pengembangan perangkat stimulasi arus mikro dilakukan dengan melakukan

sejumlah perancangan prototip perangkat stimulasi arus mikro berdasarkan

spesifikasi-spesifikasi alat stimulasi arus mikro yang ada di pasaran. Perbandingan

spesifikasi rancangan OpenMCS dan µStimS dengan spesifikasi produk lain

yang terdapat di pasaran ditunjukkan pada tabel 3.1.

Tabel 3. 1 Perbandingan fitur OpenMCS dan µStimS dengan Alpha-Stim 100 dan Trio Stim[6,7,8,9,10]

No. Fitur OpenMCS & µStimS Alpha‐Stim 100 Trio Stim (MCS)

1 Arus listrik 0 ‐ 1000 µA 10 ‐ 600 µA 11 ‐ 750 µA

2 Pengaturan arus listrik Setiap saat Setiap saat setiap saat

3 Bentuk gelombang 5 jenis (lihat rincian)

Persegi asimetrik bipolar

Persegi konstan bipolar

4 Frekuensi

0,25 ‐ 1000 Hz (tergantung jenis

gelombang) 0,5; 1,5; 100 Hz 0,3 ‐ 400 Hz

5 Pengaturan frekuensi Setiap saat Setiap saat setiap saat

6 Lebar pulsa 1 ‐ 1000 ms 50% duty cycle 1 ‐ 250 ms

7 Pengaturan lebar pulsa setiap saat tidak ada setiap saat

8 Pengaturan waktu terapi kontinyu

10, 20, 60 menit dan kontinyu 30 menit

9 Pengaman arus listrik berlebih ada tidak disebutkan ada

10

Pengaman muatan listrik berlebih ada tidak ada ada

11

Pengaman arus listrik rata‐rata berlebih ada tidak ada ada

12 Tampilan LCD ada ada ada

13 Parameter tampilan

Petunjuk, arus listrik, frekuensi, lebar pulsa, peringatan keamanan pasien

Petunjuk, timer, simbol kapasitas

baterai

Petunjuk, arus listrik, frekuensi, lebar pulsa, timer

14 Catu daya Baterai kering 12V

rechargeable Baterai 9V disposable

Baterai 9V disposable

15 Sistem terbuka tertutup tertutup

16 Harga Rp 800.000,‐ (biaya

pembuatan) $ 895,‐ $ 439,‐

Page 3: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

22

Pada tabel 1 rancangan perangkat stimulasi arus mikro OpenMCS dan µStimS

dibuat diperbandingkan dengan perangkat stimulasi arus mikro dari produk yang

paling umum digunakan sebagai perangkat untuk penelitian terapi arus mikro,

yaitu Alpha-Stim 100. Pembanding kedua adalah produk Trio Stim yang

memiliki tiga fungsi, yaitu mampu sebagai alat stimulasi arus mikro (MCS),

TENS, dan alat stimulasi elektrik otot (EMS). Untuk kesesuaian dengan tujuan

pengembangannya, yaitu sebagai perangkat stimulasi arus mikro untuk penelitian

medis tingkat klinis, maka OpenMCS dan µStimS dirancang sedemikian rupa

sehingga mempunyai karakteristik sebagai berikut.

1. Mampu memberikan berbagai sinyal stimulasi dalam rentang yang luas

untuk memfasilitasi penelitian terapi elektrik arus mikro

2. Sinyal stimulasi berupa sumber arus listrik terkendali tegangan sehingga

dapat diatur nilai kuat arusnya dan selama memberikan stimulasi, arus

listrik tidak berubah jika terjadi perubahan hambatan tubuh

3. Terdapat tampilan parameter besaran sinyal yang sedang dikeluarkan

berupa arus listrik, frekuensi, dan lebar pulsa

4. Perangkat stimulasi arus mikro dapat dimodifikasi secara software dengan

menuliskannya kepada mikrokontroler untuk menyesuaikan sinyal

stimulasi sesuai yang dibutuhkan

5. Mempunyai sistem pengaman atas batas-batas maksimum terapi arus

mikro, yang meliputi arus listrik maksimum, arus listrik rata-rata

maksimum, dan muatan listrik maksimum

6. Pengembangan sistem menggunakan komponen yang tersedia secara lokal

7. Bersifat portabel sehingga dapat digunakan dimana saja

8. Mudah dalam penggunaannya karena hanya menggunakan 7 tombol dan

disertai dengan petunjuk penggunaan

9. Sistem yang dikembangkan bersifat sistem terbuka (Open System)

sehingga dapat dikembangkan oleh siapa saja untuk menunjang

perkembangan metode terapi elektrik arus mikro.

Page 4: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

23

Pengembangan OpenMCS dan µStimS dilakukan dalam tiga tahap yaitu:

1. Pengembangan fungsi sinyal OpenMCS, meliputi perancangan dan

realisasi bagian utama OpenMCS dan ujicoba fungsi OpenMCS dalam

membangkitkan sinyal arus listrik secara sederhana yang dapat

dikendalikan oleh pengguna

2. Pengembangan sistem proteksi OpenMCS dan µStimS, meliputi

perancangan dan realisasi modul sistem proteksi secara hardware pada

OpenMCS dan penambahan algoritma proteksi dan peringatan pada

program µStimS

3. Penyempurnaan OpenMCS dan µStimS, meliputi penyempurnaan hasil-

hasil ujicoba sebelumnya yaitu ujicoba fungsi sinyal dan ujicoba sistem

proteksi

3.2 PERANCANGAN DAN IMPLEMENTASI ALAT STIMULASI OpenMCS

Bagian ini akan menguraikan secara rinci proses perancangan dan implementasi

alat stimulasi arus mikro OpenMCS. Seperti telah dijelaskan di awal,

pengembangan OpenMCS meliputi tiga tahap yaitu:

1. Tahap pengembangan fungsi sinyal

2. Tahap pengembangan sistem proteksi, dan

3. Tahap penyempurnaan sistem.

3.2.1 PERANCANGAN DAN IMPLEMENTASI FUNGSI SINYAL OpenMCS

Perancangan fungsi sinyal OpenMCS bertujuan untuk menghasilkan prototip alat

stimulasi arus mikro yang mampu membangkitkan sinyal arus listrik secara benar.

Kriteria-kriteria yang dipertimbangkan pada perancangan ini adalah sebagai

berikut.

Page 5: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

24

1. Alat mampu mengeluarkan sinyal berupa sumber arus yang dapat

dikendalikan oleh tegangan dari suatu konverter tegangan ke arus listrik

2. Besar tegangan yang mengendalikan arus listrik merupakan suatu

konverter digital ke analog (DAC) dengan keluaran bipolar yang memiliki

ketelitian 8 bit untuk fase positif dan 8 bit untuk fase negatif.

3. Masukan rangkaian DAC menggunakan keluaran dari mikrokontroler PIC

16F877A dengan portC untuk mengatur tegangan positif dan portD untuk

mengatur tegangan negatif

4. Terdapat masukan dari pengguna menggunakan saklar tekan push on

untuk mengatur nilai kuat arus listrik, frekuensi, dan lebar pulsa sinyal

yang dihasilkan

5. Terdapat tampilan parameter sinyal yang sedang dikeluarkan oleh alat

Berdasarkan pertimbangan-pertimbangan di atas, hasil rancangan fungsi sinyal

OpenMCS menjadi seperti pada gambar 3.2.

Gambar 3. 2 Diagram blok perancangan fungsi sinyal OpenMCS

Page 6: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

25

Pada rancangan rangkaian fungsi sinyal OpenMCS, terdapat tiga modul utama

yaitu:

1. Rangkaian pemroses data sinyal terapi

2. Rangkaian DAC 16 bit dengan keluaran 2 fase

3. Rangkaian konverter tegangan ke arus listrik

3.2.1.1 Rangkaian pemroses data sinyal terapi

Rangkaian pemroses data sinyal terapi adalah bagian yang berfungsi

menerjemahkan data sinyal yang ada pada program µStimS. Rangkaian ini

menggunakan mikrokontroler PIC 16F877A yang difungsikan untuk

membangkitkan tegangan keluaran 8 bit pada port C dan 8 bit pada port D. Port C

berfungsi sebagai output pembentuk sinyal fase positif, sedangkan port D

berfungsi sebagai pembentuk sinyal fase negatif. Keluaran dari port C dan port D

yang telah ditetapkan sebagai output selanjutnya dihubungkan ke rangkaian DAC

16 bit dengan keluaran 2 fase. Kerja pemrosesan data sinyal terapi merupakan

interaksi antara software µStimS dan internal mikrokontroler PIC 16F877A itu

sendiri.

3.2.1.2 Rangkaian DAC 16 bit dengan keluaran 2 fase

Dalam rancangan fungsi sinyal OpenMCS, rangkaian DAC dibuat dengan

menggunakan penguat penjumlah dan pengurang tegangan berbasis Op-Amp

seperti pada gambar 3.3. Rangkaian DAC menggunakan penguat penjumlah dan

pengurang bekerja dengan menjumlahkan arus listrik yang melalui tiap-tiap

resistor yang terhubung pada V+ dan V- Op-Amp. Nilai resistor disusun

menggunakan pola 20 hingga 27 kali nilai resistor terkecil. Dengan demikian

proses penjumlahan dan pengurangan akan berlangsung seperti cara kerja DAC 8

bit.

Page 7: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

26

Rangkaian DAC seperti itu mempunyai respon frekuensi yang sangat tinggi dan

harganya murah. Tetapi rangkaian ini memiliki kelemahan pada keakuratan

resistor yang digunakan dan tidak praktis karena menggunakan banyak

komponen. Dengan metode penjumlahan arus listrik yang pada tiap-tiap resistor

mempunyai tingkat kesalahan 1%, hasil keluaran yang didapat dapat mengalami

kesalahan mencapai 3,5%.

Gambar 3. 3 Skema rangkaian DAC menggunakan penguat penjumlah dan pengurang

3.2.1.3 Rangkaian konverter tegangan ke arus listrik

Konverter tegangan ke arus listrik merupakan rangkaian yang memberikan

keluaran arus listrik yang dikendalikan oleh tegangan masukan. Rangkaian ini

disebut juga sebagai penguat transkonduktansi. Gambar 3.4 menunjukkan skema

rangkaian konverter tegangan ke arus listrik yang digunakan untuk

mengendalikan arus listrik dengan rentang yang lebar.

R235k

R281k

R252k4

R2210k

R2120k

R2040k

R1940k

R17100k

3

26

74

15

U

LF411

R32470

R29470

R95k

R141k

R112k4

R810k

R720k

R640k

R540k

R3100k

C

56p

R26500R27500

R24100

R1840k

R1640k

R1520k

R12500R13500

R10100

R440k

R240k

R120k

R30220

R31220

Page 8: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

27

Rangkaian konverter tegangan ke arus listrik seperti pada gambar 3.4 dipilih

karena untuk spesifikasi alat stimulasi arus mikro membutuhkan sistem yang

mampu mengendalikan arus listrik secara presisi dalam rentang yang lebar, yaitu

dari 0 µA hingga 1000 µA. Rangkaian pada gambar 3.4 bekerja dengan

memberikan tegangan referensi yang diberikan pada input rangkaian. Tegangan

referensi ini merupakan tegangan keluaran dari rangkaian DAC. Dengan adanya

tegangan referensi pada titik V+ Op-Amp, maka tegangan pada V- Op-Amp juga

akan bernilai sama dengan tegangan referensi. Resistor R1 merupakan penentu

nilai arus yang mengalir dari Output Op-Amp ke ground. Dengan demikian

berapapun nilai RB, yaitu hambatan tubuh, yang diberikan, arus listrik yang

mengalir akan selalu tetap selama tegangan output Op-Amp yang diperlukan

untuk memberikan arus listrik yang diinginkan tidak melebihi nilai tegangan catu

daya Op-Amp dikurangi 3,8 volt.

Gambar 3. 4 Skema rangkaian konverter tegangan ke arus listrik

Realisasi rangkaian konverter tegangan ke arus listrik yang digunakan pada

ujicoba fungsi sinyal OpenMCS adalah menggunakan Op-Amp OPA 2544 yang

mampu memberikan keluaran hingga 31,2 volt. OPA 2544 merupakan dual Op-

Amp yang terdiri dari Op-Amp A dan B. Selain itu OPA 2544 mempunyai slew

3

21

84

U1:A

OPA2544

R11k

RB25kC

56pF

InputR2100

+VCC-VCC

Out

Page 9: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

28

rate sebesar 8 V/µs dan dilengkapi dengan thermal shutdown protection yang

secara otomatis akan melakukan shutdown fungsi apabila temperaturnya melebihi

155 °C. Dalam rangkaian konverter tegangan ke arus listrik, hanya dipakai

OPA2544 bagian A, sedangkan bagian B digunakan sebagai bagian dari rangkaian

sistem proteksi. Untuk menghasilkan arus listrik dari 0 µA hingga 1000 µA

dengan tegangan masukan 0 V hingga 1 V digunakan perhitungan sebagai berikut.

(3.1)

(3.2)

(3.3)

Pada realisasinya, Op-Amp OPA 2544 diberi tegangan catu daya sebesar ±34,5

volt, sehingga tegangan keluaran maksimum yang dapat diberikan adalah 30,7

volt. Jika arus keluaran sudah ditentukan maksimum 1 mA dari nilai tegangan

masukan maksimum 1 volt dan nilai R1 sebesar 1 kΩ, maka nilai RB harus bernilai

kurang dari 30,7 kΩ supaya arus listrik yang dikeluarkan tidak mengalami

penurunan. Nilai hambatan 30,7 kΩ ini sudah jauh melebihi batas nilai hambatan

permukaan kulit tubuh manusia dalam kondisi basah yang berkisar antara 2 kΩ

hingga 20 kΩ.

3.2.2 PERANCANGAN DAN IMPLEMENTASI SISTEM PROTEKSI OpenMCS

Rangkaian sistem proteksi merupakan rangkaian yang berfungsi untuk melindungi

rangkaian dari kerusakan sekaligus melindungi pasien dari bahaya yang mungkin

terjadi akibat kesalahan dalam penggunaan alat. Sistem proteksi disusun

menggunakan Op-Amp OPA2544 bagian B yang berfungsi sebagai komparator.

Cara kerja rangkaian sistem proteksi terletak pada fungsi komparator yang

membandingkan tegangan masukan yang berasal dari input (Vo konverter V ke I)

dan tegangan masukan dari keluaran rangkaian DAC. Dengan penyesuaian

tegangan yang dilakukan oleh R4 dan R5 serta yang dilakukan oleh penguat

Page 10: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

29

noninverter U1, maka sistem proteksi mengharapkan tegangan V+ pada OPA2544

selalu lebih kecil daripada tegangan V- OPA2544. Kesalahan didefinisikan apabila

terjadi keadaan tegangan V+ lebih dari V- pada OPA2544. Apabila keadaan ini

terjadi, maka tegangan keluaran OPA2544 akan naik menjadi 30,7 volt. Tegangan

ini selanjutnya akan mengaktifkan IC 4066 yang berfungsi sebagai saklar

elektronik yang menghubungkan port B.1 dan port B.2 mikrokontroler PIC

16F877A ke ground. Proses ini akan menyebabkan program µStimS melakukan

interupsi yang memaksa program µStimS untuk mengulang pelaksanaan tes

elektroda. Skema rangkaian sistem proteksi ditampilkan pada gambar 3.5.

Gambar 3. 5 Skema rangkaian sistem proteksi

3.2.3 PENYEMPURNAAN SISTEM OpenMCS

Tahap ketiga dari pengembangan alat stimulasi arus mikro OpenMCS adalah

penyempurnaan sistem. Setelah melalui realisasi fungsi sinyal dan sistem proteksi,

beberapa kekurangan yang didapatkan dari hasil ujicoba dua tahap sebelumnya,

disempurnakan pada tahap ini. Untuk perangkat kerasnya (OpenMCS), modul

yang harus disempurnakan adalah pada rangkaian DAC 16 bit dengan keluaran 2

fase.

5

67

84

U2:B

OPA2544

R433k

R55k1

X 11Y10

C12

U3:B4066

R75k1

R827k

X1 Y 2

C13

U3:A4066

3

26

74 1 5

U1

LF411

R21k

R33k3C

56pF

R6100

+35V -35V

R11k

Dari DAC

+VCC

Input

Ke PortB.1

Ke PortB.2

Page 11: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

30

Pada pengembangan fungsi sinyal, rangkaian DAC yang digunakan adalah

menggunakan penguat penjumlah dan pengurang. Rangkaian ini mempunyai

kesalahan mencapai 3,5%. Padahal kunci untuk membangkitkan sinyal arus listrik

secara tepat adalah pada ketepatan rangkaian DAC dalam mengubah data

tegangan digital menjadi tegangan analog sebelum dikonversi menjadi arus listrik.

Dengan demikian, untuk meningkatkan performa sistem, maka rangkaian DAC

perlu disempurnakan.

Penyempurnaan rangkaian DAC dilakukan dengan mengganti susunan resistor

yang terhubung ke penguat penjumlah dan pengurang dengan komponen IC

DAC0808. Rangkaian DAC 16 bit dengan keluaran 2 fase terdiri dari dua buah

komponen DAC 8 bit DAC0808 yang pada keluarannya dihubungkan ke sebuah

Op-Amp LF411 yang disusun sebagai penguat penjumlah dan pengurang.

Rangkaian DAC yang diimplementasikan pada penyempurnaan OpenMCS

adalah sebagaimana yang ditampilkan pada gambar 3.6.

Komponen DAC 0808 adalah suatu konverter digital ke analog 8 bit dengan

keluaran arus listrik yang dapat bekerja secara cepat dengan slew rate arus 8

mA/µs dan memiliki keakuratan yang tinggi dengan tingkat kesalahan maksimum

± 0,19 %. Prinsip kerja DAC 0808 dalam mengkonversi sinyal digital ke analog

adalah berdasarkan formula 3.4.

dimana (3.4)

Page 12: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

31

Gambar 3. 6 Skema rangkaian DAC 16 bit dengan keluaran 2 fase

Pada rangkaian DAC ini, RREF adalah R3 dan R6 yang masing-masing bernilai 10

kΩ. Dengan demikian pada saat maksimum dengan VREF = +VCC yaitu sebesar 5

volt, nilai A1 sampai A8 akan bernilai 1 yang akan menyebabkan Io bernilai 0,5

mA.

Arus listrik keluaran DAC 0808 selanjutnya masuk ke dalam penguat penambah

dan pengurang berbasis Op-Amp LF411. LF411 merupakan Op-Amp yang

mempunyai slew rate yang tinggi yaitu 10 V/µs. Dalam kerjanya sebagai penguat

penambah dan pengurang, Op-Amp bekerja mirip dengan penguat diferensial,

yaitu menghitung selisih antara tegangan yang masuk ke V- Op-Amp dan

tegangan yang masuk ke V+ Op-Amp. Dengan prinsip kerja tersebut tegangan

keluaran Op-Amp adalah sesuai dengan formula 3.5.

(3.5)

Dengan demikian, tegangan maksimum yang dapat dikeluarkan oleh Op-Amp

LF411 pada rangkaian DAC ini adalah ± 1 volt. Penambahan kapasitor C3 sebesar

56 pF hanya bertujuan untuk memperhalus sinyal keluaran.

Bagian-bagian utama penyusun OpenMCS meliputi rangkaian pemroses data

sinyal terapi, rangkaian DAC dengan keluaran 2 fase, rangkaian konverter

A26

VREF+ 14

VEE 3

A15

IOUT 4

A37 A48 A59 A610 A711 A812

VREF- 15

COMP 16

U1

DAC0808

A26

VREF+ 14

VEE 3

A15

IOUT 4

A37 A48 A59 A610 A711 A812

VREF- 15

COMP 16

U2DAC0808

R510k

R210k

3

26

74 1 5

U3

LF411

R4470

R1470

R72k

C1100nF

C3

56pF

C2100nF

R610k

R310k

R82k

Out

+VCC-VCC

Dari Port C

Dari Port D

Page 13: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

32

tegangan ke arus listrik, dan rangkaian sistem proteksi. Bagian-bagian lain

merupakan bagian pendukung, yang meliputi display dan masukan pengguna.

Untuk menampilkan parameter sinyal arus mikro yang dikeluarkan oleh

OpenMCS digunakan LCD 16 x 2. Sedangkan sebagai interface antara alat

OpenMCS dan pengguna digunakan 7 buah saklar tekan, masing-masing

berfungsi untuk:

- Menaikkan amplitudo

- Menurunkan amplituo

- Menaikkan frekuensi

- Menurunkan frekuensi

- Menaikkan lebar pulsa

- Menurunkan lebar pulsa

- Melakukan pemilihan sinyal stimulasi

Gambaran realisasi OpenMCS setelah disempurnakan ditunjukkan pada gambar

3.7. Skema rangkaian OpenMCS ditampilkan pada lampiran A.2.

Gambar 3. 7 Diagram blok realisasi OpenMCS

Page 14: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

33

Gambar 3. 8 Foto hasil realisasi OpenMCS

3.3 PERANCANGAN SINYAL STIMULASI ARUS MIKRO

Berdasarkan referensi dari berbagai sumber, sinyal stimulasi arus mikro

mempunyai bentuk yang lebih sederhana daripada variasi bentuk sinyal stimulasi

yang lain. Pada metode stimulasi seperti TENS, pulsa yang berikan merupakan

pulsa impuls (pulsa paku) yang dalam modulasinya dapat digabungkan dengan

berbagai bentuk sinyal.[22] Pada metode stimulasi arus mikro, bentuk sinyal tidak

sebanyak pada TENS karena stimulasi arus mikro tidak bekerja dengan pulsa

paku, melainkan menggunakan pulsa dengan durasi (lebar pulsa) yang panjang

hingga mencapai 1 detik. Dengan demikian, bentuk pulsa yang bermacam-macam

tidak terlalu berpengaruh pada stimulasi arus mikro. Parameter penting yang

dipertimbangkan pada stimulasi arus mikro adalah sebagai berikut.

• Polaritas sinyal (unipolar, bipolar)

• Amplitudo (arus listrik maksimum)

• Frekuensi

• Lebar pulsa

• Arus listrik rata-rata

• Muatan listrik rata-rata

• Pola kenaikan sinyal[4,6,8,9,10,12,13]

Page 15: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

34

Dengan memperhatikan parameter-parameter di atas, peneliti memutuskan untuk

merancang sinyal-sinyal utama stimulasi arus mikro yaitu:

1. Persegi bipolar ½ gelombang berdelay (persegi 1)

2. Persegi bipolar berdelay (persegi 2)

3. Persegi bipolar penuh (persegi 3)

4. Ramp bipolar ½ gelombang berdelay (ramp 1)

5. Ramp bipolar berdelay (ramp 2)[4,6,8,9,10,12,13]

Kelima bentuk sinyal tersebut merupakan sinyal-sinyal bipolar karena dalam

elektroterapi, mayoritas jenis sinyal yang baik digunakan adalah yang berjenis

bipolar.[4,6,8] Tampilan bentuk – bentuk sinyal yang direalisasikan dalam

penelitian ini akan ditunjukkan pada uraian realisasi program µStimS. Selain

bentuk sinyal stimulasi, parameter rancangan lain yang ditetapkan oleh peneliti

dalam perancangan sinyal stimulasi arus mikro adalah sebagai berikut.

1. Amplitudo, berkisar antara 0 hingga 1000 µA

2. Frekuensi, berkisar antara 0,25 hingga 500 Hz

3. Lebar pulsa, berkisar antara 1 hingga 1000 ms

3.4 PERANCANGAN DAN IMPLEMENTASI PROGRAM STIMULASI µStimS

Program stimulasi arus mikro µStimS merupakan program yang berfungsi untuk

mengendalikan segala sesuatu yang berhubungan dengan perangkat stimulasi arus

mikro secara software. Fungsi-fungsi tersebut meliputi:

• Memberikan penjelasan jenis sinyal dan parameternya pada display

• Menyediakan data sinyal terapi arus mikro

• Menjalankan fungsi interupsi

• Sebagai algoritma sistem proteksi secara perangkat lunak

Page 16: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

35

Pemrograman algoritma µStimS dilakukan dengan menggunakan software

MicroCode Studio – PICBASIC PRO versi 2.46 yang bersifat bebas untuk tujuan

nonkomersial. Program µStimS terdiri dari program utama dan program

pembangkit sinyal. Program utama berfungsi untuk:

• Mengendalikan program-program pembangkit sinyal melalui interupsi

eksternal

• Mengatur tampilan informasi pada LCD

• Mengatur tampilan parameter sinyal pada LCD

• Mengatur tampilan peringatan kepada pengguna pada LCD

• Melakukan perhitungan parameter sinyal sebagai sistem proteksi secara

software

Program Utama

Program Pembangkit

Sinyal Persegi 1

Program Pembangkit

Sinyal Persegi 2

Program Pembangkit

Sinyal Persegi 3

Program Pembangkit

Sinyal Ramp 1

Program Pembangkit

Sinyal Ramp 2

Gambar 3. 9 Struktur program µStimS

Page 17: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

36

Gambar 3. 10 Diagram alir program µStimS

Gambar 3.8 menunjukkan struktur program µStimS. Sedangkan realisasi program

µStimS bekerja berdasarkan algoritma yang diilustrasikan pada gambar 3.9.

Penjelasan akan kerja tiap bagian pada algoritma ini akan dijelaskan secara

langsung menggunakan daftar program yang diimplementasikan sebagai program

µStimS. Deretan penulisan program µStimS secara lengkap disertakan pada

lampiran A.4.

Page 18: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

37

Penjelasan masing-masing bagian dari program µStimS adalah sebagai berikut.

LCDOUT $FE,1,"TERAPI ELEKTRIK" LCDOUT $FE,$c0,"ARUS MIKRO" PAUSE 1500

LCDOUT adalah pernyataan pda PIC Basic Pro untuk menampilkan karakter ke

dalam LCD. Sedangkan PAUSE adalah pernyataan yang digunakan untuk

melakukan penundaan (delay) dalam hitungan milidetik. Tiga baris pernyataan di

atas berfungsi untuk menampilkan tulisan “TERAPI ELEKTRIK” pada baris

pertama LCD dan “ARUS MIKRO” pada baris kedua LCD. Keduanya

ditampilkan selama 1,5 detik.

amp VAR WORD arus VAR WORD A1 VAR WORD A2 VAR WORD A3 VAR WORD period VAR WORD frekm VAR WORD F1 VAR WORD F2 VAR WORD F3 VAR WORD Fmod1 VAR WORD Fmod2 VAR WORD duty VAR WORD interval VAR WORD Q1 VAR WORD Q2 VAR WORD Q3 VAR WORD muatan VAR WORD irata VAR WORD koreksi VAR WORD pilih VAR BYTE char VAR BYTE ramp VAR BYTE i VAR BYTE sini VAR WORD LCDduty VAR WORD LCDinterval VAR WORD ampnaik VAR portB.0 ampturun VAR portB.1 freknaik VAR portB.4 frekturun VAR portB.5 dutynaik VAR portB.6 dutyturun VAR portB.7

Page 19: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

38

Perintah VAR berfungsi untuk mendefinisikan suatu variabel. Pernyataan “amp

VAR WORD” bermaksud bahwa didefinisikan suatu variabel numerik bernama

‘amp’ dengan tipe WORD, yaitu suatu jenis variabel yang mampu menyimpan

data numerik hingga 65535. Perintah VAR juga dapat digunakan untuk mmberi

nama lain atau ‘alias’ dari suatu variabel atau port tertentu. Pernyataan “ampnaik

VAR portB.0” berfungsi untuk mendefinisikan variabel dengan nama ‘ampnaik’

yang menyatakan nama lain dari portB.0 mikrokontroler.

OPTION_REG = %01001000

Pernyataan OPTION_REG merupakan salah satu nama register yang dimiliki oleh

mikrokontroler PIC, bukan termasuk bahasa PIC Basic Pro. Tetapi PIC Basic Pro

dapat secara langsung memanggil fungsi register-register yang dimiliki oleh

mikrokontroler PIC yang didukungnya. Register OPTION_REG merupakan

register baca tulis yang mengandung berbagai bit kendali untuk menyetel

prescaler TMR0 / postscaler WDT0, interupsi INT eksternal, TMR0 dan pull-up

lemah pada PORTB. Penyetelan OPTION_REG = %01001000 berfungsi untuk

mengaktifkan bit aktivasi pull-up pada PORTB dan menugaskan prescaler kepada

WDT.

trisB = %11110111 trisC = 0 trisD = 0

Perintah ‘tris’ juga merupakan nama register yang terdapat pada mikrokontroler

PIC. ‘Tris’ harus diikuti dengan nama port dan penulisannya harus digabung.

’TrisB’ digunakan untuk mengatur portB sebagai input atau output. Dengan

mengisikan nilai ‘0’ berarti portB diatur sebagai output. Jika bernilai ‘1’ berarti

portB diatur sebagai input. Untuk mengatur secara lebih spesifik, dapat dituliskan

dalam bentuk binernya. Pernyataan ‘trisB = %11110111’ berarti portB diatur

sebagai input, kecuali portB.3 saja yang diatur sebagai output.

amp = 27 interval = 100 duty = 10 pilih = 0

Page 20: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

39

portC=0 portD=0

Pernyataan-pernyataan di atas berfungsi untuk mengisikan nilai pada suatu

variabel. Pernyataan ‘amp = 50’ artinya bahwa variabel ‘amp’ diisi dengan nilai

desimal 50. Pernyataan ‘portC = 0’ digunakan untuk mengisikan bit 0 pada portC,

yang menyatakan bahwa portC bernilai ‘low’.

ON INTERRUPT GOTO myint .....

RESUME

Pernyataan ‘ON INTERRUPT’ digunakan untuk menangani interupsi

mikrokontroler menggunakan subrutin PIC Basic Pro. Penggunaan ‘ON

INTERRUPT’ dengan subrutin PIC Basic Pro harus diakhiri dengan pernyataan

‘RESUME’ pada akhir subrutin. Apabila terjadi interupsi, setelah satu pernyataan

yang sedang dijalankan selesai, maka secepat mungkin program akan melompat

ke interrupt handler pada label (pada pernyataan di atas labelnya bernama

‘myint’). Begitu interrupt handler selesai dilaksanakan, pernyataan ‘RESUME’

mengirim program kembali kepada tempat terjadinya interupsi.

INTCON = %00100000

INTCON juga merupakan nama register yang terdapat pada mikrokontroler PIC.

INTCON adalah register baca tulis yang mengandung berbagai bit bendera dan

aktivasi untuk register TMR0, perubahan port RB, dan interupsi pin RB0/INT

eksternal. Penyetelan ‘INTCON = %00100000’ bermaksud untuk menonaktifkan

semua jenis interupsi kecuali interupsi TMR0. Penyetelan ini berhubungan dengan

penyetelan sebelumnya yaitu yang menggunakan OPTION_REG.

'main menu menu: LCDOUT $FE,1,"TES ELEKTRODA" PAUSE 1000 portC = 120 PAUSE 1 portC = 0 LCDOUT $FE,1,"TES ELEKTRODA" LCDOUT $FE,$c0,"SUKSES" PAUSE 1000

Page 21: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

40

LCDOUT $FE,1,"SILAHKAN PILIH" LCDOUT $FE,$c0,"SINYAL TERAPI..." tunggu: GOTO tunggu

Program di atas merupakan program pengantar sekaligus program untuk

melakukan pemeriksaan awal atas pemasangan elektroda sebelum terapi dimulai.

Tes elektroda dilakukan dengan memberikan pulsa persegi dengan amplitudo 392

µA selama 1 milidetik kepada pasien untuk menguji ketepatan pemasangan

elektroda ke tubuh pasien. Program ini bekerjasama dengan sistem proteksi yang

apabila sistem proteksi menemui arus listrik yang diberikan kurang dari 392 µA,

maka akan terjadi interupsi yang akan memaksa program untuk kembali kepada

program menu. Apabila hasil pengujian elektroda menyatakan berhasil, maka

program akan dilanjutkan kepada pemilihan sinyal terapi. Pada tahap ini program

akan menunggu sampai pengguna melakukan interupsi pada tombol ‘select’ untuk

memilih jenis sinyal terapi yang diinginkan.

'Program utama loop: 'menghitung nilai arus listrik A1 = 3 * amp A2 = 9 * amp / 10 A3 = 2 * amp / 100 arus = A1 + A2 + A3 'dalam uA' 'menghitung nilai periode period = LCDduty+LCDinterval 'dalam ms' 'menghitung nilai frekuensi F1 = 1000 / period Fmod1 = 1000 // period F2 = 10 * Fmod1 / period Fmod2 = 10 * Fmod1 // period F3 = 10 * Fmod2 / period frekm = 1000*F1 + 100*F2 + 10*F3 'dalam mHz' IF duty <= 257 THEN Q1 = amp * duty / 10 * 3 Q2 = amp * duty / 10 * 9 / 10 Q3 = amp * duty / 10 * 2 / 100 muatan = (Q1 + Q2 + Q3)/4 ELSE Q1 = duty / 4 * amp / 10 * 3 Q2 = duty / 4 * amp / 10 * 9 / 10 Q3 = duty / 4 * amp / 10 * 2 / 100 muatan = Q1 + Q2 + Q3

Page 22: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

41

ENDIF IF muatan > 4675 THEN portC = 0 portD = 0 LCDOUT $FE,1,"MUATAN LISTRIK" LCDOUT $FE,$c0,"MELEBIHI 187 uC" PAUSE 1000 GOTO loop ENDIF irata = muatan * 10 / period * 4 'koreksi digital irata = irata + 6 IF irata > 300 THEN portC = 0 portD = 0 LCDOUT $FE,1,"ARUS RATA-RATA" LCDOUT $FE,$c0,"MELEBIHI 300 uA" PAUSE 1000 GOTO loop ENDIF LCDOUT $FE,1,"I=", DEC arus, "uA" LCDOUT $FE,$c0,"f=", DEC F1, ",", DEC F2, DEC F3, "Hz,t=", DEC LCDduty, "ms"

...................(Program sinyal terapi) GOTO loop

Petikan program di atas adalah bagian dari program utama. Pada bagian awal

program utama, terdapat beberapa perhitungan parameter-parameter sinyal terapi

arus mikro yang akan dibangkitkan oleh masing-masing program di atas. Variabel

‘arus’ adalah variabel yang digunakan untuk menunjukkan nilai yang sebenarnya

dari arus listrik yang dikeluarkan oleh alat stimulasi OpenMCS. Ia mengkonversi

nilai variabel ‘amp’ yang berkisar antara 0 hingga 255 ke dalam besaran arus

listrik nyata yang diberikan yaitu antara 0 hingga 1000 µA.

Untuk menghitung nilai arus listrik, frekuensi, lebar pulsa, muatan listrik, dan arus

listrik rata-rata secara tepat, digunakan perhitungan menggunakan modulus dan

pemecahan perhitungan. Hal ini disebabkan karena PICBasic tidak mengenal jenis

bilangan floating point dan jumlah bilangan maksimum yang dapat dioperasikan

adalah 65535.

Page 23: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

42

Pada program ini juga dilakukan perhitungan nilai muatan listrik dan arus listrik

rata-rata sebagai bagian dari sistem pengaman secara software. Untuk setiap

sinyal stimulasi yang dibangkitkan, nilai muatan listrik tidak diperkenankan

melebihi 187 µC sedangkan nilai arus listrik rata-rata tidak diperkenankan

melebihi 300 µA. Perhitungan nilai muatan listrik dan nilai arus listrik rata-rata

diberikan pada persamaan 3.6 dan 3.7.

. (3.6)

(3.7)

dimana: q = muatan listrik (dalam µC) I = kuat arus listrik (µA) τ = lebar pulsa (ms)

Ī = kuat arus listrik rata-rata (µA)

T = periode sinyal (ms)

'Program pulsa persegi 1 WHILE pilih = 1 portC = amp PAUSE duty portC = 0 PAUSE interval portD = amp PAUSE duty portD = 0 PAUSE interval WEND

Program pulsa persegi 1 merupakan program yang berfungsi untuk

membangkitkan pulsa persegi jenis kesatu. Rancangan pulsa persegi jenis kesatu

berbentuk seperti yang ditunjukkan pada gambar 3.10.

Pada sinyal persegi 1, parameter yang dikendalikan adalah amplitudo, frekuensi,

dan lebar pulsa persegi 1. Program pulsa persegi 1 bekerja dengan menjadikan

portC dan portD bernilai antara 0 hingga 255 secara bergantian bergantung pada

besarnya amplitudo yang diperlukan. Pembangkitan ini dilakukan terus di dalam

suatu loop hingga terjadi suatu interupsi.

Page 24: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

43

Gambar 3. 11 Bentuk sinyal persegi 1 dalam perancangan

'Program pulsa persegi 2 WHILE pilih = 2 portC = amp PAUSE duty portC = 0 portD = amp PAUSE duty portC = 0 portD = 0 PAUSE interval WEND

Program pulsa persegi 2 membangkitkan sinyal persegi dalam bentuk yang

berbeda dengan pulsa persegi 1. Rancangan pulsa persegi 2 mempunyai bentuk

seperti yang ditunjukkan pada gambar 3.11.

Gambar 3. 12 Bentuk sinyal persegi 2 dalam perancangan

Page 25: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

44

Pada sinyal persegi 2, parameter yang dikendalikan adalah amplitudo, frekuensi,

dan lebar pulsa persegi 2.

'Program pulsa persegi 3 WHILE pilih = 3 portC = amp PAUSE duty portC = 0 portD = amp PAUSE duty portD = 0 WEND

Program pulsa persegi 3membangkitkan pulsa persegi tanpa delay. Parameter

yang dikendalikan para pulsa persegi 3 adalah amplitudo dan lebar pulsa. Nilai

frekuensi yang dihasilkan akan mengikuti lebar pulsa yang diatur oleh pengguna.

Bentuk rancangan pulsa persegi 3 ditunjukkan pada gambar 3.12.

Gambar 3. 13 Bentuk sinyal persegi 3 dalam perancangan

'Program pulsa ramp 1 WHILE pilih = 4 FOR i = 1 TO 4 portC = amp * i / 4 PAUSE duty / 4 NEXT i portC = 0 PAUSE interval FOR i = 1 TO 4 portD = amp * i / 4 PAUSE duty / 4

Page 26: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

45

NEXT i portD = 0 PAUSE interval WEND

Program pulsa ramp 1 adalah program berfungsi untuk yang membangkitkan

pulsa berbentuk anak tangga (ramp). Pulsa ramp 1 mempunyai bentuk seperti

yang ditampilkan pada gambar 3.13. Sama halnya dengan pulsa persegi, pulsa

ramp dapat diatur nilai amplitudo, frekuensi dan lebar pulsanya. Pada setiap pulsa

ramp terdapat 4 buah anak tangga. Nilai amplitudo yang ditentukan oleh

pengguna dibagi 4 sama besar oleh program pulsa ramp dan begitu pula dengan

nilai lebar pulsanya.

Gambar 3. 14 Bentuk sinyal ramp 1 dalam perancangan

'Program pulsa ramp 2 WHILE pilih = 5 FOR i = 1 TO 4 portC = amp * i / 4 PAUSE duty / 4 NEXT i portC = 0 FOR i = 1 TO 4 portD = amp * i / 4 PAUSE duty / 4 NEXT i portD = 0 PAUSE interval WEND

Page 27: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

46

Program pulsa ramp 2 membangkitkan variasi lain dari pulsa ramp. Bentuk pulsa

ramp 2 adalah seperti yang ditampilkan pada gambar 3.14.

Gambar 3. 15 Bentuk sinyal ramp 2 dalam perancangan

'Program Interupsi DISABLE myint: WHILE ampnaik=0 OR ampturun=0 OR freknaik=0 OR frekturun=0 OR dutynaik=0 OR dutyturun = 0 OR portB.2=0 ....................... IF pilih = 0 THEN GOTO menu ELSE GOTO loop ENDIF WEND

Beberapa baris program di atas merupakan pengaturan awal program interupsi.

Program interupsi akan bekerja jika salah satu dari portB, selain portB.3, bernilai

0. Selanjutnya persyaratan ‘IF pilih = 0 THEN ...........END IF’ berfungsi untuk

mengarahkan program ke menu pada saat pemilihan sinyal terapi pertama kali

apabila yang ditekan bukan tombol ‘select’. Jika yang ditekan adalah tombol

‘select’ maka program akan berlanjut ke loop.

'Menaikkan amplitudo WHILE amp < 255 && ampnaik = 0 portC = 0 portD = 0 amp = amp + 1 PAUSE 100

Page 28: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

47

WEND

Untuk menaikkan amplitudo, yang dilakukan adalah melakukan penambahan nilai

variabel ‘amp’. Penambahan dilakukan jika nilai variabel ‘amp’ kurang dari 255

dan pada saat ‘ampnaik’ atau portB.0 berstatus ‘low’. Pada saat melakukan

interupsi, portC dan portD harus dinolkan supaya tidak terjadi pemberian pulsa

berkepanjangan kepada pasien selama pengguna menekan tombol.

'Menurunkan amplitudo WHILE amp > 0 && ampturun = 0 && portB.2 != 0 portC = 0 portD = 0 amp = amp - 1 PAUSE 100 WEND

Untuk menurunkan amplitudo dilakukan penurunan nilai variabel ‘amp’. Proses

akan dilaksanakan jika nilai ‘amp’ lebih dari 0 dan ‘ampturun’ (portB.1) berstatus

‘low’. Penambahan syarat portB.2 tidak sama dengan nol diperlukan karena pada

program proteksi, gabungan portB.1 dan portB.2 ditetapkan untuk melakukan

reset program menuju menu utama.

'Menaikkan frekuensi WHILE frekm/10 < 50000 && freknaik = 0 portC = 0 portD = 0 WHILE frekm/10 < 50000 && freknaik = 0 IF interval < 100 THEN interval = interval - 1 PAUSE 500 ELSE IF interval < 1000 THEN interval = interval - 1 PAUSE 25 ELSE interval = interval - 10 PAUSE 10 ENDIF ENDIF WEND GOTO sinyal WEND

Page 29: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

48

Pada program µStimS, variabel yang dapat diatur adalah variabel ‘amp’,

‘interval’, dan ‘duty’. Untuk menaikkan frekuensi, yang dilakukan oleh program

adalah dengan mengurangi nilai variabel ‘interval’. Proses pengurangan nilai

variabel ‘interval’ akan dilakukan jika nilai variabel ‘frekm’ kurang dari 500000.

Variabel ‘frekm’ adalah variabel yang menampung perhitungan frekuensi sinyal

dalam orde milihertz. Karena PICBasic hanya mampu menghitung hingga 65535

maka persyaratan dituliskan menjadi apabila nilai variabel “frekm”/10 kurang dari

50000 dengan menanggung resiko kesalahan akibat pembulatan hasil pembagian.

'Menurunkan frekuensi WHILE frekm > 250 && frekturun = 0 portC = 0 portD = 0 WHILE frekm > 250 && frekturun = 0 IF interval < 100 THEN interval = interval + 1 PAUSE 500 ELSE IF interval < 1000 THEN interval = interval + 1 PAUSE 25 ELSE interval = interval + 10 PAUSE 10 ENDIF ENDIF WEND GOTO sinyal WEND

Penurunan frekuensi dilakukan dengan menambah nilai variabel ‘interval’.

Penambahan nilai variabel ‘interval’ dilakukan jika nilai ‘frekm’ lebih dari 250.

Hal ini menunjukkan bahwa sinyal arus mikro yang dibangkitkan mempunyai

frekuensi minimum 0,25 Hz.

'Menaikkan duty cycle WHILE duty < 999 && dutynaik = 0 portC = 0 portD = 0 WHILE duty < 999 && dutynaik = 0 duty = duty + 1 PAUSE 100 WEND

Page 30: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

49

GOTO sinyal WEND 'Menurunkan duty cycle WHILE duty > 1 && dutyturun = 0 portC = 0 portD = 0 WHILE duty > 1 && dutyturun = 0 duty = duty - 1 PAUSE 100 WEND GOTO sinyal WEND

Untuk menambah lebar pulsa, yang dilakukan oleh program adalah menambah

nilai variabel ‘duty’ sedangkan untuk mengurangi lebar pulsa, dilakukan

pengurangan nilai variabel ‘duty’. Variabel ‘duty’ akan bertambah jika nilai

variabel ‘duty’ kurang dari 999. Sedangkan syarat untuk menurunkan nilai

variabel ‘duty’ adalah ketika nilai variabel ‘duty’ lebih dari 1.

'Memilih bentuk gelombang WHILE portB.2 = 0 AND ampturun != 0 IF pilih = 5 THEN pilih = 0 ENDIF pilih = pilih + 1 LCDOUT $FE,1,"SINYAL" LCDOUT $FE,$c0 sinyal: SELECT CASE pilih CASE 1 'perhitungan dan koreksi LCDduty = duty + 1 LCDinterval = 2*interval FOR i = 0 TO 10 LOOKUP i,["PERSEGI 1 "],char LCDOUT char NEXT i CASE 2 'perhitungan dan koreksi LCDduty = duty + 1 LCDinterval = interval FOR i = 0 TO 10 LOOKUP i,["PERSEGI 2 "],char LCDOUT char NEXT i CASE 3 'perhitungan dan koreksi

Page 31: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

50

LCDduty = duty + 1 LCDinterval = 0 FOR i = 0 TO 10 LOOKUP i,["PERSEGI 3 "],char LCDOUT char NEXT i CASE 4 'perhitungan dan koreksi LCDduty = duty + 8 LCDinterval = 2*interval FOR i = 0 TO 10 LOOKUP i,["RAMP 1 "],char LCDOUT char NEXT i CASE 5 'perhitungan dan koreksi LCDduty = duty + 8 LCDinterval = interval FOR i = 0 TO 10 LOOKUP i,["RAMP 2 "],char LCDOUT char NEXT i END SELECT PAUSE 1000 WEND

Program di atas adalah program untuk melakukan pemilihan sinyal terapi.

Program akan melaksanakan fungsi pemilihan sinyal jika portB.2 dalam status

‘low’. Penambahan persyaratan bahwa ‘ampturun’ (portB.1) tidak sama dengan

nol juga dikarenakan bahwa kombinasi antara portB.1 dan portB.2 dipergunakan

sebagai interupsi otomatis pada program proteksi. Pada program pemilihan sinyal

terapi, terdapat enam pilihan sinyal yang masing-masing akan mengacu pada

program pembangkitan sinyal yang bersangkutan. Ketika program pemilihan

sinyal dijalankan, terjadi proses penambahan nilai variabel ‘pilih’ yang berfungsi

sebagai penanda kategori sinyal yang dipilih. Pada masing-masing kelompok

sinyal, terdapat beberapa perhitungan yang akan digunakan dalam tampilan di

LCD.

'Peringatan keamanan WHILE portB.1 = 0 AND portB.2 = 0 portC = 0 portD = 0 SOUND portA.5,[100,10]

Page 32: BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEMdigilib.itb.ac.id/files/disk1/625/jbptitbpp-gdl-akhmadjuna-31205-4... · 20 BAB 3 PERANCANGAN DAN IMPLEMENTASI SISTEM Pada bab ini akan diuraikan

51

LCDOUT $FE,1,"ADA KESALAHAN!" PAUSE 1000 GOTO menu WEND

Program peringatan keamanan bekerja secara otomatis jika portB.1 dan portB.2

berstatus ‘low’. Pengubahan status ini dilakukan secara hardware oleh sistem

proteksi secara otomatis. Apabila terjadi kesalahan, maka program akan memaksa

semua pin pada portC dan portD ke status ‘low’ dan menampilkan peringatan

bahwa telah terjadi kesalahan pada tampilan LCD. Proses ini akan berulang terus-

menerus sampai kesalahan diperbaiki atau alat stimulasi OpenMCS dimatikan.