LAMPIRAN A RANGKAIAN ELEKTRONIKA LENGKAPrepository.wima.ac.id/1465/7/LAMPIRAN.pdf · 63 L1 10uH VCC...
Transcript of LAMPIRAN A RANGKAIAN ELEKTRONIKA LENGKAPrepository.wima.ac.id/1465/7/LAMPIRAN.pdf · 63 L1 10uH VCC...
61
R9
63k
out HPF
J5
supply
123
vcc-
LA
R21655.555
1 3
2
output
RL
RL
+
C8
1u
+ C11u
output
+
C4
1u
vcc-
RA
buf f er
R8
1k
J10
out
12
J1
RL
12
RA
J2
LA
12 LA
J8
drl
1234
8765
+
C7
1u
+
C2
1u
vcc+
+
C5
1u
+
C3
1u
vcc-
C10
56n
J6
ke PS
123
J4
INA114
1234
8765
vcc-
+
C6
1u
R63.3M
R4
390k
out biovcc+
J3
RA
12
R73.3M
vcc+
+
C9
1u
vcc+
R3
10k
vcc+
J7
buf f er
1234
8765
out bio
vcc-
R5
390k
J9
LPF
1234
8765
out HPF
buf f er
R1
3.9K
<Doc> < R e v C o
Title = ECG
A
1 1Tuesday , May 08, 2012
Title
Size Document Number Rev
Date: Sheet of
LAMPIRAN A
RANGKAIAN ELEKTRONIKA LENGKAP
1. Rangkaian biopotential amplifier dan low-pass filter
62
vcc+
J6
cek notch
12
J3
LF2
1234
8765
vcc-
C1
1.5n
C61u
J4
LF356
1234
8765
C71u
R31M
C2
1.5n
C81u
R4
5k
C91u
R1
2.2M
C4
22u
R5
10k
C101u
C32.7n
R2
2.2MJ2
LF1
1234
8765
vcc+
vcc-
J7
out
12
vcc-
J5
in
12
C5
22u
vcc+
J1
supply
123
vcc-
C111u
vcc+
<Doc> <Rev Code>
Title = HPF&NOTCH
A
1 1Tuesday , May 08, 2012
Title
Size Document Number Rev
Date: Sheet of
2. Rangkaian notch filter dan high-pass filter
63
L1
10uH
VCC
J3Tx_Rx
1 2
VCC
C4
33pF
VCC
D3
ind download
BTN
RESET
JP5
Header Downloader
1 23 45 67 89 10
JDR2A
CONN DSUB 9-R/9-R_0
16
27
38
49
5
R1330
VCC
R3390
C2100nF
J1
ATmega8
1234567891011121314
2827262524232221201918171615
J1_Kristal
12
VCC
J2Tx-Rx
1 2
VCC JP2_Supply
1 2
C6
10uF
R2
1K
C9
10uF
VCC
C1
100nF
VCC
JP2input
1 2
MOSI
D4ind supply
C7
10uF
RESET
C3 33pFMISO
VCC
SCK
SCK
JP1sisa ADC
1 2 3 4 5
C5
10uF
MOSI
U1
MAX232
138
1110
134526
129147
1615
R1INR2INT1INT2IN
C+C1-C2+C2-V+V-
R1OUTR2OUTT1OUTT2OUT
VC
CG
ND
MISO
C8
10uF
RESET
VCC
<Doc> <Rev Code>
Title = ATMEGA 8 & MAX232
A
1 1Tuesday , May 08, 2012
Title
Size Document Number Rev
Date: Sheet of
3. Rangkaian sistem minimum mikrokontroler dan RS-232
64
LAMPIRAN B
LISTING PROGRAM
1. Listing program mikrokontroler
#include <mega8.h>
#include <stdio.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x60
unsigned char read_adc(unsigned char
adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the
ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH; }
int ecg;
float y[3];
float x[3];
float z;
void main(void)
65
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop,
No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by
Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 250,000 kHz
// ADC Voltage Reference: AVCC pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x86;
while (1)
{
66
{awal} ecg = read_adc(0);
putchar(ecg);
delay_us(7750);
{akhir}
// Place your code here
};
}
2. Listing program Form A (BORLAND DELPHI)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, MPlayer; type TForm1 = class(TForm) Label1: TLabel; Image1: TImage; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Image2: TImage; Image3: TImage; Image4: TImage; Label7: TLabel; Label8: TLabel; Label9: TLabel; Button1: TButton; Button2: TButton; Timer1: TTimer; Label10: TLabel; procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private
67
{ Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2, Unit3; {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin close; end; procedure TForm1.Button1Click(Sender: TObject); begin Form2.Show; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label10.Caption:=formatdatetime('"Tanggal : "dd/mm/yyyy',now)+chr(13)+formatdatetime('"Pukul : "hh:nn:ss',now); end; procedure TForm1.FormCreate(Sender: TObject); begin end; end.
3. Listing program Form B (BORLAND DELPHI)
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CPort, CPortCtl, ExtCtrls, TeEngine, Series, TeeProcs, Chart, jpeg, MMSystem; type
68
TForm2 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Chart1: TChart; Series1: TFastLineSeries; ComPort1: TComPort; Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Image8: TImage; Image9: TImage; Image10: TImage; Timer1: TTimer; Image13: TImage; Image19: TImage; Image20: TImage; Timer2: TTimer; Timer3: TTimer; Timer4: TTimer; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure ComPort1RxChar(Sender: TObject; Count: Integer); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Timer5Timer(Sender: TObject); procedure Timer4Timer(Sender: TObject); private
69
{ Private declarations } public { Public declarations } end; var Form2: TForm2; x : integer; y : integer; z : integer; risingEdge : boolean; implementation uses Unit3; {$R *.dfm} {$R cut.res} procedure TForm2.Button1Click(Sender: TObject); begin Comport1.Close; close; end; procedure TForm2.Button3Click(Sender: TObject); begin Comport1.ShowSetupDialog; end; procedure TForm2.Button2Click(Sender: TObject); begin comport1.Open; x := 0; series1.Clear; end ; procedure TForm2.Button4Click(Sender: TObject); begin //timer1.Enabled := false; Comport1.Close; end; procedure TForm2.Button5Click(Sender: TObject); begin //timer4.Enabled := true;
70
end; procedure TForm2.ComPort1RxChar(Sender: TObject; Count: Integer); var dataterima,index,m,datakedua,idx : integer; begin for index:=1 to Count do begin comport1.read(dataterima,1); x := x+1; if (x>500) then begin for idx:=1 to 499 do begin chart1.Series[0].YValue[idx-1] := chart1.Series[0].YValue[idx]; end; chart1.Series[0].YValue[499] := dataterima; x := 500; end else begin with chart1 do with series1 do addxy(x,dataterima); end; {} m := datakedua - dataterima; datakedua := dataterima +1 ; if ((m = 0) AND ( dataterima = 0 ) AND ( dataterima = 0 )) then begin image1.Visible := true; image2.Visible := false; image3.Visible := false; image4.Visible := false; image5.Visible := false;
71
image6.visible := false; image7.visible := false; image8.visible := false; image9.Visible := false; image10.Visible := false; risingEdge := true; end else if ((m > 0) AND ( dataterima >= 0 ) AND ( dataterima <= 3 ))then begin image1.visible := false; image2.visible := true; image3.visible := false; image4.Visible := false; image5.Visible := false; image6.visible := false; image7.visible := false; image8.visible := false; image9.Visible := false; image10.Visible := false; risingEdge := true; end else if ((m > 0) AND( dataterima >= 3 ) AND ( dataterima <= 5 ))then begin if (risingEdge =True) then begin z := z+1; risingEdge := False; timer1.enabled := true; end; end else if ( (m > 0) AND ( dataterima >= 5 ) AND ( dataterima <= 8 ))then begin image1.visible := false; image2.visible := false; image3.visible := false; image4.Visible := true; image5.Visible := false; image6.visible := false; image7.visible := false;
72
image8.visible := false; image9.Visible := false; image10.Visible := false; end else if ( (m > 0) AND ( dataterima >= 8 ) AND ( dataterima <= 12 ))then begin image1.visible := false; image2.visible := false; image3.visible := false; image4.Visible := false; image5.Visible := true; image6.visible := false; image7.visible := false; image8.visible := false; image9.Visible := false; image10.Visible := false; end else if ( (m > 0) AND ( dataterima >= 12) AND ( dataterima <= 16 ))then begin image1.visible := false; image2.visible := false; image3.visible := false; image4.Visible := false; image5.Visible := false; image6.visible := true; image7.visible := false; image8.visible := false; image9.Visible := false; image10.Visible := false; risingEdge := true; end else if ( (m > 0) AND ( dataterima >= 16 ) AND ( dataterima <= 18 ))then begin image1.visible := false; image2.visible := false; image3.visible := false; image4.Visible := false; image5.Visible := false; image6.visible := false;
73
image7.visible := true; image8.visible := false; image9.Visible := false; image10.Visible := false; risingEdge := true; end else if ( (m < 0) AND ( dataterima >= 18 ) AND ( dataterima <= 15 ))then begin image1.visible := false; image2.visible := false; image3.visible := false; image4.Visible := false; image5.Visible := false; image6.visible := false; image7.visible := false; image8.visible := true; image9.Visible := false; image10.Visible := false; risingEdge := true; end else if ( (m < 0) AND ( dataterima >= 16 ) AND ( dataterima <= 14 ))then begin image1.visible := false; image2.visible := false; image3.visible := false; image4.Visible := false; image5.Visible := false; image6.visible := false; image7.visible := false; image8.visible := false; image9.Visible := true; image10.Visible := false; risingEdge := True; end else if ( (m < 0) AND ( dataterima >= 14 ) AND ( dataterima <= 10 ))then begin image1.visible := false; image2.visible := false; image3.visible := false;
74
image4.Visible := false; image5.Visible := false; image6.visible := false; image7.visible := false; image8.visible := false; image9.Visible := false; image10.Visible := true; risingEdge := true; end ; end; //for end; procedure TForm2.Timer1Timer(Sender: TObject); begin timer1.enabled :=false ; image13.Visible := true ; image19.Visible := false; image20.Visible := false; timer2.Enabled := true; edit2.Text := inttostr(z); timer4.Enabled := true; PlaySound(PChar(1),HInstance, snd_ASync or snd_Memory or snd_Resource); end; procedure TForm2.Timer2Timer(Sender: TObject); begin timer2.Enabled := false ; image13.Visible := false; image19.Visible := true; image20.Visible := false; timer3.Enabled := true; end; procedure TForm2.Timer3Timer(Sender: TObject); begin timer3.Enabled := false ; image13.Visible := false; image19.Visible := false; image20.Visible := true; sndPlaySound(nil, 0); // Stops the sound end;
75
procedure TForm2.Timer4Timer(Sender: TObject); begin edit1.text := inttostr(z); z := 0; end; end.
76
LAMPIRAN C
PENGATURAN SETTING ADC DAN UART
Berikut adalah langkah dalam melakukan pengaturan mikrokontroler
dengan menggunakan software bantu code vision:
1. Buka software code vision
2. Pilih file→New→Project
78
5. Setelah itu, atur chip pada ATMEGA 8 dan clock pada 16MHZ
6. Pilih tab ADC pada menu bar yang tersedia
79
7. Aktifkan check bar ADC enabled, use 8 bits, dan atur clock
pada 500KHZ
8. Pilih tab UART dan pilih check box transmitter dan receiver
81
LAMPIRAN D
GAMBAR ANIMASI
Berikut adalah gambar – gambar yang digunakan dalam pembuatan
animasi:
Gambar 1:
Gambar 2:
Gambar 3:
\
86
BIODATA PENULIS
Nama : Caresa Juwana
NRP : 5103008003
Tempat, tgl.lahir : Surabaya, 13 Oktober 1989
Agama : Katolik
Alamat : Manyar Jaya 7/28
Surabaya 60226
Riwayat Pendidikan :
� Tahun 2002, Lulus SD YPPI I, Surabaya
� Tahun 2003, Lulus SMP YPPI II, Surabaya
� Tahun 2006, Lulus SMA YPPI I, Surabaya