Помогите допилить код

Нет ответов
komsadiman
Offline
Зарегистрирован: 13.05.2016

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

Проблема такая есть два реле которые включатся через комп и есть геркон (размычка на дверь) на геркон есть задержка 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) {
delay(5000);
digitalWrite(Door_Led_Pin, LOW); //выключить светодиод Door_Led
} else {
  delay(5000);
digitalWrite(Door_Led_Pin, HIGH); //включить светодиод Door_Led
}
}