Index of /students/paper/skripsi/20404128 BAB empat skripsi

BAB IV
ANALISA DAN HASIL UJI COBA RANGKAIAN

4.1

Prinsip Kerja Rangkaian
Rangkaian ini bekerja berdasarkan dua buah sensor yang di pasang secara

berdampingan, dengan memanfaatkan Phototransistor
Phototransistor yang

sebagai sensor. Sensor

berguna untuk mendeteksi orang masuk , kemudian

mikrokontroler akan mengendalikan tampilan 7-segment untuk menunjukkan
jumlah orang di dalam suatu ruangan dan buzzer untuk indikator atau
menandakan adanya orang masuk.

Gambar 4.1 Skema rangkaian Secara Detail


29

30

4.2

Diagram Alir Program
Berikut merupakan program untuk Alat Penghitung Banyaknya Orang

yang ada didalam suatu ruangan berdasarkan penjelasan pada diagram alir pada
gambar yang ditulis dengan menggunakan bahasa pemrograman assembler:

Diagram Alir Program :

Gambar 4.2 Diagram Alir Program

31

Prinsip kerja diagram alir program adalah sebagai berikut :



Program di mulai dengan mengisi TMOD (Timer Mode Register) dengan
01H, TL0 (Timer 0 Low Byte) dengan 0B8H, dan TH0 (Timer 0 High Byte)
dengan 8EH, artinya interupsi terjadi setiap 25 ms:

UTAMA: mov TMOD,#01H



; memasukkan nilai 01H ke register TMOD

mov TL0,#0B8H

; memasukan nilai 0B8H ke register TL0

mov TH0,#8EH

; memasukan nilai 8EH ke register TH0

Selanjutnya Interupsi Timer 0 dan Interupsi global diaktifkan, dengan list

program :



setb ET0

; memberikan bit 1 ke pin ET0 ( enable Timer 0 )

setb EA

; memberikan bit 1 ke EA ( aktifkan interupsi )

Timer 0 dihidupkan , dengan list program :
setb TR0



Register 1 dan 2 di isi dengan 0, list program :

AWAL:




; memberikan bit 1 ke TR0 ( aktifkan Timer 0 )

mov R1,#0

; memberikan register 1 dengan nilai awal 0

mov R2,#0

; memberikan register 2 dengan nilai awal 0

Data dari akumulator dikirim dan ditampilkan ke Port 0, kemudian discan
secara berulang dari P2.6 ke P2.5, dengan list program :

LOOP:

mov A,R1


; memasukan nilai di R1 ke A

mov dptr,#ANGK

; menunjuk data pointer ke ANGK

movc A,@A+DPTR
mov P0,A

; memasukan nilai a ke P0

clr

; memberikan P2.7 dengan nilai bit 0

P2.7

call delay

; memanggil subroutin delay


32

setb P2.7

; memberikan pin P2.7 (set relay )

mov A,R2

; memasukan nilai R2 ke dalam A

mov dptr,#ANGK

; menunjuk ke data pointer ANGK

movc A,@A+DPTR
mov P0,A

; memasukan nilai A ke P0


clr

; memberikan bit 0 pada pin P2.6

P2.6

call delay

; memanggil subroutin delay

setb P2.6

; memberikan bit 0 pada pin P2.6

jmp

; kembali ke loop

loop


Prinsip kerja diagram alir program interupsi adalah sebagai berikut :


Program di mulai dengan mengisi TL0 (Timer 0 Low Byte) dengan 0B8H,
dan TH0 (Timer 0 High Byte) dengan 8EH, list program :

INTERRUPT :
BACA:



mov TL0,#0B8H

; memberikan nilai TL0 dengan nilai 0B8H

mov TH0,#8EH

; memberikan nilai TH0 dengan alamt 8EH

Apabila R4 dan R3 sama dengan 0 maka P0.7 diberi logika 1 (non aktifkan

buzzer) kemudian baca port 1, tetapi apabila R4 dan R3 tidak sama dengan 0
maka proses berikutnya baca port 1. Langkah selanjutnya apakah tidak ada
orang masuk ? jika ya, kembali ke program utama dan ulangi perintah, jika
tidak, lanjutkan ke proses berikutnya. Dengan list program :
djnz R4,SKIP

