volt ke buzzer akan terhubung dan alarm akan hidup. Begitu juga sebaliknya pada saat logika pada P0.2 adalah rendah low maka relay tidak dialiri arus. Hal ini akan
menyebabkan saklar pada relay terputus, sehingga sumber tegangan 12 volt dengan buzzer
akan terputus dan alarm akan mati. Dalam hal ini alarm digunakan untuk peringatan kadar gas LPG dalam ruangan jika sensor TGS 2610 mendeteksi adanya
kebocoran gas LPG.
3.5 Perancangan Rangkaian Buzzer
Rangkaian buzzer pada Gbr 3.6 berfungsi untuk memberikan peringatan berupa nada alarm apabila ada gas LPG yang terdeteksi. Rangkaiannya seperti gambar 3.6:
Gambar 3.6 Rangkaian Buzzer
Pada rangkaian buzzer, alarm yang digunakan adalah buzzer 5 volt. Buzzer ini akan berbunyi jika positipnya dihubungkan ke sumber tegangan positip dan negatipnya
negatipnya dihubungkan ke ground. Pada rangkaian di atas transistor berfungsi sebagai saklar elektronik yang dapat
menghidupkan dan mematikan buzzer. Dari gambar dapat dilihat bahwa negatip buzzer dihubungkan ke kolektor dari transistor NPN 2SC945, ini berarti jika transistor dalam
keadaan aktip maka kolektor akan terhubung ke emitor dimana emitor langsung terhubung ke ground yang menyebabkan tegangan di kolektor menjadi 0 volt, keadaan ini
akan mengakibatkan buzzer berbunyi. Sebaliknya jika transistor tidak aktip, maka kolektor tidak terhubung ke emitor, sehingga tegangan pada kolektor menjadi 5 volt,
keadaan ini menyebabkan buzzer mati. Transistor yang digunakan dalam rangkaian di atas adalah transistor jenis NPN,
transistor jenis ini akan aktip apabila tegangan pada basis lebih besar dari 0,7 volt. Resistor 4,7 Kohm pada basis berguna untuk membatasi arus yang masuk pada basis agar
transistor tidak rusak.
S T A R T
H ID U P K A N K IP A S
H ID U P K A N A L A R M G A S L P G
T E R D E T E K S I
G A S L P G T ID A K T E R D E T E K S I
Y A T ID A K
Y A T ID A K
BAB 4
PENGUJIAN ALAT DAN PERANCANGAN PROGRAM
4.1 Flowchart rangkaian Diagram blok, dan Program 4.1.1 Diagram alir Flowchart
Adapun diagram flowchart dari pemrograman adalah sebagai berikut :
Gambar 4.1 Diagram alir flowchart rangkaian pendeteksi kebocoran gas LPG.
Program awali dengan start yang berarti rangkaian dihidupkan, sensor TGS 2610 akan mendeteksi adanya kadar gas dilingkungan tersebut, apabila sensor tidak mendeteksi
adanya gas maka program akan terus mendeteksi adanya kadar gas padalikungan tersebut. jika terdeteksi adanya gas maka sensor akan mengirimkan sinyal ke mikrokontroler untuk
menghidupkan kipas dan alarm.
4.1.2 Diagram blok rangkaian
secara umum alat pendeteksi kebocoran gas LPG terdiri dari lima blok rangkaian utama.
Blok diagram dari rangkaian dapat dilihat dari gambar 4.4 berikut:
Diagram dari rangkaian sistem pendeteksian dini kebocoran gas LPG menggunakan sensor TGS 2610.
Gambar 4.2 Diagram blok rangkaian pendeteksi kebocoran gas LPG
Untuk mendeteksi gas LPG digunakan sensor TGS 2610. output sensor berupa tegangan. Apabila terkena gas LPG maka tegangan pada output sensor akan semakin besar. Data
output sensor merupakan data analog. Agar dapat dibaca oleh mikrokontroler maka terlebih dahulu output dari sensor dimasukkan ke ADC untuk diolah datanya menjadi data
data digital. Hasil dari perubahan yang di olah oleh ADC inilah yang dikirimkan ke mikrokontroller untuk di proses lebih lanjut. Mikrokontroler AT89S51 berfungsi sebagai
otak dari keseluruhan sistem. Dimana didalam mikrokontroler inilah nantinya semua data akan diolah dan dibandingkan . untuk menjalankan kipas dan menghidupkan alarm
dibutuhkan suatu rangkaian driver relay. Driver menghidupkan kipas dan alarm ini terdiri dari rangkaian relay dimana relay ini berfungsi sebagai saklar otomatis sehingga dapat
menyalakan dan mematikan kipas dan alarm sesuai dengan yang perintahkan secara otomatis dengan sendirinya.
4.1.3 Program
Adapun program yang digunakan pada rangkaian sistem pendeteksian dini kebocoran gas LPG menggunakan sensor TGS 2610 adalah sebagai berikut :
program LPG detector initial port
kipas
bit p3.6 ; alamat kipas
alarm bit p3.5
; alamat alarm program utama:
clr kipas ; matikan kipas
clr alarm ; matikan alarm
clr p3.7 ; cek busy interrupt ADC
acall tadc ; panggil tadc
setb p3.7 ; cek data interrupt ADC
start:
jb p3.7, ; ambil data interrupt ADC
call tadc ; panggil routine tunda ADC
mov a,p0 ; isikan nilai p0 pada alamat a
a = data gas LPG mov 62h,a
; isikan ke alamat 62h nilai a mov b,100
; isikan ke alamat b nilai 100 div ab
; bagikan a dengan b hasilnya save to a mov 72h,a
; isikan nilai a pada 72h mov a,b
; isikan a,b mov b,10
; isikan nilai 10 ke b div ab
; tambahkan ab mov 71h,a
; isikan a di 71h mov 70h,b
; isikan b di 70h call tunda
; panggil tunda mov a,62h
; isikan 62h di a cjne a,0c0h,utama
; baca data gas ada atau tidak , jika tidak ada kembali ke awal
call hidup_kipas ; jika ada hidupkan kipas dan alarm
sjmp utama ; jika tidak kembali ke utama
hidup_kipas:
setb alarm ; terhubungke alarm
setb kipas ; terhubungke kipas
call tunda_alarm_5detik ; pangil kembali alarm sesudah 5 detik
call tunda_kipas_5detik ; pangil kembali kipas sesudah 5 detik
ret
tunda_kipas_5detik: mov r7,200
; ini merupakan delay waktu pada register 7 tnd_kps:
mov r6,255 td_kp:
mov r5,100 djnz r5,
: jika tidak kembali ke register 5 djnz r6,td_kp
djnz r7,tnd_kps ret
tunda: mov r7,100
tnd: mov r6,100 djnz r6,
djnz r7,tnd ret
tadc: mov r7,100
adc: mov r6,40 djnz r6,
djnz r7,adc ret
end
;selesai
4.2 Pengujian Rangkaian Mikrokontroller AT89S51
Untuk mengetahui apakah rangkaian mikrokontroller AT89S51 telah bekerja dengan baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan memberikan
program sederhana pada mikrokontroler AT89S51. Programnya adalah sebagai berikut:
Loop: Setb P0.0
;hubungkan ke p0.0 Acall tunda
;panggil tunda Clr P0.0
;kosongkan p0.0 Acall tunda
Sjmp Loop ;jika tidak kembali ke loop
Tunda: Mov r7,255
;isikan nilai 225 ke register 7 Tnd: Mov r6,255
Djnz r6, Djnz r7,tnd
Ret ;baca
Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P0.0 selama ± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus menerus.
Perintah Setb P0.0 akan menjadikan P0.0 berlogika high yang menyebabkan LED menyala. Acall tunda akan menyebabkan LED ini hidup selama beberapa saat. Perintah
Clr P0.0 akan menjadikan P0.0 berlogika low yang menyebabkan LED akan mati. Perintah Acall tunda akan menyebabkan LED ini mati selama beberapa saat. Perintah
Sjmp Loop akan menjadikan program tersebut berulang, sehingga akan tampak LED tersebut tampak berkedip.
Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut : Kristal yang digunakan adalah kristal 12 MHz, sehingga 1 siklus mesin membutuhkan
waktu =
12 1
12 MHz =
mikrodetik.
Tabel 4.1 Perhitungan waktu tunda nyala LED
Mnemonic Siklus
Waktu Eksekusi MOV Rn,data
2 2 x 1 d = 2 d
DJNZ 2
2 x 1 d = 2 d RET
1 1 x 1 d = 1 d
Rumusan penghitungan delay pada mikrokontroler AT89S51
Tunda: mov r7,255 2
Tnd: mov r6,255 2 djnz r6, 255 x 2 = 510 x 255 = 130.054 = 130.058 = 130.059
d
djnz r7,loop3 2 djnz r2,loop8 2
ret
1 Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah
130.059
detik atau 0,
130059
detik dan dapat dibulatkan menjadi 0,13 detik. Jika program tersebut diisikan ke mikrokontroller AT89S51, kemudian
mikrokontroler dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum mikrokontroler AT89S51 telah bekerja dengan baik.
4.3 Pengujian Rangkaian ADC