Сигнализация на Arduino.

Тема в разделе "Закажу проект", создана пользователем Marsik, 7 янв 2018.

  1. Marsik

    Marsik Нуб

    Необходимо написать программу, выполняющую алгоритм постановки системы на сигнализацию и снятия с сигнализации. Система состоит из: геркона, датчика движения (PIR), светодиода, кнопки, платы Arduino Mega2560.

    1) Если кнопка нажата (первый раз), происходит задержка по времени (20 секунд) перед постановкой системы на охрану. В режиме охраны считываются данные с датчика движения и с геркона.

    2) Если в режиме охраны сработал датчик движения или геркон, то сигнализация НЕ срабатывает сразу, а дается время (30 секунд) на нажатие этой же кнопки для снятия с охраны. Если за эти 30 секунд кнопку не нажали, то срабатывает сигнализация (зажигается светодиод).
    Отключается сигнализация нажатием этой кнопки.

    ЗАДЕРЖКУ НЕОБХОДИМО ВЫПОЛНИТЬ БЕЗ ФУНКЦИИ DELAY().
     
  2. ostrov

    ostrov Гуру

    Вам какая разница, к примеру, первая задержка 20 сек через delay или без? Начитаются вечно. А вообще задача простая.
     
    Последнее редактирование: 7 янв 2018
  3. Marsik

    Marsik Нуб

    К плате подключены и другие датчики и модули, поэтому не хотелось бы, чтобы плата просто зависла на полминуты из-за delay.
     
  4. Airbus

    Airbus Оракул

    А что предполагается делать первые 20 секунд во время постановки на охрану?Яростно опрашивать датчики посылать данные в USART и писать в ЕЕПРОМ?
     
  5. Marsik

    Marsik Нуб

    Нет. Но что, если в эти 20 секунд сработает один из других датчиков (огня или протечки воды, например)? Ардуина ведь не сможет среагировать на это событие, пока выполняет delay.
     
  6. Airbus

    Airbus Оракул

    Тогда смысл этой "постановки на охрану" зачем эти 20 секунд для чего они?Нажал кнопку встало и усё!Можете конечно использовать millis
     
  7. ostrov

    ostrov Гуру

    В чем в данном случае отличе delay от millis, если задача в эти 20 сек ничего не делать? Или вы хотите в этот код сами интегрировать еще другой код?
     
  8. Marsik

    Marsik Нуб

    Время выйти из помещения, чтобы после нажатия на кнопку датчик движения сразу не сработал. По этой же причине и нужна задержка при возвращении домой, чтобы было время зайти и снять с охраны.
     
  9. ostrov

    ostrov Гуру

    И еще вопрос. Кнопка снятия с сигнализации размещается скрытно?
     
  10. Marsik

    Marsik Нуб

    Да, кроме этой части с постановкой и снятия с охраны есть большой кусок другой части программы, который должен выполняться в любой момент времени.
     
  11. Marsik

    Marsik Нуб

    Да.
     
  12. ostrov

    ostrov Гуру

    Про это я и говорю. delay для этой цели вполне подходит. Измерение времени другим способом оправдано для других задач.
     
  13. ostrov

    ostrov Гуру

    Вся реакция на срабатывание это зажеч светодиод? Никаких смс и воплей?
     
  14. DIYMan

    DIYMan Гуру

  15. ostrov

    ostrov Гуру

    [цензура]
     
  16. Marsik

    Marsik Нуб

    Вообще, у меня при срабатывании какого-либо датчика прерывисто пищит зуммер и мигает светодиодная лента. GSM-модуль подключу позже. Про светодиод написал чисто как пример срабатывания сигнализации, можно хоть просто в порт надпись вывести какую-нибудь, разницы нет. У меня как ни странно проблема возникла только с этой постановкой на охрану и снятия с неё.
     
  17. ostrov

    ostrov Гуру

    Пишите что куда подключено в личку.
     
  18. Airbus

    Airbus Оракул

    И я про то же.
    А вдруг девчёнки?
    И я про то же.Пусть делает millis тут столько времени проклинали delay
    А вдруг пока с охраны снимать будете случиться Пожар?А?