automatic car parking toll gate using arduino project code

#include <Servo.h>

Servo gateServo;

const int trigPin = 9;
const int echoPin = 8;
const int servoPin = 10;

long duration;
int distance;

// Gate positions
const int gateClosed = 0;
const int gateOpen = 90;

// Distance at which car is detected
const int detectionDistance = 15;

void setup() {
Serial.begin(9600);

pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);

gateServo.attach(servoPin);

// Start with gate closed
gateServo.write(gateClosed);

delay(1000);
}

void loop() {

// Send ultrasonic pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);

digitalWrite(trigPin, LOW);

// Read echo
duration = pulseIn(echoPin, HIGH, 30000);

// Calculate distance in cm
distance = duration * 0.034 / 2;

Serial.print(“Distance: “);
Serial.print(distance);
Serial.println(” cm”);

// Car detected
if (distance > 0 && distance <= detectionDistance) {

Serial.println("Car Detected - Opening Gate");

// Open barrier
gateServo.write(gateOpen);

delay(3000);

// Wait until car moves away
while (true) {

  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH, 30000);
  distance = duration * 0.034 / 2;

  Serial.print("Car distance: ");
  Serial.println(distance);

  // Car has moved away
  if (distance == 0 || distance > detectionDistance) {
    delay(1500);
    break;
  }

  delay(200);
}

// Close gate
Serial.println("Car Passed - Closing Gate");
gateServo.write(gateClosed);

delay(1000);

}

delay(100);
}

Leave a Comment