• Tidak ada hasil yang ditemukan

T1 Lampiran Institutional Repository | Satya Wacana Christian University: Media Pembelajaran Sistem Pengukuran Aktivitas Elektrik Jantungeadaan Oksigen dalam Darah, dan Tekanan Darah dengan Metode NonInvasive

N/A
N/A
Protected

Academic year: 2018

Membagikan "T1 Lampiran Institutional Repository | Satya Wacana Christian University: Media Pembelajaran Sistem Pengukuran Aktivitas Elektrik Jantungeadaan Oksigen dalam Darah, dan Tekanan Darah dengan Metode NonInvasive"

Copied!
46
0
0

Teks penuh

(1)

LAMPIRAN A

#Program Sistem Media Pembelajaran

Biomedical

#include <Adafruit_TFTLCD.h>

#include <TouchScreen.h> #define LCD_RESET A4 #define TS_MINX 204 #define TS_MINY 195 #define TS_MAXX 948 #define TS_MAXY 910

#define YP A1 // must be an analog pin, use "An" notation! #define XM A2 // must be an analog pin, use "An" notation! #define YM 7 // can be a digital pin

#define XP 6 // can be a digital pin

#define MINPRESSURE 10 #define MAXPRESSURE 1000

TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); #define BLACK 0x0000 #define YELLOW 0xFFE0 #define WHITE 0xFFFF

Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); boolean buttonEnabled = true;

(2)

int q=0; // isi array jumlah HR tekanan

int e=0; //isi array jumlah rata2 mmhg int addr=0;

(3)

int maks_tekanan=0; int min_tekanan=1000; int tinggi_tekanan=0; int tanda_puncakTekanan=0; int tanda_puncakTekanan1=0; int waktu_awal_puncakTekanan=0; int waktu_akhir_puncakTekanan=0; int waktu_selisih_puncakTekanan=0; boolean flag_cetak_bpmBP=false;

int v=0; //proteksi data rusak tekanan darah int simpan_tinggi[500];

int simpan_tekanan[500];

int y=0; // array simpan tinggi dan tekanan int habis_tekanan=60;

boolean flag_cetak_SDH=false; int r=0; // isi array tekanan int MAP=0;

boolean flag_panjang_arrayTekanan=false; int z=0; // panjang array tekanan

int u=0; //isi array simpan tekanan dan tinggi int nilai_sistol=0;

int nilai_diastol=0; int tekanan_MAP=0;

boolean j=false; // proteksi data rusak HR Tekanan darah boolean tanda_habis=false;

boolean lanjut_cetak=false; boolean ulang=false;

boolean dapat_sistol=false; const int numReadings =3;

int readings[numReadings]; // the readings from the analog input

int readIndex = 0; // the index of the current reading

int total = 0; // the running total int average = 0;

const int numReadings2 =8;

int readings2[numReadings2]; // the readings from the analog input

int readIndex2 = 0; // the index of the current reading

int total2 = 0; // the running total int average2 = 0;

const int numReadings3 =50;

int readings3[numReadings3]; // the readings from the analog input int readIndex3 = 0; // the index of the current reading int total3 = 0; // the running total

int average3 = 0;

const int numReadings4 =5;

int readings4[numReadings4]; // the readings from the analog input int readIndex4 = 0; // the index of the current reading int total4 = 0; // the running total

int average4 = 0;

const int numReadings5 =50;

(4)

TSPoint p = ts.getPoint();

// we have some minimum pressure we consider 'valid' // pressure of 0 means no pressing!

if (p.z > MINPRESSURE && p.z < MAXPRESSURE) { Serial.print("X = "); Serial.print(p.x); Serial.print("\tY = "); Serial.print(p.y);

Serial.print("\tPressure = "); Serial.println(p.z); }

//TSPoint p = ts.getPoint();

if(p.x>108 && p.x<363 && p.y>133 && p.y <942 &&buttonEnabled &p.z > MINPRESSURE && p.z < MAXPRESSURE )

