После публикации про подключение 4х проводного дымового пожарного извещателя к Ардуино появились вопросы: как подключить к ардуино 2х проводный дымовой пожарный извещатель (датчик). Предлагаю вам свою версию решения данного вопроса. Для теста я использовал извещатель пожарный дымовой оптико-электронный ИП 212-45. Ниже приведены интересующие нас характеристики, взятые из паспорта на извещатель, для подключения его к Ардуино.
Итак, как мы видим, питание у нас 9-30 В. Я рекомендую использовать резервированный источник питания на 12В. Этого нам хватит для питания всех устройств сигнализации: извещателей, оповещателей и т.д. плюс саму ардуинку можно запитать от 12В. Далее, идея в общем-то та же что и при подключении 4х проводного извещателя. Собираем делитель напряжения, но в данном случае извещатель мы будем подключать не ко второму плечу делителя, т.к. там у нас напряжение не должно превышать 5В, а к первому плечу, на котором мы будем обеспечивать питание шлейфа. Снимать напряжение мы будем со второго плеча. Т.е. за счет изменения сопротивления на 1 плече (подключение оконечного резистора, сработка извещателя) делитель будет создавать разные падения на плечах, чем мы и воспользуемся.
Давайте взглянем на штатную схему подключения ИП 212-45 к приборам:
.
Из схемы видно, что извещатель запитывается через контакты 2 и 4 (3). Теперь, зная все это мы получаем вот такую схему подключения 2х проводного дымового пожарнго извещателя к ардуино.
Что мы тут видим? Аналоговый вход А0 используется для измерения напряжения на 2м плече делителя. Цифровой выход D2 коммутирует напряжение источника питания и выполняет 2 задачи:
- Перезапуск извещателя, когда он вошел в режим «Пожар»;
- Отключение питания от цепи при появлении короткого замыкания на 1 плече делителя (на шлейфе).
Последний пункт не менее важен чем первый. Если на шлейфе появится короткое то все сопротивление 1 плеча устремится к нулю и, соответственно, все будет падать на втором плече. Напряжение на аналоговом входе будет приблизительно равно напряжению источника питания т.е. не совместимое с жизнью для контроллера… Поэтому в скетче нужно особое внимание уделить обработке состояния шлейфа «Короткое замыкание», и тут же перевести пин в состояние LOW если оно возникло.
Для защиты аналогового входа контроллера можно применить следующую схему:
В этом случае мы добавляем в схему защитный TVS диод или как его еще называют — супрессор или трансил (VD), добавляем PolySwitch предохранитель (F), а так же заменяем оптореле на простое реле (К1), так как при пробое TVS диода ток потечет большой и выход оптореле может сгореть, либо можно использовать оптореле которое пропускает 1А.
Зачем это нужно?
Если ваша Ардуино «заснула» или занята более важными задачами, нежели контроль напряжения на аналоговом входе, например висит в delay(), (есть библиотека, которая позволяет уйти от delay() для выполнения задержки Задержка в ARDUINO без delay(), с проверкой millis() на переполнение.), то без защиты входа от перенапряжения, в случае короткого замыкания на шлейфе, все у нас сгорит.
Как это работает?
При штатной работе схемы TVS диод закрыт и на цепь практически не влияет. Небольшой ток протекает через PolySwitch предохранитель, не вызывая его нагрева и изменения сопротивления.
При коротком замыкании на шлейфе TVS диод пробивается отводя излишек напряжения на землю, ток через него резко увеличивается, в результате этого происходит нагрев PolySwitch предохранителя, его проводимость резко падает, и цепь практически обесточивается. После того, как КЗ на шлейфе будет снято PolySwitch остынет и опять начнет проводить. Вместо TVS диода и PolySwitch предохранителя можно использовать устройство которое объединяет оба компонента в себе, оно называется PolyZen. Однако не следует пренебрегать и софтовой защитой. Обязательно обесточивайте цепь с помощью Ардуино.
Теперь краткое пояснение что у нас происходит в шлейфе. Разделим весь процесс на 3 этапа:
1. Выбор начального напряжения и тока в цепи.
Так как при параллельном включении сопротивлений общее сопротивление будет меньше меньшего мы понимаем что начальное падение напряжения на 1 плече делителя (далее, для краткости, плечи делителя назовем 1ПД и 2ПД), без включения в цепь извещателя, добавочного и оконечного резисторов будет максимальным, а на 2ПД — минимальным. На этом этапе мы подбираем номиналы резисторов делителя исходя из напряжения источника питания и желаемого тока в цепи.
2. Подключение оконечного резистора для контроля целостности шлейфа.
На этом этапе на параллельно 1ПД включаем оконечный резистор. Соответственно, падение напряжения на 1ПД уменьшается, на 2ПД увеличивается.
3. Подключение извещателя через добавочный резистор.
На этом этапе на параллельно 1ПД и оконечному резистору мы включаем добавочный резистор через извещатель. Пока извещатель находится в дежурном режиме — ничего не изменится, т.к. его сопротивление стремится к бесконечности. При переходе извещателя в состояние «Пожар», как нам обещает паспорт, его сопротивление упадет до величины не более 1000 Ом и сумма сопротивлений извещателя и добавочного резистора включится в цепь. Падение напряжения на 1ПД уменьшается еще раз, а на 2ПД снова увеличится.
Таким образом отслеживая падение напряжения на 2ПД мы и контролируем состояние шлейфа:
- Обрыв — начальное напряжение;
- Норма — напряжение при подключенном оконечном резисторе;
- Пожар — напряжение при подключенном оконечном, дополнительном резисторе, и сопротивлении извещателя;
- Короткое — напряжение источника питания, значение АЦП будет равно 1023 (особое внимание на это состояние!!!)
Как подбирать номиналы резистров? Конечно по закону Ома. Формулы я тут расписывать не буду. Для ленивых я сделал табличку в екселе, которая при вводе начальных данных сама рассчитывает номиналы и отображает интересующие токи и напряжения в цепи. Что нужно помнить:
- Максимальное напряжение на аналоговом входе ардуино (2ПД) не должно быть более 5 вольт, а лучше меньше, так как надо еще КЗ отслеживать;
- Минимальное напряжение в шлейфе (1ПД) должно находится в пределах 9 — 30 Вольт;
- Максимальный ток через извещатель должен быть не более 20мА (по паспорту);
- От себя могу добавить что при маленьком токе извещатель не блокируется в режиме «Пожар».
Архив содержит схему подключения и расчет цепи для подключения.
Связанная статья
Про оптореле и расчет токоограничительного резистора вы можете прочитать в статье Подключение 4х проводного дымового пожарного извещателя к Ардуино
Добрый день! Можно вообще отказаться от измерения напряжения адруиной, если применить повторитель на транзисторе и полупроводниковый предохранитель для «самосброса» на небольшой ток.
Доброго времени суток. Хотел бы спросить — какой тип TVS-диода нужно использовать?
JVR-07N180M (S07K11), 18 В, Варистор
Напряжение срабатывания 11 В
Александр, доброго времени суток. А Предохранитель восстанавливающийся на сколько ампер?
Хорошо бы ещё перед сборкой протестить схему на Workbech. Если что и погорит, то виртуально…
Варисторы работают на напряжение не 11, а от 18 вольт… Хрень какая-то. Брал несколько разных на Чипе — а всё одно и то же…