Barrera de aparcamiento RFID, contador, servo, ultrasonico

Buenas tengo que entregar un proyecto en el cual ya tengo el 70% del programa solo me falta añadirle un contador de tiempo y que a la vez aplique una tarifa al tiempo estacionado en el lugar, pero la parte que me esta dando mas problemas es la de implementar el ultrasonico y que si el carro aun esta debajo de la barrera dicha barrera no se cierre(la barrera tiene un contador que apenas se presenta el ID de la tarjeta se abre y en 10 segundo se cierre) pero necesito que el ultrasonico evite que la barrera no se cierre, aunque ya pasaran los 10 segudos.
aqui dejo mi programa base.
[#include <Wire.h>
#include <pitches.h>
#include <RFID.h>
#include <SPI.h>
#include <Servo.h>
#include “pitches.h”
#include <LiquidCrystal_I2C.h>

#define SS_PIN 10
#define RST_PIN 9

#define SERVO_PIN 5

#define Red_LED 6
#define Green_LED 7

#define Buzzer 8

LiquidCrystal_I2C lcd(0x27,16,2);
Servo DoorLock;
RFID rfid(SS_PIN, RST_PIN );

int My_RFID_Tag[5] = {0x94,0x78,0x55,0xD3,0x6A};
int My_RFID_Tag2[5] = {0x71,0x94,0xA3,0x8,0x40};

boolean My_Card = false;

int melody = {
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};

int noteDurations = {
4, 8, 8, 4, 4, 4, 4, 4
};

void setup()
{

lcd.init();

lcd.backlight();

pinMode(Red_LED,OUTPUT);
pinMode(Green_LED,OUTPUT);
pinMode(Buzzer,OUTPUT);

DoorLock.attach(SERVO_PIN);

Serial.begin(9600);

lcd.begin(16,2);

SPI.begin();
rfid.init();
}

void loop()
{

My_Card = true;
DoorLock.write(0);
lcd.clear();
lcd.print(“Estacionamientos C&S”);
lcd.setCursor(0,1);
lcd.print(“CORNO & SATURNO”);

if( rfid.isCard() )
{

if( rfid.readCardSerial() )
{
lcd.clear();
lcd.print("UNICO ID Es:- ");
delay(500);
lcd.setCursor(0,1);

for( int i = 0; i < 5; i++ )
{
Serial.print(rfid.serNum*, HEX);*

  • Serial.print(" “); *
    _ lcd.print(rfid.serNum*,HEX);_
    _
    lcd.print(” "); _
    _
    } _
    _
    delay(500);*_

* for(int i = 0; i < 5; i++)*
* { *

if( My_RFID_Tag != rfid.serNum )
* {*
* My_Card = false;
_ break;
} *_

* }*
* Serial.println();*
* delay(1000);*

* if(My_Card)
_ {
Serial.println("\nBIENVENIDO");
lcd.clear();
lcd.print(“BIENVENIDO GRACIAS”);
lcd.setCursor(0,1);
lcd.print(“POR VENIR”);
lcd.setCursor(0,1);
delay(3000); *_

* digitalWrite(Red_LED,HIGH);*

* int i = 0;*
* while(i < 2)*
* {*
* for (int thisNote = 0; thisNote < 12; thisNote++)*
* { *

* int noteDuration = 1000 / noteDurations[thisNote];*
* tone(8, melody[thisNote], noteDuration); *

_ int pauseBetweenNotes = noteDuration * 1.30;
* delay(pauseBetweenNotes); *_

* noTone(8);*
* }*
* i = i + 1;*
* delay(500); *
* }*
* delay(1000); *

* DoorLock.write(90); *
* delay(200);*
* lcd.clear(); *
* lcd.print(“PASE ADELANTE”);*
* lcd.setCursor(0,1);*
* lcd.print(“Sr.SATURNO”);*
* delay(2000);*
* lcd.clear();*

* for(int i = 10; i > 0; i–)*
* {*
* lcd.print(“CERRANDO”);*
* lcd.setCursor(0,1);*
* lcd.print("En ");*
* lcd.print(i);*
* lcd.print(" Sec.RAPIDO!!");*
* delay(1000);*
* lcd.clear();*
* }*
* DoorLock.write(0);*
* digitalWrite(Red_LED,LOW);
_ delay(200);
lcd.clear();
lcd.print("LA PUERTA ESTA ");
lcd.setCursor(0,1);
lcd.print(“CERRADA AHORA”);
delay(2000);
}*_

* else*
* {*
* Serial.println("\nGet Out of Here !");*
* lcd.clear();*
* lcd.print(“ACCESO DENEGADO!”);*
* lcd.setCursor(0,1);*
* lcd.print(“INTENTE DENUEVO!”);*
* for(int i = 0; i < 7; i++)*
* {*
* digitalWrite(Buzzer, HIGH);*
* digitalWrite(Green_LED,HIGH);
_ delay(500);
digitalWrite(Buzzer, LOW);_

digitalWrite(Green_LED,LOW);
_ delay(500);
}
delay(1000);
}
}
}
//Put RFID Reader into Halt, untill it not detects any RFID Tag.
rfid.halt();
}*_

Te he enviado instruccoines por privado para que edites tu post. Y además no doble postees el mismo hilo.