So here it is , for the meanwhile i've considered only 3 sensors. so Number of free parking initially should be 3 and decrement as car is sense in each slot.
int LEDA11 = 50;
int LEDA12 = 51;
int LEDA21 = 52;
int LEDA22 = 53;
int LEDA31 = 42;
int LEDA32 = 32;
int pinA = 2; //For displaying segment "a"
int pinB = 3; //For displaying segment "b"
int pinC = 4; //For displaying segment "c"
int pinD = 5; //For displaying segment "d"
int pinE = 6; //For displaying segment "e"
int pinF = 8; //For displaying segment "f"
int pinG = 9; //For displaying segment "g"
int sensorA1 = 10;
int sensorA2 = 11 ;
int sensorA3 = 12 ;
int isObstacle = HIGH; // HIGH MEANS NO VEHICLE
byte parkingSpacesFree;
void setup() {
// put your setup code here, to run once:
parkingSpacesFree = 3;
pinMode(pinA, OUTPUT); //A
pinMode(pinB, OUTPUT); //B
pinMode(pinC, OUTPUT); //C
pinMode(pinD, OUTPUT); //D
pinMode(pinE, OUTPUT); //E
pinMode(pinF, OUTPUT); //F
pinMode(pinG, OUTPUT); //G
pinMode(sensorA1, INPUT);
pinMode(sensorA2, INPUT);
pinMode(sensorA3, INPUT);
pinMode(LEDA11, OUTPUT); //RED LED indicating No car in parking slot
pinMode(LEDA12, OUTPUT); //GREEN LED indicating Car in parking slot
pinMode(LEDA21, OUTPUT);
pinMode(LEDA22, OUTPUT);
pinMode(LEDA31, OUTPUT);
pinMode(LEDA32, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
isObstacle = digitalRead(sensorA1);
if (isObstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LEDA11, HIGH);
parkingSpacesFree --;
}
else
{
Serial.println("clear");
digitalWrite(LEDA11,LOW);
parkingSpacesFree ++;
}
if (isObstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LEDA12, LOW);
parkingSpacesFree --;
;
}
else
{
Serial.println("clear");
digitalWrite(LEDA12,HIGH);
parkingSpacesFree ++;
}
/////////////////////////////////////
isObstacle = digitalRead(sensorA2);
if (isObstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LEDA21, HIGH);
parkingSpacesFree --;
}
else
{
Serial.println("clear");
digitalWrite(LEDA21,LOW);
parkingSpacesFree ++;
}
if (isObstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LEDA22, LOW);
parkingSpacesFree --;
}
else
{
Serial.println("clear");
digitalWrite(LEDA22,HIGH);
parkingSpacesFree ++;
}
/////////////////////////////////////
isObstacle = digitalRead(sensorA3);
if (isObstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LEDA31, HIGH);
parkingSpacesFree --;
}
else
{
Serial.println("clear");
digitalWrite(LEDA31,LOW);
parkingSpacesFree ++;
}
if (isObstacle == LOW)
{
Serial.println("OBSTACLE!!, OBSTACLE!!");
digitalWrite(LEDA32, LOW);
parkingSpacesFree --;
}
else
{
Serial.println("clear");
digitalWrite(LEDA32,HIGH);
parkingSpacesFree --;
}
if ( parkingSpacesFree ==3)
{
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
}
else if (parkingSpacesFree == 0)
{
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
}
else if (parkingSpacesFree == 1)
{
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
}
else if (parkingSpacesFree ==2)
{
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
}
}