BAB III PEMBAHASAN - repository.bsi.ac.id · 54 BAB III PEMBAHASAN 1.1. Tinjauan Umum Alat Secara...
Transcript of BAB III PEMBAHASAN - repository.bsi.ac.id · 54 BAB III PEMBAHASAN 1.1. Tinjauan Umum Alat Secara...
54
BAB III
PEMBAHASAN
1.1. Tinjauan Umum Alat
Secara umum alat ini terdiri dari tiga unit sensor, dua motor. Sebagai
pengolah data menggunakan Mikrokontroler AVR Atmega16, dimana sensor
berlogika 1 (nyala) kedua motor DC bergerak bersamaan kedalam dan keluar dengan
menggunakan penundaan sesaat sampai mencapai kondisi tertentu, jika sensor
pertama terkena air maka display LCD memunculkan pesan siaga1, jika sensor kedua
terkena air maka display memunculkan pesan siaga2 dan pintu air terbuka dan
membunyikan alarm, dan jika sensor ketiga terkena air maka display memunculkan
pesan siaga3 dan alarm tetap berbunyi.
1.2. Blok Rangkaian
Pada pembuatan alat pendeteksi banjir ini dasarnya perancangan sistem yang
dibuat penulis adalah pengiriman data melalui antar muka mikrokontroler Atmega16.
Pada saat mikrokontroler mendapatkan input maka akan menampilkan karakter di
layar LCD dan mengirimkan data input menuju PC sesuai apa data yang di terimanya.
Data yang di kirimkan mikrokontroler ke PC menggunakan komunikasi serial
yang sudah tersedia. Kemudian PC akan melakukan verifikasi terhadap data yang di
input, data ini akan diolah menggunakan program bahasa C.
55
Gambar III.1. Blok Rangkaian
Untuk menjelaskan blok rangkaian sistem tersebut maka penulis akan
menjelaskan sebagai berikut:
1. Sensor
Komponen sensor disini merupakan komponen input atau masukan yang akan
diolah atau diproses oleh mikrokontroler AVR ATMega16 yang terdiri dari 3
buah sensor elektroda
Mikrokon
Troler
ATMega16
Sensor
Ketinggian
Air
Motor DC
LCD 16 x 2
Buzzer
Driver
Motor
Motor
DC
Power Suply
(Catu Daya)
INPUT
PROSES
OUTPUT
OUTPUT
56
2. Mikrokontroler AVR ATMega16
Merupakan komponen yang paling penting yang dimana berfungsi sebagai
pengolah data dan penerima input dari sensor yang akan memberikan output
pada driver motor untuk dapat diteruskan ke motor DC.
3. Driver Motor
Untuk mengendalikan pergerakan motor, digunakan sebuah rangkaian driver
penggerak motor DC. Driver ini akan memutar motor DC searah atau berlawanan
jarum jam bila diberi pulsa 1 atau 0. Dengan demikian pergerakan motor dapat
dikendalikan melalui program. Pin – pin driver ini dihubungkan ke P0.0, P0.1,
P0.2 dan P0.3 dari mikrokontroler ATMega16.
4. Motor DC
Merupakan komponen output atau keluaran dengan bantuan gear – gear yang
menerima perintah dari mikrokontroler ATMega16, sehingga dapar menggerakan
pintu air berdasarkan instruksi dari mikrokontroler ATMega16.
5. LCD 16x2
Komponen berfungsi untuk menampilakan suatu nilai hasil sensor,
menampilakan teks, atau menampilkan menu pada aplikasi mikrokontroler
ATMega16.
6. Buzzer
Buzzer adalah sebuah komponen elektronika yang berfungsi untuk mengubah
getaran listrik menjadi getaran suara.
57
3.3. Gambar Rangkaian
1. Gambar Catu Daya
Gambar catu daya terdiri dari transformator step-down dan dioda yang berfungsi
sebagai penyearah gelombang dari tegangan AC ke DC. Pada gambar catu daya
juga terdapat IC regulator yang dipakai menstabilkan dan menurunkan nilai
tegangan agar selalu konstan. Pada gambar ini menggunakan IC regulator 7805
yang berfungsi mengubah besaran tegangan dari catu daya menjadi 5 Volt DC.
Gambar blok catu daya sebagai berikut:
Gambar III.2. Rangkaian Catu Daya.
2. Gambar Mikrokontroler
Rangkaian Sistem Minimum ini berfungsi sebagai pusat kendali dari seluruh
sistem yang ada. Komponen utama dari rangkaian ini adalah IC mikrokontroler
ATMega16. Pada IC mikrokontroler ATMega16 semua program akan diisikan,
sehingga rangkaian akan dapat berjalan sesuai program yang telah kita buat atau
yang kita kehendaki.
58
Dalam IC mikrokontroler memakai bahasa pemograman C yang berfungsi
untuk memberikan perintah dalam bentuk bahasa pemrograman dari komputer
sebagai pengendali mikrokontroler.
Untuk dapat mendeteksi kebanjiran tersebut, maka alat ini harus dapat
mengendalikan motor. Alat ini menggunakan 2 buah motor dan 3 unit
sensor.Motor DC akan berputar searah atau berlawanan arah jarum jam jika salah
satu kutubnya diberi arus positif dan kutub yang lainnya diberi tegangan negatif
atau ground. Dan motor DC akan diputar kearah sebaliknya jika polaritasnya
dibalik.
Dengan sifat demikian maka dibutuhkan suatu rangkaian yang dapat
membalikkan polaritas yang diberikan ke dalam motor DC tersebut, sehingga
putaran motor DC dapat dikendalikan oleh sebuah rangkaian tersebut. Dan jika
rangkaian tersebut dihubungkan dengan rangkaian mikrokontoler, maka
pergerakan motor akan sangat mudah diatur dengan sebuah program. Untuk
dapat mengendalikan putaran motor DC dibutuhkan sebuah rangkaian yang
dirangkai dengan IC Regular 7805 sehingga dengan memberikan sinyal high atau
low pada rangkain maka putaran motor akan sangat mudah diatur.
59
Gambar III.3. Rangkaian Mikrokontroler AVR Atmega16
3. Gambar Rangkaian IC l293D dan Motor DC
Rangkaian IC L293D adalah rangkaian output dari mikrokontroler untuk
menggerakan motor DC dimana IC L293D akan mendapatkan perintah dari
mikrokontroler sehingga sehingga motor DC akan bergerak dan berhenti.
Gambar III.3. Rangkaian L293D dan Motor DC
60
4. Gambar transistor BD139 dan Buzzer
Rangkaian transistor berfungsi untuk memutuskan dan menyambungkan suatu
tegangan yang diperintahkan oleh mikrokontroler sehingga buzzer akan
berfungsi mengeluarkan suara.
Gambar III.3. Rangkaian Transistor BD139 dan Buzzer
5. Gambar rangkaian keseluruhan
Gambar III.4. Rangkaian Keseluruhan
61
3.4. Cara Kerja Alat
Cara keja alat ini sebelum dinyalakan pertama sambungkan arus dengan ke travo,
untuk merubah arus tersebut menjadi tegangan DC (Direct Current) maka
dibutuhkan dioda sebagai penyearah tegangan dari tegangan arus AC(Alternating
Current) menjadi tegangan DC (Direct Current), tegangan yang di butuhkan oleh
rangkaian mikrokontroler 5 Volt DC, maka dibutuhkan sebuah IC Regulator
7805 untuk menurunkan tegangan menjadi 5 Volt untuk mensuplay arus ke
rangkaian mikrokontroler.
Rangkaian ini dikatakan baik apabila ketika sensor air dan sensor cahaya bekerja
memberi input dalam rangkaian mikrokontroler dan output dari mikrokontroler
diteruskan ke rangkaian driver motor untuk menjalankan motor DC.
Rangkaian ini bekerja menggunakan sensor air. Alat ini dipasang di pintu
bendungan air. Pada saat air telah melewati batas minimum sensor yang pertama
maka di layar Lcd berisi pesan SIAGA1, diharapkan semua masyarakat
membereskan semua barang yang ada di dalam tempat tinggalnya. Setelah sensor
melewati batas yang kedua maka di layar Lcd berisi pesan SIAGA2 lalu pintu air
tertutup dan buzzer memberikan sinyal alarm, dengan bunyi sinyal alarm ini
diharapkan semua masyarakat bersiap-siap meninggalkan tempat tinggalnya.
Setelah itu sensor melewati batas maksimal yang ketiga maka layar Lcd berisi
pesan SIAGA3, pintu air tetap tertutup dan buzzer memberikan sinyal alarm
berbunyi terus, di harapkan semua lapisan masyarakat di pastikan sudah tidak
ada lagi di dalam tempat tinggalnya masing-masing. Karena dengan pesan
bahaya tersebut akan terjadi banjir yang meluap.
62
3.5. Perancangan Program
Sistem perangkat keras atau hardware yang dirancang menggunakan IC
mikrokontroler sebagai pengendali utama untuk alat pendeteksi banjir, agar dapat
bergerak atau bekerja dibutuhkan sebuah perangkat lunak untuk mengatur
keseluruhan sistem. Perangkat lunak ini berfungsi sebagai pengatur dan
pengendali yang bertugas menentukan langkah – langkah yang harus dilakukan
mikrokontroler pada keseluruhan sistem, sehingga nantinya dapat ditentukan arah
kendali proses dari sistem yang telah dibuat. Perangkat lunak yang dirancang
pada mikrokontroler ini menggunakan bahasa pemrograman C.
63
3.5.1. Flowchart Program
Diagram alur atau biasa disebut dengan flowchart merupakan penggambaran
secara grafik dari langkah-langkah dan urutan-urutan prosedur dari suatu
program. Diagram alur menggunakan dua buah program utama, yaitu
pemrograman pada mikrokontroler ATMega16 dan pemrograman pada PC.
Berikut ini diagram alur flowchart pada alat pendeteksi banjir yang dibuat :
Start
Input Sensor
1,2&3
Sensor 1
Aktif
Sensor 1&2
Aktif
Sensor 1,2&3
Aktif
LCD
Siaga1
Motor
OFF
Buzzer
OFF
LCD
Siaga2
Motor
OFF
Buzzer
ON
LCD
Siaga3
Motor
ON
Buzzer
ON
End
Ya
Ya
Tidak
Ya
Tidak
Tidak
Gambar III.5. Diagram Alur Flowchart Program
64
3.5.2. Konstruksi Listing Program Code Vision AVR (Coding)
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 21/07/2016
Author :
Company :
Comments:
Chip type : ATmega16
Program type : Application
65
Clock frequency : 11,059200 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#include <stdio.h>
#include <delay.h>
// Declare your global variables here
66
unsigned int count1=0;
unsigned char jrk1;
unsigned char jrk_dpn1;
unsigned char kata1[16];
unsigned char baca_sr04_1(){
count1=0;
//pemberian pemicu berupa pulsa positif minimal 10us
PORTA.1=1;
delay_us(15);
PORTA.1=0;
//menunggu hingga ECHO sama dengan 1
while(PINA.0==0){};
//mencacah untuk mengukur waktu lamanya pulsa 1 dari ECHO
while(PINA.0==1)
{count1++;};
//mengkonversi hasil cacahan menjadi jarak dalam cm
67
jrk1=count1*10/232;
return jrk1;
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=Out
Func0=In
// State7=T State6=T State5=T State4=T State3=0 State2=P State1=0 State0=P
PORTA=0x05;
DDRA=0x0A;
// Port B initialization
68
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In
Func0=In
// State7=1 State6=1 State5=1 State4=1 State3=T State2=T State1=T State0=T
PORTB=0xF0;
DDRB=0xF0;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out
Func0=Out
// State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
69
DDRD=0x0F;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
70
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
71
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
72
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("INITIALIZE.....");
lcd_gotoxy(0,1);
lcd_putsf("..Tech 3 BSI TK.");
73
delay_ms(10000);
PORTB.7=0;
while (1)
{
lcd_clear();
// Place your code here
jrk_dpn1=baca_sr04_1();
sprintf(kata1,"PINTUAIR2=%3dcm",jrk_dpn1);
lcd_gotoxy(0,0);
lcd_puts(kata1);
if(jrk_dpn1>14)
{
lcd_gotoxy(4,1);
lcd_putsf("SIAGA 3");
74
}
if((jrk_dpn1>=10)&&( jrk_dpn1<=14))
{
lcd_gotoxy(4,1);
lcd_putsf("SIAGA 2");
}
if(jrk_dpn1<10)
{
lcd_gotoxy(0,0);
lcd_puts(kata1);
lcd_gotoxy(4,1);
lcd_putsf("SIAGA 1");
PORTB.7=1;
PORTD.0=1;
PORTD.1=0;
delay_ms(1000);
75
PORTD.0=0;
PORTD.1=0;
delay_ms(5000);
PORTD.0=0;
PORTD.1=1;
delay_ms(1000);
PORTD.0=0;
PORTD.1=0;
PORTB.7=1;
};
delay_ms(500);
};
}
76
3.6. Hasil Percobaan
Dari hasil percobaan yang dilakukan dengan multitester dengan tegangan DC,
tegangan yang masuk dari kedalam rangkaian mikrokontroler melalui rangkaian travo
5V. Hasil percobaan tegangan yang masuk sesuai dengan percobaan sebagai berikut:
Tabel III.1. Tabel Pengukur Tegangan.
Percobaan Catu Daya Mikrokontroler Driver Motor
Masuk Keluar Masuk Keluar Masuk Keluar
1 220 5V DC 5V DC 4.8V DC 4.8V DC 0V
2 220 5V DC 5V DC 4.8V DC 4.8V DC 5V DC
Hasil percobaan pertama dan kedua menunjukan tegangan yang keluar dari
driver motor 0 Volt sehingga tidak dapat menggerakkan motor DC, setelah diteliti
lebih lanjut dari rangkaian motor driver ternyata IC driver motor tersebut rusak
karena motor mengambil arus yang besar sehingga menyebabkan IC motor tersebut
rusak setelah kami ganti dengan IC driver motor dan motor DC maka alat kami
mendapatkan supply arus yang seimbang.
Pengujian selanjutnya adalah tegangan yang masuk kedalam rangkaian sensor air
adalah sebagai berikut:
Tabel III.2. Tabel Uji Coba Sensor Air.
Sensor ke- Jarak (cm) Sinyal Sensor Layar LCD Kondisi Buzzer
1 19 cm Nyala Siaga 1 Mati
2 12 cm Nyala Siaga 2 Nyala
3 10 cm Nyala Siaga 3 Nyala
Berdasarkan hasil uji coba dan di dapatkan hasil seperti tabel diatas dapat ditarik
kesimpulan, percobaan pertama yang berjarak 10 cm sinyal sensor menyala, di layar
77
Lcd siaga1 dan kondisi buzzer mati. Pada percobaaan kedua yang berjarak 12 cm
sinyal sensor menyala, layar Lcd siaga2 dan kondisi buzzer nyala dan Pada percobaan
ketiga yang berjarak 19 cm sinyal sensor menyala, layar Lcd siaga3 dan kondisi
buzzer nyala dan hasilnya rangkaian sensor tersebut bekerja dengan baik.
Setelah semua tegangan memenuhi syarat kemudian mulai menjalankan program
dan alat berdasarkan tabel berikut:
Tabel III. 3. Tabel Uji Coba Alat.
No Pengujian
Masukan
S1 S2 S3 Kondisi
Buzzer
Layar
LCD
1 Pengujian
1
0 0 0 Mati Normal Tertutup
1 0 0 Mati Siaga1 Tertutup
1 1 0 Nyala Siaga2 Tertutup
1 1 1 Nyala Siaga3 Terbuka
2 Pengujian
2
0 0 0 Mati Normal Tertutup
1 0 0 Mati Siaga1 Tertutup
1 1 0 Nyala Siaga2 Tertutup
1 1 1 Nyala Siaga3 Terbuka
Berdasarkan pernyataan tabel diatas bisa ditarik kesimpulan alat yang dibuat dan
diprogram bekerja dengan baik, dengan ketentuan ketiga sensor tersebut saling
berhubungan untuk menggerakkan motor agar dapat menggerakkan pintu air secara
otomatis untuk tetap bekerja dengan baik dan masyarakat tidak terkena dari bencana
banjir.
Keluaran
Pintu Air
78
3.7. Daftar Harga Komponen
Tabel III.4.Tabel Harga Komponen
No Komponen Satuan Jumlah Harga/Rp
1 LCD 40.000 2 80.000
2 Atmega16 45.000 2 90.000
3 Sensor UltraSonic 40.000 2 80.000
4 Trafo 30.000 1 30.000
5 IC L293D 7500 1 7500
6 IC Transistor BD139 5000 1 5000
7 Elco 2200uF 5000 1 5000
8 Buzzer 5000 2 10.000
9 Akrilik 2mm & 3 mm 250.000 1 meter 250.000
10 Elco 10uF 1000 2 2000
11 Kabel Warna +Soket 60.000 1 set 60.000
12 IC 7809 2500 3 7500
13 IC 7805 2500 3 7500
14 Dioda 500 5 2500
15 Rumah Atmega16 2500 2 5000
16 Xtal 11.0596 3000 2 6000
17 Push Button 500 2 1000
18 Baut+mur 750 15 11250
19 Resistor 1k+10k 500 10 5000
20 LED 500 5 2500
21 Tulang Ikan 3000 4 12.000
Jumlah
Rp. 679.750,-