{

Serial.println("if1"); pil=1;

(5)

else if(p.x>396 && p.x<634 && p.y>122 && p.y <935 &&buttonEnabled &p.z >

MINPRESSURE && p.z < MAXPRESSURE ) {

Serial.println("if2"); pil=2;

flag_cetak_subMenu=true; masuk_subMenu=true; buttonEnabled = false; buttonEnabled1=true; pinMode(XM, OUTPUT); pinMode(YP, OUTPUT);

digitalWrite(pin_buzzer,LOW); }

else if(p.x>662 && p.x<910 && p.y>112 && p.y <935 &&buttonEnabled &p.z > MINPRESSURE && p.z < MAXPRESSURE )

{

Serial.println("if 3"); pil=3;

masuk_subMenu=true; flag_cetak_subMenu=true; flag_cetak_SDH=true; r=0;

flag_panjang_arrayTekanan=true; z=0;

flag_cetak_bpmBP=false; letak_MAP=0;

MAP=0; ulang=true; u=0;

v=0;

digitalWrite(pin_buzzer,LOW); tanda_puncakTekanan=0;

tanda_puncakTekanan1=0; nilai_sistol=0;

nilai_diastol=0; dapat_sistol=false;

digitalWrite(pin_valve,LOW); tekanan_MAP=0;

tekanan_berhenti=false; tanda_habis=false; buttonEnabled = false; buttonEnabled1=true; lanjut_cetak=false; pinMode(XM, OUTPUT); pinMode(YP, OUTPUT); }

(6)

switch(pil)

{

case 1:

Serial.println("case 1 "); menuEKG();

tft.fillRect(0,0,320, 80, RED); tft.drawRect(0,0,320,80,WHITE);

tft.fillRect(0,80,320,80, BLUE); tft.drawRect(0,80,320,80,WHITE);

tft.fillRect(0,160,320, 79, GREEN); tft.drawRect(0,160,320,79,WHITE); tft.setCursor(35,185);

tft.setTextColor(WHITE); tft.setTextSize(3);

(7)

void menuEKG()

{

while( masuk_subMenu==true) {

//This is important, because the libraries are sharing pins pinMode(XM, OUTPUT); tft.fillRect(200,0,320,120,YELLOW); tft.setCursor(220,50);

(8)

tft.drawPixel(x,nilai+3,WHITE);

masuk_subMenu=false; }

void menuPPG() {

while( masuk_subMenu==true) {

//This is important, because the libraries are sharing pins tft.fillRect(200,0,320,120,YELLOW); tft.setCursor(220,50);

if(m>2&&buttonEnabled3==true) {

(9)

}

masuk_subMenu=false; }

void menuBLOOD() {

while( masuk_subMenu==true) {

//This is important, because the libraries are sharing pins tft.fillRect(200,0,320,120,YELLOW); tft.setCursor(220,50);

(10)

void baca_LED()

selisih_acLED=max_acLED-min_acLED; Serial.print("SElisih

LED=========================================");

(11)

//Baca Waktu Puncak ke Puncak LED

if (data_acLED > 100 && flag_puncak == false )

if (data_acLED < 80 && flag_puncak==true) {

flag_lembah = true;

digitalWrite(pin_buzzer,LOW); }

if(data_acLED>100 && flag_lembah == true ) {

digitalWrite(pin_buzzer,HIGH); waktu_akhirPuncak=millis();

waktu_selisihPuncak=waktu_akhirPuncak-waktu_awalPuncak; tft.fillRect(100,25,100,25,RED);

tft.setCursor(100,25); tft.setTextColor(WHITE); tft.setTextSize(3);

tft.print((60000/waktu_selisihPuncak)); flag_puncak = false;

{ digitalWrite(pin_buzzer,LOW); digitalWrite(pin_LED,LOW); digitalWrite(pin_IR,HIGH); flag_puncak=false;

(12)

for(x=0; x<320; x++)

Serial.print("SElisih IR========================================="); Serial.println(selisih_acIR);

if(data_acIR > max_acIR) {

(13)

nilai=map(data_acIR,0,1023,239,95);

//Baca Waktu Puncak ke Puncak LED

if (data_acIR > 100 && flag_puncak == false )

if (data_acIR < 80 && flag_puncak==true) {

flag_lembah = true;

digitalWrite(pin_buzzer,LOW); }

if(data_acIR>100 && flag_lembah == true ) {

waktu_akhirPuncak=millis();

waktu_selisihPuncak=waktu_akhirPuncak-waktu_awalPuncak; tft.fillRect(100,25,100,25,RED);

tft.setCursor(100,25); tft.setTextColor(WHITE); tft.setTextSize(3);

tft.print((60000/waktu_selisihPuncak)); flag_puncak = false;

Serial.print("dc LED========================================="); Serial.println(data_dcLED);

(14)

ratio_acLED=(float)(0.701*selisih_acLED)/data_dcLED;

ratio_acIR=(float)(0.701*selisih_acIR)/data_dcIR; spo2=(110 -((ratio_acLED/ratio_acIR)*25))+11;

Serial.print("SPO2========================================="); Serial.println(spo2);

Serial.print("spo2================="); tft.fillRect(90,60,100,50,BLUE); tft.setCursor(100,80); tekanan_asli= average3; tekanan_filter=(average2);

data_tekananFilter= map(tekanan_filter,0,1023,237,120); data_tekananAsli= map(tekanan_asli,0,1023,0,50000); mmhg=(((data_tekananAsli/9)*7.50062)/100)-14;

(15)

ratio_acLED=(float)(0.701*selisih_acLED)/data_dcLED;

ratio_acIR=(float)(0.701*selisih_acIR)/data_dcIR; spo2=(110 -((ratio_acLED/ratio_acIR)*25))+11;

Serial.print("SPO2========================================="); Serial.println(spo2);

Serial.print("spo2================="); tft.fillRect(90,60,100,50,BLUE); tft.setCursor(100,80);

if(flag_cetak_bpmBP==true && tekanan_berhenti==true && j==true && tanda_habis==false)

{

tft.fillRect(100,25,100,25,RED); tft.setCursor(100,25);

tft.setTextColor(WHITE); tft.setTextSize(3);

tft.print((60000/waktu_selisih_puncakTekanan)); flag_cetak_bpmBP=false;

}

if(e>=9 && tanda_habis==false) {

rata_mmhg=total_mmhg/10;

tft.fillRect(130,60,70,50,BLUE); tft.setCursor(135,80);

if(mmhg<habis_tekanan && tekanan_berhenti==true && tanda_habis==false) {

if(flag_panjang_arrayTekanan==true)

(16)

ratio_acLED=(float)(0.701*selisih_acLED)/data_dcLED;

ratio_acIR=(float)(0.701*selisih_acIR)/data_dcIR; spo2=(110 -((ratio_acLED/ratio_acIR)*25));

Serial.print("SPO2========================================="); Serial.println(spo2);

z=y;

flag_panjang_arrayTekanan=false; }

tft.fillRect(0,120,320,240,BLACK); x=0;

if(MAP<simpan_tinggi[r+3]) {

MAP=simpan_tinggi[r+3];

tekanan_MAP=simpan_tekanan[r+3]; letak_MAP=r+3;

(17)

Serial.println(tekanan_MAP );

Serial.print("letak===="); Serial.println(letak_MAP); Serial.print("SISTOL===="); Serial.println(nilai_sistol); Serial.print("DIASTOL===="); &&((float)simpan_tinggi[u+2]/MAP) <= 0.65 && simpan_tekanan[u+2]>=tekanan_MAP)

{

nilai_sistol=simpan_tekanan[u+2]; u=letak_MAP;

flag_cetak_bpmBP=false;

if( ((float)simpan_tinggi[u]/MAP)>= 0.75 &&

((float)simpan_tinggi[u]/MAP) <= 0.85 &&simpan_tekanan[u+2]<tekanan_MAP) {

nilai_diastol=simpan_tekanan[u]-15; lanjut_cetak=true;

/// Cetak Diastol dan Sistol

(18)

tft.fillRect(130,60,70,50,BLUE);

TSPoint p = ts.getPoint();

if(p.x>122 && p.x<506 && p.y>120 && p.y <421 &&buttonEnabled1==true ||buttonEnabled3==false)

digitalWrite(pin_pompa,HIGH); Serial.println("HIDUP"); }

(19)

tft.fillRect(130,60,70,50,BLUE);

EEPROM.write(addr,tekanan_filter/4); baca_data_tekananFilter=EEPROM.read(addr); if(mmhg<85)

{

error_puncak=12; }

batas_puncakTekanan=EEPROM.read(addr-25)-error_puncak;

if(baca_data_tekananFilter<batas_puncakTekanan && tanda_puncakTekanan>2 && tanda_puncakTekanan1<2 && tekanan_berhenti==true )

{

digitalWrite(pin_buzzer,LOW); maks_tekanan=batas_puncakTekanan; waktu_awal_puncakTekanan=millis(); tanda_puncakTekanan=0;

}

if( baca_data_tekananFilter>batas_puncakTekanan && tanda_puncakTekanan<2 && tanda_puncakTekanan1<2) {

digitalWrite(pin_buzzer,HIGH); min_tekanan=batas_puncakTekanan;

tinggi_tekanan=maks_tekanan - min_tekanan; simpan_tekanan[y]=mmhg;

simpan_tinggi[y]=tinggi_tekanan;

Serial.print("Tinggi 1============================="); Serial.println(simpan_tinggi[y]);

Serial.print("Tekanan ============================="); Serial.println(simpan_tekanan[y]);

tanda_puncakTekanan1=5;

(20)

maks_tekanan=batas_puncakTekanan;

tinggi_tekanan=maks_tekanan - min_tekanan; simpan_tinggi[y]=tinggi_tekanan;

simpan_tekanan[y]=mmhg;

waktu_selisih_puncakTekanan=waktu_akhir_puncakTekanan- waktu_awal_puncakTekanan;

bpm_blood =(60000/waktu_selisih_puncakTekanan); if(bpm_blood >60 )

{

simpan_bpm_blood[q]=bpm_blood;

jumlah_bpm_blood=simpan_bpm_blood[q]+jumlah_bpm_blood; q++;

}

Serial.print("Tinggi 2============================"); Serial.println(simpan_tinggi[y]);

Serial.print("Tekanan ============================="); Serial.println(simpan_tekanan[y]);

tanda_puncakTekanan1=0; tanda_puncakTekanan=5; flag_cetak_bpmBP=true; y++;

total = total - readings[readIndex]; // read from the sensor:

readings[readIndex] = analogRead(A11); // add the reading to the total: total = total + readings[readIndex];

// advance to the next position in the array: readIndex = readIndex + 1;

// if we're at the end of the array... if (readIndex >= numReadings) {

// ...wrap around to the beginning: readIndex = 0;

}

// calculate the average:

average = total / numReadings;

// send it to the computer as ASCII digits //Serial.println(average);

(21)

void coba2() {

// subtract the last reading:

total2 = total2 - readings2[readIndex2]; // read from the sensor:

readings2[readIndex2] = analogRead(A12); // add the reading to the total:

total2 = total2 + readings2[readIndex2]; // advance to the next position in the array: readIndex2 = readIndex2 + 1;

// if we're at the end of the array... if (readIndex2 >= numReadings2) { // ...wrap around to the beginning: readIndex2 = 0;

}

// calculate the average:

average2 = total2 / numReadings2;

// send it to the computer as ASCII digits

total3 = total3 - readings3[readIndex3]; // read from the sensor:

readings3[readIndex3] = analogRead(A13); // add the reading to the total:

total3 = total3 + readings3[readIndex3]; // advance to the next position in the array: readIndex3 = readIndex3 + 1;

// if we're at the end of the array... if (readIndex3 >= numReadings3) { // ...wrap around to the beginning: readIndex3 = 0;

}

// calculate the average:

average3 = total3 / numReadings3;

// send it to the computer as ASCII digits

total4 = total4 - readings4[readIndex4]; // read from the sensor:

readings4[readIndex4] = analogRead(A15); // add the reading to the total:

(22)

// if we're at the end of the array...

if (readIndex4 >= numReadings4) { // ...wrap around to the beginning: readIndex4 = 0;

}

// calculate the average:

average4 = total4 / numReadings4;

// send it to the computer as ASCII digits

total5 = total5 - readings4[readIndex5]; // read from the sensor:

readings5[readIndex5] = analogRead(A14); // add the reading to the total:

total5 = total5 + readings5[readIndex5]; // advance to the next position in the array: readIndex5 = readIndex5 + 1;

// if we're at the end of the array... if (readIndex5 >= numReadings5) { // ...wrap around to the beginning: readIndex5 = 0;

}

// calculate the average:

average5 = total5 / numReadings5;

// send it to the computer as ASCII digits

if (average >=410 && flag_puncak == false && flag_lembah==false) {

digitalWrite(pin_buzzer,HIGH); waktu_awalPuncak=millis(); flag_puncak = true; }

if (average <= 390 && flag_puncak==true && flag_lembah==false) {

flag_lembah = true;

digitalWrite(pin_buzzer,LOW); }

if (average >=410 && flag_lembah==true) {

(23)

waktu_selisihPuncak=waktu_akhirPuncak-waktu_awalPuncak;

pinMode(XM, OUTPUT); pinMode(YP, OUTPUT); cetak_jantung(); flag_puncak = false; flag_lembah=false; }

}

void cetak_jantung() {

tft.fillRect(0,60,150,50,BLUE); tft.setCursor(80,80);

tft.setTextColor(WHITE); tft.setTextSize(3);

(24)

LAMPIRAN B

ANGKET

Petunjuk Praktikum Pembelajaran Materi

Biomedical

Berilah tanda check list (

) pada kotak penilaian yang sesuai dengan kenyataan

yang ada.

No.

Aspek yang di observasi

Penilaian

Baik

Cukup

Kurang

1.

Apakah

petunjuk

praktikum

materi

biomedical

mudah dimengerti ?

2.

Apakah tujuan dari petunjuk praktikum

tersampaikan ?

3.

Apakah petunjuk praktikum ini dapat

membantu

anda

memahami

materi

biomedical

yang sudah diajarkan ?

4.

Apakah dari tugas yang diberikan dalam

praktikum dapat membantu memahami

materi

biomedical

?

5.

Apakah petunjuk praktikum ini dapat

membuat

anda lebih tertarik

materi

(25)

LAMPIRAN C

Petunjuk Penggunaan

Media Pembelajaran Sistem Pengukuran Aktivitas Elektrik Jantung, Keadaan

Oksigen Dalam Darah, dan Tekanan Darah Dengan Metode Non-

Invasive

1.

Tekan tombol

power

pada bagian belakang

box

ke arah bawah.

Gambar 1.

Box

Tampak Belakang

2.

Saat tombol

power

ON, LCD pada

box

bagian atas akan tertampil seperti

gambar berikut. Terdapat tiga pilihan menu, yaitu EKG, PPG, dan

Blood

Pressure

.

(26)

3.

Berikut adalah

box

tampak depan .

Gambar 3.

Box

Tampak Depan

Berikut penjelasan masing-masing bagian pada

box

alat bagian depan:

1.

Handcuff

digunakan untuk pengukuran tekanan darah yang dililitkan pada

lengan.

2.

Mechanical gauge

digunakan sebagai pembanding alat ukur tekanan dari

sensor tekanan MPX5050GP.

3.

DB15 digunakan sebgai penguhubung sensor PPG dengan rangkaian.

4.

Sensor PPG terdiri dari LED merah, LED inframerah, dan

photodiode

untuk

mengukur SpO

2.

5.

Penghubung elektroda digunakan untuk menghubungkan elektroda

pad

ke

module AD8232.

A.

Pengukuran Aktivitas Elektrik Jantung

(27)

Gambar 4. Pemasangan Elektroda

2.

Agar hasil lebih bagus usahakan pengukuran dilakukan dengan keadaan tubuh

terlentang dan dalam keadaan rileks. Pastikan tidak ada alat elektronik, cincin,

kalung, dan logam lainya yang dapat menganggu pengukuran menempel pada

tubuh yang diukur.

3.

Tekan menu EKG pada menu utama.

(28)

B.

Pengukuran Kadar Oksigen Saturasi

1.

Pasang sensor PPG pada jari seperti gambar berikut.

Gambar 6. Sensor PPG

2.

Tekan menu PPG pada menu utama.

3.

Berikut tampilan menu PPG.

Gambar 7. Sinyal PPG

C.

Pengukuran Tekanan Darah

1.

Pasang

handcuff

seperti gambar berikut. Agar pengukuran lebih baik pasang

(29)

2.

Tekan menu

blood pressure

.

3.

Berikut tampilan menu

blood pressure

saat pengambilan data.

Gambar 9. Sinyal

Blood Pressure

4.

Berikut tampilan menu

blood pressure

saat nilai tekanan sistolik dan

diastolik sudah didapatkan.

(30)

LAMPIRAN D

HANDOUT PRAKTIKUM TOPIK 1

EE-636 PERANCANGAN SISTEM ELEKTRONIKA

Pengajar: DED, GND, DS

Waktu: 120 menit

Judul :

Pengukuran kadar oksigen saturasi dalam darah menggunakan metode

pulse

oximetry

non-

invasive

.

Tujuan :

Mahasiswa dapat membuat dan memahami bagaimana mengukur kadar oksigen

saturasi dalam darah (SpO

2

) dan

heart rate

dengan metode

pulse oximetry

non-

invasive.

Alat dan Bahan :

1.

Arduino Mega 2560

2.

Oscilloscope

3.

Breadboard

4.

Kabel jumper

5.

Photodioda

6.

LED merah dan LED inframerah

7.

LM324N

8.

Resistor 10kΩ (2), 22kΩ, 100Ω, 150Ω, 68kΩ, 150kΩ

, dan Variabel Resistor

5kΩ

9.

Kapasitor 4,7uf dan 200nf

10.

Transistor 2n222 (2)

Dasar Teori :

Photoplethysmograph

(PPG) adalah suatu perangkat yang digunakan untuk

mengukur kondisi peredaran darah yang dipompa oleh jantung pada bagian ujung jari

atau daun telinga. Hasil pengukuran tersebut dapat berguna untuk mengetahui kondisi

jantung. Selain untuk mengamati kinerja jantung, PPG juga dapat dimanfaatkan untuk

monitoring

pernafasan dan mengukur saturasi oksigen (SpO

2

) dalam darah. Saturasi

oksigen adalah perbandingan hemoglobin yang mengikat oksigen dengan hemoglobin

yang tidak mengikat oksigen.

Pulse oximetry

adalah suatu metode untuk mengukur SpO

2

. Alat

pulse oximetry

menggunakan dua panjang gelombang cahaya yang berbeda, yaitu merah antara 630 -

(31)

darah arteri, berkurangnya cahaya oleh unsur jaringan lainnya adalah relatif tetap.

Transmisi cahaya melalui arteri adalah denyutan yang diakibatkan pemompaan darah

oleh jantung.

Pulse oximetry

didasarkan pada prinsip

oxygenated hemoglobin

(HbO

2

) yang

menyerap cahaya yang berbeda dengan

deoxygenated hemoglobin

(Hb) [2], seperti

ditunjukkan oleh Gambar 1.

Gambar 1. Penyerapan Hb dan HbO

2

Alat

pulse oximetry

menggunakan

Light Emitting Diode

(LED) merah dan LED

inframerah bersama-sama dengan

photodetector

untuk mengukur penyerapan cahaya

melalui jari atau daun telinga. Pengurangan cahaya dapat dilihat pada Gambar 2,

terdapat tiga bagian besar, yaitu pengurangan cahaya akibat darah arteri, pengurangan

cahaya akibat darah vena, dan pengurangan darah akibat jaringan. Pengurangan cahaya

akibat aliran darah vena dan jaringan, menghasilkan sinyal yang relatif tetap (

DC

),

sedangkan pengurangan cahaya oleh aliran denyut dari arteri menghasilkan sinyal yang

(32)

Penyerapan lebih tinggi cahaya inframerah dibandingkan cahaya merah adalah

indikasi dari oksigen saturasi yang tinggi sedangkan penyerapan lebih tinggi cahaya

merah dibandingkan cahaya inframerah adalah indikasi dari oksigen saturasi yang

rendah. Fungsi dari oksigen saturasi (SpO

2

) digambarkan sebagai perbandingan HbO

2

dengan total jumlah Hb. Berikut adalah Persamaan 1 yaitu perbandingan HbO

2

dengan

Hb yang diukur menggunakan

pulse oximetry

:

(1)

Keterangan :

SpO

2

= Kadar oksigen saturasi dalam darah (%).

HbO

2

= Hemoglobin yang mengikat oksigen.

Hb

= Hemoglobin yang tidak mengikat oksigen.

Warna yang lebih gelap pada darah vena dibandingkan dengan darah arteri

berkaitan dengan fakta bahwa Hb menyerap warna merah lebih banyak daripada cahaya

biru. Perbedaan warna molekul Hb dan HbO

2

adalah kunci dari

pulse oximetry

. Nilai

R

dihitung dari

oximetry

dengan pengambilan perbandingan penyerapan cahaya merah

dan inframerah.

(2)

Keterangan :

R

= Rasio penyerapan cahaya LED merah dengan LED inframerah

ACred

= Penyerapan cahaya LED merah pada arteri (V).

ACired

= Penyerapan cahaya LED inframerah pada arteri (V).

(33)

Nilai SpO

2

dapat dihitung dengan memasukkan nilai

R

pada persamaan di bawah

ini.

(3)

Keterangan :

SpO

2

= Kadar oksigen saturasi dalam darah (%).

R

= Rasio penyerapan cahaya LED merah dengan LED inframerah

Langkah Percobaan :

A.

Menghitung

Heart Rate

1.

Buatlah rangkaian transistor sebagai saklar dengan mengikuti gambar di bawah ini!

Buatlah program untuk menghidupkan dan mematikan LED menggunakan

pin

digital

Arduino.

Pin digital

Arduino Mega dihubungkan ke

input

basis pada

transistor! (Pastikan semua

ground

terhubung).

Gambar 3.

Driver

LED Merah Gambar 4.

Driver

LED IR

2.

Rangkailah photodioda seperti gambar di bawah ini! Arahkan photodioda ke LED

merah. Buatlah program untuk mengamati

output

dari photodioda menggunakan

pin

analog

Arduino. Gunakan fitur

serial plotter

pada Arduino Mega (

Tool> Serial

Plotter

) untuk mengamati sinyal keluaran photodioda. (

Output

akan bernilai

HIGH

(34)

Gambar 5. Rangkaian Sensor Cahaya

Gambar 6.

Datahseet

2N2222

3.

Rangkailah bandpass aktif

filter

seperti gambar di bawah ini!

Input filter

berasal dari

output

photodioda.

(35)

Gambar 8.

Datasheet

LM324N

4.

Masukkan

output

filter

pada Gambar 7 di

pin analog

Arduino Mega. Letakan ujung

jari diantara photodioda dan LED merah (LED merah dalam keadaan hidup).

Kemudian baca dengan menggunakan fitur

serial plotter (Tool> Serial Ploter

).

Lakukan dengan LED merah dan LED inframerah secara bergantian. Hasil akan

seperti pada Gambar 9. Gunakan fungsi

Smoothing

(

File> Example> Analog>

Smoothing

)

yang ada di Arduino untuk memperhalus sinyal dengan cara mengubah

nilai variabel numReadings (Atur nilai sesuai kebutuhan agar seperti pada Gambar

9.)

Gambar 9. Sinyal Keluaran

Filter

di Arduino Mega

5.

Buatlah program untuk menghitung periode sinyal dengan meng gunakan fungsi

Millis pada Arduino. Millis adalah

counter up

pada Arduino dengan ketelitian 1ms.

(

File> Example> Digital> Blink without delay

)

Periode sinyal didapatkan dengan menghitung waktu yang dibutuhkan antar puncak.

6.

Setelah periode sinyal didapat, kita bisa menghitung

heart rate

dengan rumus

(36)

1.

SpO

2

dapat dihitung menggunakan rumus SpO

2

= 110-(25*R). Sedangkan

R

didapatkan dari Persamaan 2. Nilai AC adalah amplitudo sinyal keluaran

filter

. Nilai

DC diambil dari keluaran

photodiode

. (Nilai SpO

2

normal 95-100%). Pengambilan

data LED merah dan LED inframerah dilakukan secara bergantian.

Tugas :

(37)

LAMPIRAN E

HANDOUT PRAKTIKUM TOPIK 2

EE-636 PERANCANGAN SISTEM ELEKTRONIKA

Pengajar: DED, GND, DS

Waktu: 120 menit

Judul :

Pengukuran aktivitas elektrik jantung menggunakan module EKG AD8232

untuk menghitung

heart rate

.

Tujuan :

1.

Mahasiswa dapat menghitung

heart rate

dari sinyal yang didapat dari module

EKG AD8232.

Alat dan Bahan :

1.

Laptop

2.

Module EKG AD8232

3.

Arduino Mega 2560

4.

Breadboard

5.

Elektroda

Pad

6.

Alkohol 70% dan kapas

7.

Kabel Jumper

Dasar Teori :

EKG adalah sebuah peralatan medis yang digunakan untuk mengukur aktivitas

elektrik otot jantung dengan mengukur perbedaan biopotensial bagian luar tubuh.

Biopotensial adalah aktivitas listrik dari sel-sel yang ada di dalam tubuh yang

menimbulkan sinyal listrik [1]. Sinyal EKG merupakan suatu gambaran dari potensial

listrik yang dihasilkan oleh aktivitas listrik otot jantung. Elektrokardiogram merupakan

rekaman informasi kondisi jantung yang diambil menggunakan elektrokardiograf yang

ditampilkan melalui monitor atau dicetak pada kertas. Sinyal EKG merupakan sinyal

(38)

Dapat dilihat pada Gambar 1, sebuah sinyal EKG mempunyai beberapa

komponen, yaitu bagian

P

,

PQ

,

QRS

,

ST

,

T

, dan

U

. Titik

P

adalah denyutan/kontraksi

pada atrium jantung (

dextra

&

sinistra

). Titik

Q

,

R,

dan

S

adalah denyutan/kontraksi

pada ventrikel jantung (

dextra

&

sinistra

) dan titik

T

berarti relaksasi pada ventikel

jantung. Orang yang berumur enam tahun keatas memiliki 60-100

beat per minute

(bpm). Besarnya amplitudo dari sinyal EKG tersebut bervariasi tergantung pada

pemasangan elektroda dan kondisi tubuh seseorang .

Langkah Percobaan :

1.

Rangkailah

module

EKG AD8232 seperti gambar berikut ini !

Gambar 1.

Wiring

module EKG AD8232

(39)

Gambar 2. Pemasangan Elektroda

3.

Buka

software

Arduino. buka

File> Example

>

Analog> Smoothing

dan ganti nilai

variabel numReadings =3; kemudian

upload

.

4.

Amati sinyal yang dihasilkan melalui

serial plotter

yang ada di Arduino Mega

(

Tool> Serial

Plotter

). Pastikan laptop tidak dalam keadaan di cas agar sinyal

EKG tidak terganggu.

A.

Menghitung

Heart Rate

1.

Buatlah program untuk menghitung periode sinyal dengan menggunakan fungsi

Millis pada Arduino. Millis adalah

counter up

pada Arduino dengan ketelitian

1ms. (

File> Example> Digital> Blink without delay

)

Periode sinyal didapatkan dengan menghitung waktu yang dibutuhkan antar

puncak.

(40)

LAMPIRAN F

HANDOUT PRAKTIKUM TOPIK 3

EE-636 PERANCANGAN SISTEM ELEKTRONIKA

Pengajar: DED, GND, DS

Waktu: 120 menit

Judul :

Pengukuran tekanan darah menggunakan metode

Oscillometry.

Tujuan :

1.

Mahasiswa dapat menentukan nilai tekanan darah menggunakan metode

Oscillometry

.

Alat dan Bahan :

1.

Arduino Mega 2560

2.

Breadboard

3.

Sensor Tekanan MPX5050GP

4.

Solenoid Valve

5.

Handcuff

6.

Air Pump Motor

7.

Selang akuarium

8.

Pengatur keluaran angin pada

handcuff

9.

LM324N

10.

Resistor : 150kΩ, 200Ω(2), 68kΩ, 100kΩ, 1kΩ,

11.

Kapasitor : 200nf, 4,7uf,

12.

Transistor 2N2222 (2)

13.

DC

power supply

Dasar Teori :

Tekanan darah merupakan tekanan hasil dari peredaran darah pada tubuh manusia.

Tekanan darah akan mencapai maksimal saat jantung berkontraksi untuk memompa

darah dan disebut tekanan sistolik.

Sedangkan saat jantung sedang istirahat diantara dua kontraksi tersebut, tekanan darah

akan mencapai nilai minimal dimana disebut tekanan diastolik. Untuk kekuatan jantung

dan frekuensi denyut jantung diatur oleh syaraf-syaraf yang menyelubungi jantung.

Pengukuran tekanan darah menggunakan metode

oscillometry

non-

invasive

(41)

tekanan tertentu (Gambar 1) dan sensor tekanan akan menerima sinyal tekanan dari

handcuff

untuk diproses menjadi tekanan sistolik atau diastolik melalui mikrokontroller.

Gambar 1. Contoh Hasil Sinyal Keluaran dari Sensor Tekanan

Keluaran sensor tekanan harus melalui

high pass filter

(HPF) untuk membuang

sinyal frekuensi 0,04Hz karena merupakan frekuensi

handcuff

sedangkan frekuensi

yang dibutuhkan adalah 1Hz yaitu frekuensi tekanan darah. Setelah melewati

rangkaian

filte

r didapatkan data keluaran sensor tekanan dan

Mean Atrial Pulse

(MAP), dengan data tersebut dapat ditentukan posisi tekanan diastolik

dan tekanan

sistolik. Tekanan sistolik dapat dihitung dengan mencari nilai tekanan saat

amplitudo 0,6 dari nilai MAP sebelum nilai MAP, sedangkan tekanan diastolik

dapat dihitung dengan mencari nilai tekanan saat amplitudo 0,8 dari MAP setelah

nilai MAP .

(42)

Langkah Percobaan :

1.

Pasang sensor tekanan MPX5050GP seperti gambar berikut !

Gambar 3.

Datasheet

MPX5050GP

2.

Ukur masukan sensor tekanan MPX5050GP menggunakan

pin analog

Arduino

sebagai data DC. Ubah masukan sensor tekanan dalam mmHg menggunakan

datasheet

yang sudah disediakan.

3.

Tampilkan tekanan dalam mmHg ke

serial monitor

tanpa memberi tekanan pada

sensor tekanan MPX5050GP. Kalibrasi sensor dengan mengurangi nilai yang

tertampil menjadi 0mmHg.

4.

Rangkailah seperti gambar berikut ini menggunakan penguhubung selang

akuarium.

Spesifikasi :

-

Supply

: 5 VDC, 7mA typ.

-

Ported elements, gauge.

-

Pressure range

: 0-50kPa atau 0-375mmHg.

-

Sensitivity

: 90mV/kPa atau 12mV/mmHg.

-

Response time

: 1ms.

(43)

5.

Buatlah

driver

air pump motor

dan solenoid

valve

seperti gambar berikut ini

!

Gambar 5.

Driver

transistor 12V

Gambar 6.

Datasheet

2N2222

6.

Gunakan

pin digital

Arduino untuk mengatur

driver

motor dan solenoid

valve

.

Motor dan solenoid

valve

akan aktif ketika

pin digital

bernilai

HIGH.

7.

Rangkailah

filter

seperti gambar berikut ini ! Masukan

filter

berasal dari sensor

tekanan MPX5050GP. Keluaran

filter

masuk

pin analog

Arduino berupa data

AC.

(44)

Gambar 6.

Datasheet

LM324N

A.

Menghitung

Heart Rate

1.

Buatlah program untuk mengatur pompa seperti diagram alir berikut !

Gambar 6. Diagram Alir

Heart Rate

2.

Pasang

handcuff

seperti Gambar 7. Agar pengukuran lebih baik pasang

handcuff

pada lengan kiri karena lebih dekat dengan jantung. Lakukan pengukuran saat

(45)

Gambar 7. Pemasangan

Handcuff

3.

Amati data AC melalui

serial plotter

pada Arduino (

Tool> Serial Plotter

). Atur

keluaran solenoid

valve

agar keluaran tekanan menjadi 2mmHg/s. Berikut hasil

keluaran data AC dilihat melalui

serial plotter.

Gunakan fitur

smoothing

untuk

memperhalus sinyal AC (

File> Example> Analog> Smoothing).

Data AC

biasanya akan terlihat saat tekanan 70mmHg sampai 130mmHg.

Gambar 8. Data AC dilihat dari

serial plotter

Arduino

(46)

B.

Menentukan Nilai Tekanan Sistolik Dan Diastolik

1.

Hitung nilai

Mean Atrial Pulse

(MAP) dengan mencari amplutido maksiamal

sinyal .

Gambar 9. Daerah Osilasi Sinyal

Blood Pressure

2.

Tekanan sistolik dapat dihitung dengan mencari nilai tekanan saat amplitudo 0,6

dari nilai MAP sebelum nilai MAP, sedangkan tekanan diastolik

dapat dihitung

dengan mencari nilai tekanan saat amplitudo 0,8 dari MAP setelah nilai MAP.

Tugas :

Gambar

Gambar 2. Box Tampak Atas
Gambar 3. Box Tampak Depan
Gambar 5. Sinyal EKG
Gambar 8. Pemasangan Handcuff
+7

Referensi

Dokumen terkait

Adapun tujuan yang diberikan dalam perancangan ini yaitu “ memperkenalkan objek wisata Kampoeng Batik Pesindon Pekalongan... melalui media promosi yang efektif

Mahasiswa telah menyadari bahwa dengan pengelolaan waktu yang tepat maka target untuk menyempatkan diri untuk belajar mandiri serta mengerjakan dan menyelesaikan

[r]

Maka, dunia pada ketika itu telah dikuasai oleh kuasa dominan 1 iaitu Amerika Syarikat dan Soviet Union yang mana mereka telah menjadi musuh selepas Perang Dunia II ini

Hasil penelitian, (1) Pada tahap penanaman konsep siswa diajak ke luar kelas untuk mengamati keadaan lingkungan serta mangerjakan tugas secara kelompok, dan pada

Perlu adanya penelitian lebih lanjut mengenai uji kemampuan lignoselulolitik jamur pelapuk putih pada sampel jamur yang telah diinventarisasi di laboratorium dari hutan

Tujuan penelitian ini adalah 1) Untuk mendeskripsikan langkah-langkah penggunaan CD Interaktif pada pembelajaran matematika di kelas VIII B MTs Darul Huda

Penelitian ini merupakan pengembangan model konseptual dari metode SCS ( The Soil Conservation Service ) yang digunakan untuk perhitungan intersepsi berdasarkan