// Tugas Mikrokontroler
// sistem parkir otomatis menggunakan ultrasonic, arduino uno dan servo
//---------------------------------------------------------------------------------------------------------//
// Zulkifli Parmadi Prabu Afandi
// TL 2A
// 220104024
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#include <Servo.h>
Servo servo_in;
Servo servo_out;
#define PIN_TRIG1 8
#define PIN_ECHO1 9
#define PIN_TRIG2 10
#define PIN_ECHO2 11
int jumlah_mobil=0;
int slot_mobil=5;
int jumlah_mobil_max=5;
void setup() {
servo_in.attach(5);
servo_out.attach(6);
Serial.begin(9600);
servo_in.write(0);
servo_out.write(0);
pinMode(PIN_TRIG1,OUTPUT);
pinMode(PIN_ECHO1,INPUT);
pinMode(PIN_TRIG2,OUTPUT);
pinMode(PIN_ECHO2,INPUT);
Serial.print("Slot Parkir : ");
Serial.println(slot_mobil);
}
void loop() {
digitalWrite(PIN_TRIG1,HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG1,LOW);
double selang1=pulseIn(PIN_ECHO1,HIGH);
double jarak1=0.0343*(selang1/2);
digitalWrite(PIN_TRIG2,HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG2,LOW);
double selang2=pulseIn(PIN_ECHO2,HIGH);
double jarak2=0.0343*(selang2/2);
int in_value(jarak1>20||jarak1<=0);
int out_value(jarak2>20||jarak2<=0);
if(in_value == LOW && jumlah_mobil < jumlah_mobil_max)
{
jumlah_mobil++;
slot_mobil--;
Serial.print("Slot Parkir : ");
Serial.println(slot_mobil);
servo_in.write(90);
delay(5000);
servo_in.write(0);
delay(1000);
}
if (out_value == LOW && jumlah_mobil>0)
{
jumlah_mobil--;
slot_mobil++;
Serial.print("Slot Parkir : ");
Serial.println(slot_mobil);
servo_out.write(90);
delay(5000);
servo_out.write(0);
delay(1000);
}
if(jumlah_mobil == jumlah_mobil_max)
{
Serial.println("Slot Penuh");
delay(1000);
}
else{Serial.println("Parkir Tersedia");
delay(1000);}
}