Всем привет, помогите пожалуйста допилить код не пойму что нужно сдлеать.

Проблема такая есть два реле которые включатся через комп и есть геркон (размычка на дверь) на геркон есть задержка 5 секунд ну эта задержка распостраняется и на включение реле, как сделать что бы реле были сами по себе а герок одельно.

Зарание спасибо!)
int led = 9;
int led2 = 10;
int Door_Led_Pin = 13; // выбрать контакт для светодиода
int Door_Sensor_Pin = 6; // контакт для датчика
int val = 0; // переменная для хранения состояния датчика
char str[128];
int inSize=0;

void setup() {

pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin(9600);
pinMode(Door_Led_Pin, OUTPUT); // установить Door_Led_Pin как выход
pinMode(Door_Sensor_Pin, INPUT); // установить Door_Sensor_Pin как вход

}

void loop() {

inSize=0; // Сбрасываем переменную
memset(str, '\0', 128); // Очищаем массив

if(Serial.available() > 0)
{delay(200);
inSize = Serial.available();
for (int i = 0; i < inSize; i++)
{
str[i] = Serial.read(); // Читаем каждый символ, и пишем его в массив
}

if (strcmp(str, "L11") == 0) // Если было передано строку "on" - включаем СИД
{
digitalWrite(led, HIGH);
Serial.println("ARD_L11_on");
}
else if (strcmp(str, "L10") == 0) // Если было передано строку "off" - выключаем СИД
{
digitalWrite(led, LOW);
Serial.println("ARD_L10_off");
}
if (strcmp(str, "L21") == 0)
{ digitalWrite(led2, HIGH);
Serial.println("ARD_lamp2_on");
}
else if (strcmp(str, "L20") == 0)
{ digitalWrite(led2, LOW);
Serial.println("ARD_lamp2_off");
}
}
val = digitalRead(Door_Sensor_Pin); // читать Door_Sensor_Pin
if (val == HIGH) {
// Если Door_Sensor N.C. (без магнита) -> HIGH : Дверь открыта / LOW : Дверь закрыта
// Если Door_Sensor N.0. (nc с магнитом) -> HIGH : Дверь открыта / LOW : Дверь закрыта
delay(5000);
digitalWrite(Door_Led_Pin, LOW); //выключить светодиод Door_Led
} else {
delay(5000);
digitalWrite(Door_Led_Pin, HIGH); //включить светодиод Door_Led
}
}