BAB IV
IMPLEMENTASI DAN ANALISIS SISTEM
Setelah perencanaan dan pembuatan
sistem maka langkah selanjutnya yaitu melakukan implementasi terhadap sistem
yang telah dibuat. Pengujian dilakukan untuk mengetahui apakah sistem yang
telah
dibangun dapat berjalan sesuai dengan yang diinginkan. Pengujian dan
analisa yang dilakukan meliputi : mikrokontroller, sensor ultrasonik PING, modem dan motor
stepper.
Dalam implementasi dari beberapa
rangkaian tersebut diatas dengan cara dihubungkan dengan power supply sesuai
dengan perencanaan. Setelah dilakukan pengujian maka langkah selanjutnya
adalah dilakukan analisa terhadap sistem
yang telah dibuat, sehingga bisa membandingkan dengan teori yang sudah ada,
apakah ada perbedaan antara praktek dan teori, kemudian dicari pemecahan dari
masalah tersebut.
4.1 Catu Daya
Catu daya yaitu digunakan untuk
memberikan tegangan masukan ke mikro, dan sumber daya arus searah (DC) Pada
tiap-tiap rangkaian dalam sistem. Rangkaian catu daya dalam sitem ini terdiri dari 4 buah dioda penyearah, sebuah
LED, sebuah kapasitor 1000 uf / 50 volt, sebuah kapasitor 100 nf, sebuah
resistor 1 Kohm, sebuah IC penstabil tegangan dan sebuah transformator.
Transformator yang di gunakan berkapasitas 2A dengan tegangan primer 220 volt
AC dan tegangan sekunder 12 volt AC tersebut untuk masukan atau tegangan ke
motor steper langsung. Kemudian tegangan 12 AC di konekan ke IC penstabil
tegangan adalah IC 7805 yang di gunakan untuk mensetabilkan tegangan sebesar +5
volt dan di gunakan untuk mengaktifkan rangkaian mikrokontroler atau masukan
tegangan ke mikro.
4.2 Mikrokontroler AVR AT Mega16
Implementasi ini dimaksud untuk
memeriksa apakah mikrokontroller dapat berfungsi dengan baik atau tidak. Untuk
pengujiannya memakai software CodeVision AVR C Compiler.
Dalam
penggunaan perangkat keras ini, mikrokontroler di gunakan untuk mesin atau
rangkaian elektronika pengontrol, dengan jalan kabel atau input output portA1
ke sensor ultrasonic. PortB ke buffer inframerah atau swict yang berfungsi sebagai
menghentikan motor stepper. PortD0 dan D1 ke konektor komunikasi serial menju
modem dan motor stepper di portD3 dan D4.
4.3 Sensor Ultrasonik
Fungsi sensor ultrasonic di rangkaian
ini adalah memberi informasi jarak dari
kisaran 3cm hingga 3m, sedangkan yang digunakan dalam alat ini sensor
ultrasonik menginformasikan jarak air dengan jarak sebagai berikut : besar dari 16cm dari permukaan air ke sensor
ultrasonik, kurang dari 12cm dari permukaan air ke sensor ultrasonik dan kurang
dari 6cm dari pemukaan air ke sensor ultrasonik.
4.4 Modem
Modem ini berfunsi sebagai pengirim sms dari
mikrokontroler ke handpone dengan pesan info jarak yang sudah dimasukan
dalam program pada mikrokontroler.
4.5 Motor Stepper
Motor
steper akan berfungi jika kondisi air di posisi besar dari 16cm dan kurang dari
6cm dari permukaan air. Saat di posisi 16cm dari permukaan air motor stepper
akan bergerak searah jarum jam dan begitu sebaliknya jika posisi air pada 6cm
dari permukaan air, Motor steper akan bergerak kebalikannya.
4.6 Tampilan Flowchart
Sistem
Cara Kerja Flowchart Sistem
Dalam alat pemantauan pasang dan
surut air ini digunakan mikrokontroller
sebagai pembanding data input ketinggian default dari user dengan data
ketinggian air yang telah dibaca oleh sensor. Sensor yang dipakai yaitu sensor
ultrasonik karena gelombang ultrasonik dapat memantul pada permukaan air dan
sensor ultasonik memiliki keakuratan yang bagus. Membaca ketinggian air oleh
sensor ultrasonik ini menggunakan prinsip lamanya pantulan gelombang tersebut
atau intensitas kekuatan pantulannya. Output dari modul sensor ultrasonik ini
akan dikonversi datanya menjadi data digital oleh ADC per satuan waktu, dan data tersebut akan masuk
sebagai data input dari sensor pada komparator yaitu mikrokontroler.
Untuk proses pertama user (petugas air) akan memberi
input ketinggian air yang diinginkan pada keypad matriks dan data tersebut akan
dibaca oleh mikrokontroler sebagai data input user. Mikrokontroler yang telah
diprogram akan selalu membanding data dari sensor dan data dari user, kedua
data tersebut sebelumnya dikonversi menjadi data 8 bit atau data 16 bit dan
jenis mikrokontroler yang nyaman untuk proses ini yaitu mikrokontroller jenis
AVR (AT Mega16).
Ada tiga kondisi output dari hasil pembandingan data masukan,
Pertama apabila kondisi air besar dari 16cm, dari sensor
ultrasonik maka mikrokontroler akan memberi sinyal output atau perintah pada
driver motor untuk menutup pintu dan mengirim sms pada handphone .
Kedua apabila kondisi air kurang dari 12cm, dari sensor
ultrasonik maka mikrokontroler akan memberi sinyal output atau perintah pada
driver motor untuk untuk diam atau tetap pada kondisi tersebut (motor tidak
bekerja) akan tetapi mokrokontroler akan menginformasikan atau mengirim sms
pada handphone.
Ketiga apabila data kondisi air kurang dari 6cm, dari
sensor ultrsonik maka mikrokontroler
akan memberi sinyal output atau perintah pada driver motor untuk membuka pintu
air (motor bekerja) serta modem mengirimkan sms pada handphone dan
menunggu sampai kondisi air surut dan kemudian pintu akan tertutup.
Setiap
instruksi atau pembandingan data ini dilakukan terus-menerus setiap satuan
waktu (contoh per sepuluh detik) sehingga apabila motor sedang bekerja (membuka
atau menutup) dan ketinggian air sudah kembali ke ketinggian yang diinginkan
maka dengan segera pintu air akan mempertahankan kondisi tersebut hingga
perubahan selanjutnya.
Output atau sinyal dari mikrokontroler
ini akan diterima oleh driver motor. Data digital dari mikrokontroller ini
masih lemah dan fungsi dari driver motor ini untuk menguatkan atau menggerakkan
motor gearbox yang dipasang pada pintu air. Prinsip kerja driver motor ini
yaitu mengatur arah putar motor gearbox ini sehingga motor pintu air ini bisa
berfungsi untuk membuka dan menutup pintu air ini dengan mudah.
4.7
Software
Standar bahasa C yang asli adalah
standar dari UNIX. Sistem operasi,
kompiler C dan seluruh program aplikasi UNIX yang esensial ditulis dalam bahasa
C.
Struktur penulisan bahasa C umum
terdiri atas empat blok, yaitu;
Header
#include <mega16.h>
#include<delay.h>
Keterangan:
#(Preprosessor)
digunakan untuk memasukkan(include) text dari
file lain.
#include
berarti meng-include file mega16 yang ada di CC:\cvavr\inc\. Dengan demikian berarti kita mempersiapkan, fungsi-fungsi
dan instruksi-instruksi yang dapat digunakan pada pemrogramman mikrokontroler
ATMega16
seperti perintah DDRA, PORTA, PORTB, PINA, register-registernya dan lain-lain.
Proses Level ketinngian air
Listing Program:
#define Clock PORTD.2
#define Direction PORTD.3
#define Enable PORTD.4
int Arah,SMS1,SMS2;
#include
#include
#define SigOut PORTA.1
#define SigIn PINA.1
#define DirSig DDRA.1
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include
#include
#include
"Deklar.c"
#include
"Ping.c"
#include
"GSM.c"
#include
"Stepper.c"
void main(void)
{
Deklarasi();
lcd_init(16);
//---- Arah=1 -->
dianggap air penuh, arah motor membuka
Arah=1;
SMS1=0;
SMS2=0;
while (1)
{
//--- Arah==1 --> motor turun
if((JarPing>16))
{
PutarTutup();
if(PINB.2==0) // kena limit bawah
{
PutarBuka();
SendSMS16();
}
}
if((JarPing>=11)&&(JarPing<=12))
{
SendSMS11();
}
//--- Arah==0 --> motor naik
if((JarPing<6 span="">6>
{
PutarBuka();
if(PINB.1==0) // kena limit atas
{
PutarTutup();
SendSMS6();
}
}
};
}
Program ini menampilkan level
ketinggia air apabila kondisi air besar dari 16cm, dari sensor ultrasonik maka
mikrokontroler akan memberi sinyal output atau perintah pada driver motor untuk
menutup pintu dan mengirim sms pada handphone .
Kedua apabila kondisi air kurang dari 12cm, dari sensor
ultrasonik maka mikrokontroler akan memberi sinyal output atau perintah pada
driver motor untuk untuk diam atau tetap pada kondisi tersebut (motor tidak
bekerja) akan tetapi mokrokontroler akan menginformasikan atau mengirim sms
pada handphone.
Kemudian apabila data kondisi air kurang dari 6cm, dari sensor ultrsonik maka
mikrokontroler akan memberi sinyal
output atau perintah pada driver motor untuk membuka pintu air (motor bekerja)
serta modem mengirimkan sms pada handphone dan menunggu sampai kondisi
air surut dan kemudian pintu akan tertutup.
Proses Pembacaan
Sensor PING (Sensor Ultrasonik)
Listing Program:
float BacaPing(void)
{
counter=0; //Initial value
DirSig=1; //Set as output
SigOut=1;
delay_us(5);
SigOut=0;
DirSig=0; //Set as input
SigOut=1;
while (SigIn==0)
{}
while (SigIn==1)
{counter++;}
return distance;
}
Proses Pengiriman
SMS
Listing Program:
void SendSMS16 (void)
{
lcd_clear();
// lcd_gotoxy(0,0);
//
lcd_putsf("Mengirim SMS");
//printf("AT");
putchar('A');
putchar('T');
delay_ms(500);
//printf("AT+CMGF=1");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('M');
putchar('G');
putchar('F');
putchar('=');
putchar('1');
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
//printf("AT+CSCA=");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('S');
putchar('C');
putchar('A');
putchar('=');
putchar(0x22);
//printf("+6289644000001");
// No SMS Center
Operator yg digunakan
// THREE
putchar('+');
putchar('6');
putchar('2');
putchar('8');
putchar('9');
putchar('6');
putchar('4');
putchar('4');
putchar('0');
putchar('0');
putchar('0');
putchar('0');
putchar('0');
putchar('1');
putchar(0x22);
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
//printf("AT+CMGS=");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('M');
putchar('G');
putchar('S');
putchar('=');
putchar(0x22);
//printf("+6281802414034");
// No HP Tujuan
putchar('+');
putchar('6');
putchar('2');
putchar('8');
putchar('9');
putchar('9');
putchar('5');
putchar('5');
putchar('5');
putchar('8');
putchar('0');
putchar('3');
putchar('3');
putchar(0x22);
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
// Isi Pesan
putchar(0x0D);
putchar('K');
putchar('e');
putchar('t');
putchar('i');
putchar('n');
putchar('g');
putchar('g');
putchar('i');
putchar('a');
putchar('n');
putchar(' ');
putchar('a');
putchar('i');
putchar('r');
putchar(':');
putchar('1');
putchar('6');
putchar(' ');
putchar('c');
putchar('m');
putchar(0x1A);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("SMS
Terkirim");
lcd_gotoxy(0,1);
lcd_putsf("jarak
16 cm");
delay_ms(1000);
}
void SendSMS11 (void)
{
lcd_clear();
// lcd_gotoxy(0,0);
//
lcd_putsf("Mengirim SMS");
//printf("AT");
putchar('A');
putchar('T');
delay_ms(500);
//printf("AT+CMGF=1");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('M');
putchar('G');
putchar('F');
putchar('=');
putchar('1');
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
//printf("AT+CSCA=");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('S');
putchar('C');
putchar('A');
putchar('=');
putchar(0x22);
//printf("+6289644000001");
// No SMS Center
Operator yg digunakan
// THREE
putchar('+');
putchar('6');
putchar('2');
putchar('8');
putchar('9');
putchar('6');
putchar('4');
putchar('4');
putchar('0');
putchar('0');
putchar('0');
putchar('0');
putchar('0');
putchar('1');
putchar(0x22);
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
//printf("AT+CMGS=");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('M');
putchar('G');
putchar('S');
putchar('=');
putchar(0x22);
//printf("+6281802414034");
// No HP Tujuan
putchar('+');
putchar('6');
putchar('2');
putchar('8');
putchar('9');
putchar('9');
putchar('5');
putchar('5');
putchar('5');
putchar('8');
putchar('0');
putchar('3');
putchar('3');
putchar(0x22);
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
// Isi Pesan
putchar(0x0D);
putchar('K');
putchar('e');
putchar('t');
putchar('i');
putchar('n');
putchar('g');
putchar('g');
putchar('i');
putchar('a');
putchar('n');
putchar(' ');
putchar('a');
putchar('i');
putchar('r');
putchar(':');
putchar('1');
putchar('1');
putchar(' ');
putchar('c');
putchar('m');
putchar(0x1A);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("SMS
Terkirim");
lcd_gotoxy(0,1);
lcd_putsf("jarak
11 cm");
delay_ms(1000);
}
void SendSMS6 (void)
{
lcd_clear();
// lcd_gotoxy(0,0);
//
lcd_putsf("Mengirim SMS");
//printf("AT");
putchar('A');
putchar('T');
delay_ms(500);
//printf("AT+CMGF=1");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('M');
putchar('G');
putchar('F');
putchar('=');
putchar('1');
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
//printf("AT+CSCA=");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('S');
putchar('C');
putchar('A');
putchar('=');
putchar(0x22);
//printf("+6289644000001");
// No SMS Center
Operator yg digunakan
// THREE
putchar('+');
putchar('6');
putchar('2');
putchar('8');
putchar('9');
putchar('6');
putchar('4');
putchar('4');
putchar('0');
putchar('0');
putchar('0');
putchar('0');
putchar('0');
putchar('1');
putchar(0x22);
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
//printf("AT+CMGS=");
putchar('A');
putchar('T');
putchar('+');
putchar('C');
putchar('M');
putchar('G');
putchar('S');
putchar('=');
putchar(0x22);
//printf("+6281802414034");
//printf("+628995558033");
// No HP Tujuan
putchar('+');
putchar('6');
putchar('2');
putchar('8');
putchar('9');
putchar('9');
putchar('5');
putchar('5');
putchar('5');
putchar('8');
putchar('0');
putchar('3');
putchar('3');
putchar(0x22);
putchar(0x0D);
putchar(0x0A);
delay_ms(500);
// Isi Pesan
putchar(0x0D);
putchar('K');
putchar('e');
putchar('t');
putchar('i');
putchar('n');
putchar('g');
putchar('g');
putchar('i');
putchar('a');
putchar('n');
putchar(' ');
putchar('a');
putchar('i');
putchar('r');
putchar(':');
putchar('0');
putchar('6');
putchar(' ');
putchar('c');
putchar('m');
putchar(0x1A);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("SMS
Terkirim");
lcd_gotoxy(0,1);
lcd_putsf("jarak
06 cm");
delay_ms(1000);
}
Proses Program
Motor Steper
Listing Program:
void PutarBuka(void)
{
int i;
Enable=0;
Direction=0;
for (i=1; i<4 i="" span="">4>
{
Clock=0;
delay_ms(1);
Clock=1;
delay_ms(1);
}
Enable=1;
// delay_ms(1000);
}
void PutarTutup(void)
{
int i;
Enable=0;
Direction=1;
for (i=1; i<4 i="" span="">4>
{
Clock=0;
delay_ms(1);
Clock=1;
delay_ms(1);
}
Enable=1;
// delay_ms(1000);
}
Proses komunikasi
Serial
Listing Program:
void Deklarasi (void)
{
Func0=In
PORTA=0x00;
DDRA=0x00;
Func0=Out
PORTB=0x00;
DDRB=0x01;
Func0=In
PORTC=0x00;
DDRC=0x00;
Func0=In
PORTD=0x00;
DDRD=0x1C;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x05;
ACSR=0x80;
SFIOR=0x00;
PORTC.3=1;
}
Tidak ada komentar:
Posting Komentar