; mengurangi satu nilai R4 jika R4 tidak
sama dengan 0 loncat ke SKIP

djnz R3,SKIP

; mengurangi satu nilai R3 jika R3 tidak
sama dengan 0 loncat ke SKIP

SKIP:

setb P0.7

; memberikan pi P0.7 dengan bit 1


mov A,P1

; memasukan nilai P1 ke A

cjne A,#0FFH,MASUK ; Jika A tidak sama dengan 0FFH loncat ke

33

MASUK
sjmp BACK



; Loncat ke BACK

Langkah berikutnya jika apakah ada orang masuk ? jika ya, tunggu sampai
P1.1 sama dengan 0 kemudian bunyikan buzzer (isi P0.7 dengan logika 0)
dan naikkan indeks data R2 dengan 1. jika tidak, apakah ada orang keluar ?
jika tidak, kembali ke program utama dan ulangi perintah. Jika ya, tunggu
sampai P1.0 sama dengan 0 kemudian bunyikan buzzer (isi P0.7 dengan

logika 0) dan turunkan indeks data R2 dengan 1. Dengan list program :

MASUK: cjne A,#0FEH,KELUAR; Jika A tidak sama dengan 0FEH loncat ke
Keluar
TM

: jb

TS

: jnb

P1.0,TM
P1.0,TS

; Loncat ke TM jika P1.0 sama dengan 1
; Loncat ke TS jika P1.0 tdk sama dengan 1

call BUZZER
mov R4,#0H

; memasukan nilai 0H ke R4

mov R3,#0AH

; memasukan nilai AH ke R3

inc R2

; memberikan R3 ditambah 1

call UJI_MS

; memanggil prosedur UJI_MS

cjne R2,#0AH,BACK

; Jika R2 tidak sama dengan 0AH loncat ke
BACK

mov R2,#0

; memasukan R2 dengan nilai 0

inc R1

; memberikan R1 ditambah 1

cjne R1,#0AH,BACK

; Jika R1 tidak sama dengan 0AH loncat ke
BACK



mov R1,#0

; memasukan register 1 sama dengan 0

mov R2,#0

; memasukan register 2 sama dengan 0

jmp BACK

; Loncat ke BACK

Jika R2 tidak sama dengan -1 maka kembali program utama dan ulangi
perintah, tetapi jika R2 sama dengan -1, maka isi R2 dengan 9 dan kurangkan

34

R1 dengan 1. Langkah berikutnya apabaila R1 tidak sama dengan -1 maka
kembali program utama dan ulangi perintah, tetapi jika R1 sama dengan -1,
maka isi R1 dan R2 dengan 0. Dengan list program :
KELUAR: cjne A,#0FDH,BACK ; Jika A tidak sama dengan 0FD loncat
BACK
TK

: jb

P1.1,TK

TSL

: jnb P1.1,TSL

; Loncat ke TK jika P1.1 sama dengan 1
; Loncat ke TSL jika P1.1 tdk sama dengan 1

call BUZZER
mov R4,#0H

; memasukan nilai 0H ke R4

mov R3,#0AH

; memasukan nilai AH ke R3

call UJI_KL

; memanggil prosedur UJI_KL

dec R2

; memberikan R2 dikurangi 1

cjne R2,#0FFH,BACK ; Jika R2 tidak sama dengan 0FF loncat ke
BACK
mov R2,#9

; memasukan R2 dengan nilai 9

dec R1

; memberikan R1 dikurangi 1

cjne R1,#0FFH,BACK

; Jika R1 tidak sama dengan 0FFH loncat ke
BACK

mov R1,#0

; memasukan register 1 sama dengan 0

mov R2,#0

; memasukan register 2 sama dengan 0

BACK : reti

; return kembali dari prosedur

BUZZER : clr P0.7
call DELAY
setb P0.7
ret
DELAY : mov R7,#100

; prosedur delay

DELAY1: mov R6,#50

; prosedur delay

