Perancangan Rangkaian Buzzer Pengujian Rangkaian Mikrokontroller AT89S51

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