30
BAB III
PEMBAHASAN
3.1 Tinjauan Umum Alat
Perancangan sistem parkir otomatis berbasis arduino uno adalah suatu alat yang digunakan untuk sistem perparkiran kendaraan. Tujuannya adalah untuk memudahkan pengendara melihat tempat yang masih tersedia untuk memarkirkan kendaraanya dengan bantuan LCD.
Arduino Mega adalah papan mikrokontroler berdasarkan ATmega328P Arduino Uno memiliki 14 pin input / output digital (yang 6 dapat digunakan sebagai output PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik, header ICSP dan tombol reset. Ini berisi semua yang dibutuhkan untuk mendukung mikrokontroler; cukup hubungkan ke komputer dengan kabel untuk mendukung mikrokontroler; cukup hubungkan ke komputer dengan kabel Arduino Uno dapat di utak-atik tanpa terlalu banyak mengkhawatirkan melakukan kesalahan, skenario terburuk nya adalah dengan mengganti chip ATmega328P dan mulai dari awal lagi
Uno berarti satu di Italia dan dipilih untuk menandai rilis Arduino Software (IDE) 1.0. Papan Uno dan versi 1.0 dari Arduino Software (IDE) adalah versi referensi Arduino, sekarang berevolusi menjadi rilis yang lebih baru. Papan Uno adalah yang pertama dalam rangkaian papan USB Arduino, dan model referensi untuk platform Arduino
3.2. Block Diagram Alat
Gambar III.1. Block Diagram Alat
Penjelasan blok diagram alat sebagai berikut:
3.2.1. Input
Komponen input ini merupakan komponen masukan yang akan diproses. Komponen input ini terdiri dari :
A. Adaptor merupakan arus 5 Volt kedalam rangkaian. B. Sensor Infrared berfungsi untuk mendeteksi benda
C. Moto Servo berfungsi sebagai penggerak dari palang pintu parker PROSES ARDUINO MEGA OUTPUT LCD INPUT ADAPTOR INPUT MOTO SERVO INPUT INFRARED OUTPUT BUZZER
3.2.2. Proses
Proses merupakan komponen utama yang berfungsi sebagai pengelola data yang diterima dari masukan yang kemudian akan menghasilkan output. Dalam proses ini penulis menggunakan mikrokontroler AT89S51.
3.2.3. Output
Output merupakan keluaran dari semua proses yang telah dijalankan. Output yang dihasilkan yaitu:
A. Buzzer berfungsi sebagai indikasi hasil input yang menghasilkan bunyi seperti alarm.
B. LCD berfungsi sebagai indikator hasil input agar mempermudah melihat sensor yang telah terdeteksi.
3.3. Skema Rangkaian Alat
Gambar III.2. Skema Rangkaian Alat Penjelasan skema rangkaian sebagai berikut
Rancangan ini adalah sistem parkir otomatis yang mengunakan arduino uno sebagai pusat pemerosesan data, infrared sebagai sensor pendeteksi dan rangkaian elektronikan lain sebagi pendukung sistem. Untuk mengaktifkan sistem hubungkan adaptor 5volt jika LED tersebut hidup maka alat tersebut siap bekerja, namun jika LED tersebut mati maka periksa tegangan daya.
Untuk menstimulasikan alat sistem parkir otomatis aktifkan rangkaian dengan cara memberikan tegangan 5volt pada arduino dari adaptor, kemudian saat kendaraan ingin parkir akan tertera tulisan di lcd parkir terisi atau kosong, jika slot parkir masih kosong maka kendaraan bisa masuk dengan melewati sensor infrared yang ada dipintu masuk maka otomatis pintu akan terbuka, saat kendaraan sudah terparkir akan otomatis tampilan lcd menjadi terisi disalah satu slot parkir. Saat kendaraan meninggalkan parkiran maka tulisan parkir terisi disalah satu slot parkir pun akan berubah menjadi kosong dilcd.
3.4. Cara kerja alat
Berikut penjelasan cara kerja alat yang dibuat : 1. Infrared
Gambar III.3. Infrared
A. Sensor infrared sebagai sensor pendeteksi kendaraan yang terdiri dari VCC GND dan DATA.
B. VCC dan GND terhubung ke bearboard dan data terhubung ke port Arduino Mega.
2. Moto Servo
Gambar III.4. Moto Servo
A. Moto Servo berfungsi sebagai penggerak portal pintu masuk dan pintu keluar yang dimana terdiri dari VCC GND dan DATA.
B. VCC dan GND terhubung ke bearboard dan kabel servo data pintu masuk terhubung ke port 31 dan kabel servo data pintu keluar terhubung ke port 2.
3. Buzzer
Gambar III.5. Buzzer
A. Buzzer berfungsi sebagai penegluar bunyi jika parkiran sudah penuh.
B. Buzzer terdiri dari GND dan Power dimana GND terhubung ke bearboard dan power terhubung ke Arduino Mega yang dimana masuk ke port 10.
C. Dan ada juga LED yang berfungsi sebagai sensor penanda ke LCD jika parkiran penuh dan LED terdiri dari GND dan Power yang dimana GND terhubung ke bearboard dan power terhubung ke Arduino Mega yang masuk ke port 11
4. LCD
Gambar III.6. LCD
A. LCD berfungsi sebagai penampil tulisan atau huruf sesuai dengan program pada alat yang dibuat untuk menampilkan hasil data yang diinput.
B. LCD terdiri dari GND VCC SDA dan SCL dimana GND dan VCC terhubung ke bearboard dan SDA ke port 20 lalu SCL ke port 21.
3.5. Flowchart Program
Gambar III.7. Flowchart Program
3.6. Kontruksi sistem koding
Pada pembahasan kali ini penulis akan menjelaskan tentang kontruksi sistem program meliputi: intisialisasi program, pembacaan Input, Pemerosesan dan pengendalian output program 3.6.1 Intialisasi Program #include <LiquidCrystal.h> #include <LiquidCrystal_I2C.h> #include <Servo.h> Servo motorKeluar; Servo motorMasuk; LiquidCrystal_I2C lcd(0x27, 20, 4);
const int Masuk = 31; // Input dari photodioda const int sensor1 = 2;
const int sensor2 = 3; const int sensor3 = 4; const int sensor4 = 5; const int sensor5 = 6; const int sensor6 = 7; const int Keluar = 12; const int BZR = 10; const int LED1 = 11;
int siap=0; int total=0; int s1=0;
int s2=0; int s3=0; int s4=0; int s5=0; int s6=0; int cup1=0; int cup2=0; int cup3=0; int cup4=0; int cup5=0; int cup6=0; int sudah1=0; int sudah2=0; int sudah3=0; int sudah4=0; int sudah5=0; int sudah6=0; String statusparkir="TERSEDIA";
//variabel penyimpan nilai analog photodioda: //variabel untuk membaca status photodioda int bacaMasuk; int bacaSensor1; int bacaSensor2; int bacaSensor3; int bacaSensor4; int bacaSensor5;
int bacaSensor6; //pintu masuk int bacaKeluar; //pintu keluar
int servo = 0; int servo1 = 0; 3.6.2. Input void setup() { Serial.begin(9600); lcd.begin(); lcd.begin(); lcd.backlight(); lcd.setCursor(3,0); lcd.print("SELAMAT DATANG"); delay(2000); lcd.setCursor(1,2);
lcd.print(" DEDE PARKING AREA"); delay(2000); lcd.clear(); motorKeluar.attach(A0);//pintu keluar motorMasuk.attach(A1);//pintu masuk pinMode(Masuk, INPUT); pinMode(sensor1, INPUT); pinMode(sensor2, INPUT); pinMode(sensor3, INPUT); pinMode(sensor4, INPUT);
pinMode(sensor5, INPUT); pinMode(sensor6, INPUT); pinMode(Keluar, INPUT); pinMode(BZR, OUTPUT); pinMode(LED1, OUTPUT); } 3.6.3. Main Program void loop() { bacaMasuk = digitalRead(Masuk); bacaKeluar = digitalRead(Keluar); scan(); if (bacaKeluar == 0){ motorKeluar.write(90); delay(1000); } else{ motorKeluar.write(0); } //============================== if (bacaMasuk == 0 && total<6){
//bacaParkir? String cetak="";
if(s1==0 && siap==0){cetak="P1";cup1=1;siap=1; Serial.print("@"); Serial.println(cetak); }
else if(s2==0 && siap==0){cetak="P2";cup2=1;siap=1;Serial.print("@"); Serial.println(cetak); }
else if(s3==0 && siap==0){cetak="P3";cup3=1;siap=1;Serial.print("@"); Serial.println(cetak); }
else if(s4==0 && siap==0){cetak="P4";cup4=1;siap=1;Serial.print("@"); Serial.println(cetak); }
else if(s5==0 && siap==0){cetak="P5";cup5=1;siap=1;Serial.print("@"); Serial.println(cetak); }
else if(s6==0 && siap==0){cetak="P6";cup6=1;siap=1;Serial.print("@"); Serial.println(cetak); }
motorMasuk.write(0); }
else if (bacaMasuk == 0 && total==6){ motorMasuk.write(90); lcd.clear(); lcd.setCursor(6,1); lcd.print("PARKIRAN"); lcd.setCursor(8,2); lcd.print("PENUH"); bunyi(); siap=0; } else{ siap=0; motorMasuk.write(90); delay(1000); }
//============================== delay(1000); } void scan(){ String status1="KOSONG"; String status2="KOSONG"; String status3="KOSONG"; String status4="KOSONG"; String status5="KOSONG"; String status6="KOSONG"; s1=0; s2=0; s3=0; s4=0; s5=0; s6=0; bacaSensor1 = digitalRead(sensor1); bacaSensor2 = digitalRead(sensor2); bacaSensor3 = digitalRead(sensor3); bacaSensor4 = digitalRead(sensor4); bacaSensor5 = digitalRead(sensor5); bacaSensor6 = digitalRead(sensor6); if(bacaSensor1 == 0){ s1=1; status1="TERISI";
sudah1=1; }
else if(bacaSensor1 == 1 && sudah1==1){ cup1=0; sudah1=0; } else if(cup1==1){ s1=1; status1="TERISI"; } //================================================== if(bacaSensor2 == 0){ s2=1; sudah2=1; status2="TERISI"; }
else if(bacaSensor2 == 1 && sudah2==1){ cup2=0; sudah2=0; } else if(cup2==1){ s2=1; status2="TERISI"; } //================================================== if(bacaSensor3 == 0){
s3=1; sudah3=1;
status3="TERISI "; }
else if(bacaSensor3 == 1 && sudah3==1){ cup3=0; sudah3=0; } else if(cup3==1){ s3=1; status3="TERISI "; } //================================================== if(bacaSensor4 == 0){ s4=1; sudah4=1; status4="TERISI"; }
else if(bacaSensor4 == 1 && sudah4==1){ cup4=0; sudah4=0; } else if(cup4==1){ s4=1; status4="TERISI"; } //==================================================
if(bacaSensor5 == 0){ s5=1;
sudah5=1;
status5="TERISI "; }
else if(bacaSensor5 == 1 && sudah5==1){ cup5=0; sudah5=0; } else if(cup5==1){ s5=1; status5="TERISI "; } //================================================== if(bacaSensor6 == 0){ s6=1; sudah6=1; status6="TERISI"; }
else if(bacaSensor6 == 1 && sudah6==1){ cup6=0; sudah6=0; } else if(cup6==1){ s6=1; status6="TERISI"; }
3.6.4. Output
total=s1+s2+s3+s4+s5+s6;
statusparkir="= PARKIR :TERSEDIA =";
if(total==6){statusparkir="STATUS PARKIR PENUH=";} lcd.setCursor(0,0);lcd.print("P1"); lcd.setCursor(3,0);lcd.print(status1); lcd.setCursor(11,0);lcd.print("P2"); lcd.setCursor(14,0);lcd.print(status2); lcd.setCursor(0,1);lcd.print("P3"); lcd.setCursor(3,1);lcd.print(status3); lcd.setCursor(11,1);lcd.print("P4 "); lcd.setCursor(14,1);lcd.print(status4); lcd.setCursor(0,2);lcd.print("P5"); lcd.setCursor(3,2);lcd.print(status5); lcd.setCursor(11,2);lcd.print("P6"); lcd.setCursor(14,2);lcd.print(status6); lcd.setCursor(0,3); lcd.print(statusparkir); Serial.print(s1); Serial.print("#"); Serial.print(s2); Serial.print("#"); Serial.print(s3); Serial.print("#");
Serial.print(s4); Serial.print("#"); Serial.print(s5); Serial.print("#"); Serial.print(s6); Serial.println("#"); } void bunyi(){ tone(BZR,500,500); digitalWrite(LED1,HIGH); delay(1000); noTone(BZR); digitalWrite(LED1,LOW); } 3.7. Hasil percobaan
Untuk melakukan pengujian terhadap alat dapat dilakukan dengan tahapan sebagai berikut:
3.7.1 Hasil Input
Hasil percobaan pada input pada alat rancang bangun elektronik dengan menggunakan sensor infrared ini mendapatkan hasil sebagi berikut
Tabel III.1 Hasil Percobaan input
ALAT SENSOR INFRARED PADA PINTU MASUK SENSOR INFRARED PADA SLOT PARKIR SENSOR INFRARED PADA PINTU KELUAR ON ON ON ON
ON OFF OFF OFF
ON OFF OFF OFF
3.7.2. Hasil output
Tabel III.2
Hasil percobaan alat pada output
ALAT PINTU MASUK LCD PINTU KELUAR
ON ON DATA DITERIMA ON
ON OFF DATA TIDAK
DITERIMA
OFF
OFF OFF DATA TIDAK
DITERIMA
OFF
3.8. PENGUJIAN ALAT
Pada pengujian alat prototype area parkir mendapatkan hasil:
Tabel III.3 Hasil percobaan alat Perc obaa n Mo bil Ma suk Portal Masu k Sl ot 1 Slot 2 Slot 3 Slot 4 Slot 5 Slot 6 LC D Mo bil Kel uar Buz zer Portal keluar 1 1 Buka/ Tutup Te ris i Kos ong Kos ong Kos ong Kos ong Kos ong Ters edia 0 Tida k berb unyi Buka/ Tutup
2 1 Buka/ Tutup Te ris i Teri si Kos ong Kos ong Kos ong Kos ong Ters edia 0 Tida k berb unyi Buka/ Tutup 3 1 Buka/ Tutup Te ris i Teri si Teri si Kos ong Kos ong Kos ong Ters edia 0 Tida k berb unyi Buka/ Tutup 4 1 Buka/ Tutup Te ris i Teri si Teri si Teri si Kos ong Kos ong Ters edia 0 Tida k berb unyi Buka/ Tutup 5 1 Buka/ Tutup Te ris i Teri si Teri si Teri si Teri si Kos ong Ters edia 0 Tida k berb unyi Buka/ Tutup 6 1 Buka/ Tutup Te ris i Teri si Teri si Teri si Teri si Teri si Ters edia 0 Tida k berb unyi Buka/ Tutup 7 1 Tutup Te ris i Teri si Teri si Teri si Teri si Teri si Pen uh 0 Berb unyi Buka/ Tutup