DELAY2: djnz R6,DELAY2

; prosedur delay

djnz R7,DELAY1

; prosedur delay

35

ret

UJI_MS : cjne R2,#1H,BALIK

; Jika R2 tdk sama dengan 1H loncat ke
BALIK

cjne R1,#0H,BALIK

; Jika R1 tdk sama dengan 0H loncat ke
BALIK

clr P2.5

; memberikan bit 0 pada P2.5

jnb P3.0, KIPAS

; Loncat ke KIPAS

ret

; retrun

jika P3.0 tdk sama

dengan 1

KIPAS : clr P2.0

; memberikan bit 0 pada P2.0

UJI_KL : cjne R2,#0H,BLK

; Jika R2 tidak sama dengan 0 loncat ke
BLK

cjne R1,#0H,BLK

; Jika R1 tidak sama dengan 0 loncat ke
BLK

setb P2.5

; memberikan 1 bit pada P2.5

setb P2.0

; memberikan 1 bit pada P2.0

ret

; retrun

BALIK : ret

; retrun

BLK

; kembali prosedur UJI_MS

: ret

ANGK : db 11000000b
db 11111001b
db 10100100b
db 10110000b
db 10011001b
db 10010010b
db 10000010b
db 11111000b
db 10000000b
db 10010000b
end

36

4.3

Prosedur Uji Coba Rangkaian
Setelah rangkaian selesai dikerjakan maka penulis perlu melakukan
pengujian terhadap rangkaian secara keseluruhan dengan bergantian.
Adapun hal-hal yang perlu penulis lakukan untuk pengujian sebagai
berikut:
1. Siapkan alat atau rangkaian yang akan di uji coba.
2. Menyiapkan Catu Daya dengan arus searah (DC) sebesar +5 volt.
3. Menghubungkan rangkaian atau alat dengan catu daya sebesar +5 volt.
4. Setelah rangkaian atau alat terhubung dengan catu daya, maka alat telah
siap diuji.
5. Untuk memberikan inputan pada mikrokontroller, dengan cara memberi
inputan melalui sebuah sensor infa merah. Yaitu dengan cara memutus
gelombang cahaya yang di pancarkan oleh LED infa merah pada sensor
tersebut, maka sensor tersebut akan menghasilkan output yang akan di
berikan untuk mikrokontroller. Selain sensor phototransistor penulis juga
menggunakan sensor suhu sebagai inputan untuk menggerakan kipas
angin.
6. Setelah itu output yang telah didapat dari mikon maka akan dilanjutkan
kembali sebagai inputan untuk buzzer dan seven segment.
7. Buzzer digunakan sebagai indikator untuk penanda ada tidaknya orang
yang masuk ke dalam ruangan.
8. Sevent Segment digunakan sebagai tampilan dari berapa banyak orang
yang telah masuk ke dalam ruangan.
9. Selain dari output yang telah di sebutkan masih ada Motor Penggerak /
Kipas Angin digunakan sebagai output dan perinsip kerja dari kipas
tersebut adalah, jika sensor suhu yang digunakan mendeteksi suhu

37

melebihi dari suhu rata-rata maka kipas angin tersebut akan bergerak, dan
jika suhu tidak melebihi dari suhu rata-rata maka kipas tidak akan
bergerak.
4.4

Hasil Uji Coba Rangkaian
Pada rangkaian yang dibuat penulis perlu melakukan uji coba untuk

memastikan apakah Rangkaian ini dapat berjalan dengan baik dan tidak terjadi
masalah pada saat digunakan. Uji coba dilakukan dengan memberi inputan
melalui sensor Phototransistor dan diteruskan kembali ke Mikrokontroller
AT89S51 dan diketahui hasilnya pada 7_Segment dan Buzzer sebagai outputnya.
Dari hasil uji coba yang dilakukan dapat dilihat pada tabel 4.1 :

Orang

Tampilan

Tampilan

Keadaan

Tegangan

Masuk

7_Segment 1

7_Segment 2

Buzzer

Output

00

0

0

0

2,5 V

01

0

1

1

3,8 V

02

0

