Показано с 1 по 3 из 3
  1. #1
    Новичок
    Регистрация
    16.05.2016
    Возраст
    32
    Сообщений
    2
    Вес репутации
    0

    Сообщение Помогите допилить скейч

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

    Проблема такая есть два реле которые включатся через комп и есть геркон (размычка на дверь) на геркон есть задержка 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
    }
    }

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Помогите допилить скейч

    Нужно избавиться от delay
    Для этого можно использовать millis()
    Последний раз редактировалось Chip; 17.05.2016 в 00:09.

  3. #3
    Новичок
    Регистрация
    16.05.2016
    Возраст
    32
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Помогите допилить скейч

    Цитата Сообщение от Chip Посмотреть сообщение
    Нужно избавиться от delay
    Для этого можно использовать millis()
    Неа не помогает.(

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •