/*
-------------------------------------------------------------------------
Car Parking System
Create by: Mstxz.EXE
Ig: mstxz.wav
Github: Mstxz
-------------------------------------------------------------------------
*/
#define echoPin 3 // Echo Pin
#define trigPin 2 // Trigger Pin
#define LEDPin 13 // Onboard LED
int LED_EMPTY = 6;
int LED_FULL = 7;
int LED_PENDING = 8;
int BUZZER = 4;
void ULT(void);
int maximumRange = 200; // Maximum range needed
int minimumRange = 50; // Minimum range needed
long duration, distance; // Duration used to calculate distance
void setup() {
Serial.begin (115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
pinMode(LED_EMPTY, OUTPUT);
pinMode(LED_FULL, OUTPUT);
pinMode(LED_PENDING, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
ULT();
Serial.println(distance); //show distance
/*vacant, out green light*/
if(distance >= 200){
digitalWrite(LED_EMPTY,1);
digitalWrite(LED_PENDING,0);
digitalWrite(LED_FULL,0);
Serial.println("Empty Space.");
}
/*someone is parking, out yelow light*/
else if(distance < 200 && distance >= 50){
digitalWrite(LED_EMPTY,0);
digitalWrite(LED_PENDING,1);
digitalWrite(LED_FULL,0);
tone(BUZZER, 800);
delay(100);
digitalWrite(LED_EMPTY,0);
digitalWrite(LED_PENDING,0);
digitalWrite(LED_FULL,0);
noTone(BUZZER);
delay(500);
Serial.println("Car is going to park here or going out.");
}
/*occupied, out red light*/
else{
digitalWrite(LED_EMPTY,0);
digitalWrite(LED_PENDING,0);
digitalWrite(LED_FULL,1);
Serial.println("Car is Parking.");
}
}
void ULT(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
distance = duration / 58.2;
}