2

1

3,8 V

03

0

3

1

3,8 V

04

0

4

1

3,8 V

05

0

5

1

3,8 V

06

0

6

1

3,8 V

07

0

7

1

3,8 V

08

0

8

1

3,8 V

09

0

9

1

3,8 V

(Sumber : Hasil Uji Coba Laboratorium, 2008)

Ket: 1 = Hidup 0 = Mati

Tabel 4.1 Hasil Uji Coba Rangkaian

38

Dari hasil percobaan yang telah dilakukan dengan simulasi banyaknya
orang yang masuk. Banyaknya orang yang masuk dibatasi sampai 99 orang saja
yang dapat terhitung oleh rangkaian ini. Jika rangkaian ini dicoba dengan
banyaknya orang melebihi batas yang telah ditentukan tidak akan terlihat pada
tampilan 7_segment. Karena 7_segment yang digunakan hanya dua buah
7_segment.
Dari hasil percobaan yang telah dilakukan didapatkan hasil yang tertera
pada tabel 4.1. Pada tabel 4.1 tersebut hanya dicantumkan sampai 9 orang saja
yang masuk, karena hanya untuk simulasi dari alat yang di buat. Akan tetapi batas
maksimal untuk percobaan hanya 99 orang saja yang bisa terbaca pada sevent
segment.
Penulis juga melakukan uji coba rangkaian secara keseluruhan karena pada
rangkaian sensor cahaya infrared, ketika sensor dalam keadaan terkena cahaya
atau dalam keadaan tidak aktif maka sensor tersebut memiliki tegangan output.
Pada tabel 4.2 dapat dilihat hasil dari pengujian yang dilakukan dengan
menggunakan voltmeter pada saat sensor terhalang oleh orang yang melewati
sensor dan tidak terhalang oleh orang:

Sensor Infa Merah

Sebelum

Setelah input

Keadaan Led

(Infrared)

Input (V)

(V)

(Output)

Masuk

2,2 Volt

3,8 Volt

Mati

Keluar

2,2 Volt

3,8 Volt

Mati

(Sumber : Hasil Uji Coba Laboratorium, 2009)
Tabel 4.2 Hasil Uji Coba Sensor Infrared
Dari data diatas didapat tegangan output sebesar 2,2 volt ketika sensor
dalam keadaaan terkena cahaya. Jika sensor tidak terkena cahaya maka didapat
tegangan output sebesar 3,8 volt.

39

Sensor Suhu (LM35)

Output (V)

Keadaan Led

Keadaan Kipas

(Output)

Angin

Suhu Normal

2,6 Volt

Hidup

Mati

Suhu Maksimum

± 5,0 Volt

Mati

Hidup

(Sumber : Hasil Uji Coba Laboratorium, 2009)
Tabel 4.3 Hasil Uji Coba Sensor Suhu LM35
Dari hasil data pengamatan yang telah diperoleh dalam uji coba sensor
suhu LM35, maka diketahui cara kerja dan dapat dianalisa bahwa sensor suhu
tersebut bekerja atau aktif apabila sensor mendeteksi suhu mencapai suhu
maksimum yang telah ditentukan. Dan sensor tersebut akan mengaktifkan kipas
angin secara otomatis. Apabila suhu di dalam ruangan kembali normal maka kipas
angin akan non aktif kembali.
4.5

Kendala Rangkaian

Dalam rangkaian yang penulis buat masih terdapat kendala terutama pada
sensor dimana tingkat kepekaan terhadap jarak selalu berubah-ubah. Namun, hal
tersebut dapat diatasi dengan mengatur arus pada trimpot yang terdapat didalam
rangkaian input. Selain itu juga kendala yang sering dihadapi yaitu pendeteksian
suhu yang dilakukan oleh sensor LM35 yang resolusinya terlalu kecil hingga
mencapai 10mV menjadi kendala yang berat juga. Namun kendala sperti itu dapat
diatasi dengan memberikan rangkaian comparator sebagai rangkaian inverting.
Sehingga dapat dilakukan penguatan terhadap output yang diperoleh dari setiap
sensornya.