Управление мощными нагрузками с применением импульсных (бистабильных) реле

Тема в разделе "Глядите, что я сделал", создана пользователем alp69, 17 июл 2016.

  1. alp69

    alp69 Форумчанин

    Приветствую Вас, коллеги!
    ===========================
    UPD 06.09.16
    Новая версия здесь.
    ВНИМАНИЕ!!!
    В новой версии изменена принципиальная схема. Соответственно плата разведена иначе. Логика работы прежняя.
    ===========================

    Представляю на Ваше обсуждение устройство, управляющее двумя нагрузками, питающимися от сети переменного тока 220 вольт. Как тут принято говорить – «управление мощными нагрузками».
    Казалось бы – тривиальный девайс. Но, как говорится, есть нюансы…
    На создание этого устройства меня сподвигли обстоятельства, которые и явились определяющими при выборе схемотехнического решения.

    Фото готового устройства:
    Открытый корпус.jpg Закрытый корпус.jpg На DIN-рейке.jpg

    1. Исходные положения:
    1.1. Имеется две нагрузки, питающиеся от промышленной сети переменного тока с напряжением 220 вольт.
    1.2. Нагрузки включаются и выключаются обычными настенными выключателями.
    1.3. Дача. Деревня. Качество промышленного электричества оставляет желать лучшего.

    2. Задачи:
    2.1. Управлять удаленно этими нагрузками.
    2.2. Отслеживать удаленно состояние нагрузок (включено/выключено).
    2.3. Измерять температуру на объектах, в которых эксплуатируются управляемые нагрузки.
    2.4. Измерять температуру внутри устройства.

    3. Условия, ограничения:
    3.1. Минимальные вмешательства в существующую проводку.
    3.2. Сохранение возможности ручного управления в штатном режиме.
    3.3. Сохранение возможности ручного управления в случае выхода из строя любого элемента проектируемого устройства.
    3.4. Питание от промышленной сети (никаких батареек).
    3.5. Монтаж на DIN-рейку.
    3.6. Устройство будет эксплуатироваться на значительном расстоянии от меня, а эксплуатанты – обычные люди. То есть устройство должно работать без необходимости моего постоянного присутствия. В случае отказа помочь будет непросто.

    Так как устройство изготавливалось для моих близких родственников, цена комплектующих не являлась определяющим фактором.

    В приложении:
    • файл прошивки модуля;
    • файл библиотеки ds18b20;
    • файл init.lua;
    • файл swich.lua;
    файлы формата DipTrace:
    • принципиальная схема
    • принципиальная схема внешних подключений
    • печатная плата
     

    Вложения:

    Последнее редактирование: 11 сен 2016
    9xA59kK, Securbond и ИгорьК нравится это.
  2. alp69

    alp69 Форумчанин

    Немного о схемотехнике и выборе комплектующих.

    Чтобы не менять привычное для хозяев управление нагрузками с помощью настенных уличных выключателей, было принято решение реализовать схему на проходных выключателях, где первый проходной выключатель – трехполюсный проходной выключатель (устанавливается взамен штатного и внешне выглядит так же), а в роли второго выступает импульсное (бистабильное) электромеханическое реле. Таким образом, при желании (в качестве бонуса), можно реализовать неограниченное количество выносных проводных постов управления, применяя обычные звонковые кнопки. От электронных импульсных реле сразу отказался по причине их требовательности к качеству электроэнергии и неустойчивой работы (по интернет-отзывам).
    Для управления бистабильными реле применены промежуточные 5-вольтовые реле, которые в свою очередь управляются модулем ESP-12E. В процессе разработки и макетирования, в качестве промежуточных сначала были использованы твердотельные реле S202S02. Результат отличный, но ситуация с возможным пробоем твердотельного реле приведет к постоянной подаче 220 вольт на катушку импульсного реле. А это ей противопоказано и черевато выходом из строя с возможным расплавлением/возгоранием. Поэтому пришлось от них отказаться в пользу обычных электромеханических реле.
    Для контроля состояния нагрузки применена схема с балластным конденсатором и оптопарой, на выходе которой появляется высокий уровень при наличии на входе переменного напряжения 220 вольт.


    Общая логика работы устройства.

    При включении устройства происходит подключение ESP-12E к прописанной при программировании сети Wi-Fi, устанавливается соединение с брокером MQTTи подписка на соответствующие топики. Управление и отслеживание состояния – через OpenHAB.
    Далее стартует проверка состояния нагрузок (наличие напряжения) и публикация первоначального состояния. Проверки производятся каждые 250 мс (0,25 сек.). А вот публикация состояния нагрузки – только при изменении состояния.
    Через 10 минут стартует контроль температуры. Публикуется первоначальное состояние и ведется контроль двумя герметичными наружными датчиками ds18b20 и одним внутренним датчиком ds18b20 в корпусе TO-92. Датчики температуры опрашиваются один раз в 10 минут. Публикация температуры конкретного датчика происходит при отличии его текущей температуры, от измеренной при предыдущем опросе, на заданное значение. В приложенной программе это 0,5 градуса.

    При поступлении от брокера на модуль ESP-12 команды на включение определенной нагрузки – приостанавливается контроль нагрузок, промежуточное реле в течение 0,2 сек. подает напряжение на импульсное реле. Импульсное реле, переключившись, меняет свое состояние. Происходит опрос нагрузок и публикуется их состояние независимо от результата. Тем самым мы видим реальный результат выполнения команды. После этого возобновляется контроль нагрузок.


    При разработке печатной платы стандартную обвязку ESP-12E загнал под корпус модуля. Это позволило:
    сэкономить место на плате;
    оптимизировать трассы дорожек;
    обеспечить легкий демонтаж ESP-12E в случае необходимости.
     
    Последнее редактирование: 19 июл 2016
    ИгорьК нравится это.
  3. alp69

    alp69 Форумчанин

    Комплектующие:
    1. Стабилизированный модуль питания HLK-PM01 (AC 220V – DC 5V) – 1 шт.
    2. Модуль YP-8 (DC 5V – DC 3,3V) – 1 шт.
    3. Модуль ESP-12E – 1 шт.
    4. Оптопара TLP-621-1 – 2 шт.
    5. NPN-транзисторы A42 – 4 шт.
    6. Диоды 1N4007 – 4 шт.
    7. Конденсаторы 220 nF, 400 V – 2 шт.
    8. Резисторы:
    • 1 MOm (1 Вт) – 4 шт.;
    • 10 kOm (SMD 0805) – 5 шт.;
    • 68 kOm (SMD 0805) – 2 шт.;
    • 4,7 kOm (SMD 0805) – 1 шт.;
    • 220 Om (SMD 0805) – 2 шт.;
    • 100 Om (SMD 0805) – 2 шт.
    9. Винтовые клеммы:
    • 2-х контактные – 5 шт.;
    • 3-х контактные – 1 шт.;
    • (можно любую комбинацию с общим числом контактов – 13).
    10. Не фиксирующиеся кнопки (NO) – 2 шт.
    11. Реле TRIL-5VDCSD-1CH – 2 шт.
    12. Импульсное реле Z-S230/SO (производитель – EATON) – 2 шт.
    13. Гребенка на 3 контакта (папа) – 1 шт.
    14. Разъем папа-мама для выноса выключателя и предохранителя на лицевую часть корпуса – 1 шт.
    15. BOX-KD01 (пластиковый корпус 78 х 93 х 56 мм на DIN-рейку) - 1 шт.
    16. Предохранитель плавкий AC 220V, 0,315А - 1 шт.
    17. Гнездо для предохранителя - 1 шт.
    18. Выключатель питания - 1 шт.
    19. Датчик ds18b20 в корпусе TO-92 - 1 шт.
    20. Датчики ds18b20 в герметичном исполнении - 2 шт.
     
    Последнее редактирование: 25 дек 2016
  4. alp69

    alp69 Форумчанин

    Код (Lua):
    -- Назначаем ноги  и устанавливаем их режимы
    tester_temp = 2  -- здесь все ds18b20               (индекс "2", gpio4, паяемся к ноге 19)
    tester_dev1 = 5  -- контроль устройства 1           (индекс "5", gpio14, паяемся к ноге 5)
    tester_dev2 = 12 -- контроль устройства 2           (индекс "12", gpio10, паяемся к ноге 12)
    switch_dev1 = 6  -- управление устройством 1        (индекс "6", gpio12, паяемся к ноге 6)
    switch_dev2 = 7  -- управление устройством 2        (индекс "7", gpio13, паяемся к ноге 7)
    -- Входы:
    gpio.mode(tester_temp, gpio.INPUT)
    gpio.mode(tester_dev1, gpio.INPUT)
    gpio.mode(tester_dev2, gpio.INPUT)
    -- Выходы
    gpio.mode(switch_dev1, gpio.OUTPUT)
    gpio.mode(switch_dev2, gpio.OUTPUT)
    gpio.write(switch_dev1, gpio.LOW) -- состояние "выкл." по умолчанию
    gpio.write(switch_dev2, gpio.LOW) -- состояние "выкл" по умолчанию
    -- Объявляем переменные
    t1 = nil -- текущая температура 1
    t2 = nil -- текущая температура 2
    t3 = nil -- текущая температура 2
    old_temp1 = -90     -- предыдущая температура 1 (-90 - временное значение для старта)
    old_temp2 = -90     -- предыдущая температура 2 (-90 - временное значение для старта)
    old_temp3 = -90     -- предыдущая температура 3 (-90 - временное значение для старта)
    current_dev1 = nil  -- текущее состояние устройства 1
    current_dev2 = nil  -- текущее состояние устройства 2
    old_dev1 = nil      -- предыдущее состояние устройства 1
    old_dev2 = nil      -- предыдущее состояние устройства 1
    delta_t = 0.5       -- разница в температуре, при которой будет отправка сообщения
    time_sw = 200       -- время переключения импульсного реле (200 мс=0,2 сек)

    Broker = "Ваш_Сайт"
    port = Ваш_Порт
    myClient = "Ваш_Клинт"
    name = myClient
    pass = "Ваш_Пароль"
    publish = false -- регулируем возможность публикаций

    m = mqtt.Client(myClient, 180, name, pass)
    m:lwt("/lwt", myClient, 0, 0)

    --###########################
    --### Функция подключения ###
    --###   (спасибо ИгорюК)  ###
    --###########################
    function connecting()
        print('Проверка (переподключение)...')
        publish = false
        function getConnect()
           if (wifi.sta.status() == 5) and (wifi.sta.getip() ~= nil) then
                print("Есть Wi-Fi!")
                m:connect(Broker, port, 0, 0,
                    function(conn)
                        tmr.stop(6)
                        print("Подключено!")
                        publish = true
                        -- подписка на 2 топика:
                        m:subscribe({["/Ваш топик девайса 1/command"]=0,["/Ваш топик девайса 2/command"]=1}, function(conn)
                            print("Есть подписка!")
                         end)
                end)
            end
        end
        getConnect()
        tmr.alarm(6, 90000, 1, function()
            getConnect()
        end)
    end

    m:on("offline", function(con)
        connecting()
    end)

    --#########################################
    --### Функция переключения устройства 1 ###
    --#########################################
    function swich_1()
    gpio.write(switch_dev1, gpio.HIGH)  -- включаем реле...
            print("вкл "..switch_dev1)
    tmr.alarm(2, time_sw, 0, function() -- на время задержки "time_sw"
            gpio.write(switch_dev1, gpio.LOW)   -- ...выключаем
            print("выкл "..switch_dev1)
    if  gpio.read(tester_dev1) == 1 then -- проверяем состояние устройства 1...
            current_dev1 = "ON"
            elseif gpio.read(tester_dev1) == 0 then
            current_dev1 = "OFF"
            end
    m:publish("/Ваш топик девайса 1/state",(current_dev1),0,0) -- ...публикуем состояние устройства 1
    tmr.delay(500000)   -- задержка для завершения публикации
                        --(сделано намеренно, чтобы все процессы в модуле замерли и не мешали отправке)
    tmr.start(4) -- продолжаем постоянный контроль устройств
    end)
    end

    --#########################################
    --### Функция переключения устройства 2 ###
    --#########################################
    function swich_2()
    gpio.write(switch_dev2, gpio.HIGH)    -- включаем реле...
            print("вкл "..switch_dev2)
    tmr.alarm(3, time_sw, 0, function() -- на 0,3 сек.    !!!!!!!!!!!!!!!!!!!!!!!
            gpio.write(switch_dev2, gpio.LOW)   -- ...выключаем
            print("выкл "..switch_dev2)
            if  gpio.read(tester_dev2) == 1 then -- проверяем состояние устройства 2...
            current_dev2 = "ON"
            elseif gpio.read(tester_dev2) == 0 then
            current_dev2 = "OFF"
            end
    m:publish("/Ваш топик девайса 2/state",(current_dev2),0,0) -- ...публикуем состояние устройства 2
    tmr.delay(500000)   -- задержка для завершения публикации
                        --(сделано намеренно, чтобы все процессы в модуле замерли и не мешали отправке)
    tmr.start(4) -- продолжаем постоянный контроль устройств
    end)
    end


    --#########################################
    --###    Реакция на входящие команды    ###
    --#########################################
    m:on("message", function(conn, topic)
        if (topic=="/Ваш топик девайса 1/command") then          -- если пришло сообщение для устройства 1
        tmr.stop(4) -- останавливаем контроль устройств
        swich_1() -- вызываем функцию переключения устройства 1
        elseif (topic=="/Ваш топик девайса 2/command") then            -- если пришло сообщение для устройства 2
        tmr.stop(4) -- останавливаем контроль устройств
        swich_2() -- вызываем функцию переключения устройства 2
        end
    collectgarbage()
    end)


    --#####################################################
    --### Функция проверки наличия напряжения в цепях   ###
    --### питания устройств. Отправка сообщений         ###
    --### при изменении значений (состояний).           ###
    --#####################################################
    function contr_dev()

    if  gpio.read(tester_dev1) == 1 then
        current_dev1 = "ON"
    elseif gpio.read(tester_dev1) == 0 then
        current_dev1 = "OFF"
    end

    if current_dev1 ~= old_dev1 then -- если состояние устройства 1 изменилось...
        old_dev1 = current_dev1
        m:publish("/Ваш топик девайса 1/state",(current_dev1),0,0) -- публикуем новое состояние устройства 1
        print("Состояние 1 = "..current_dev1)
    end

    if gpio.read(tester_dev2) == 1 then
        current_dev2 = "ON"
        elseif gpio.read(tester_dev2) == 0 then
        current_dev2 = "OFF"
    end

    if current_dev2 ~= old_dev2 then -- если состояние устройства 2 изменилось...
        old_dev2 = current_dev2
        m:publish("/Ваш топик девайса 2/state",(current_dev2),0,0) -- публикуем новое состояние устройства 1
        print("Состояние 2 = "..current_dev2)
    end
    collectgarbage()

    end

    --##################################################
    --### Функция проверки температуры и публикации  ###
    --### при изменениях больше, чем на delta_t      ###
    --##################################################
    function contr_temp()
    local ds18b20 = require('ds18b20')
    ds18b20.setup(tester_temp)
    local addres={}
    addres=ds18b20.addrs()
    local t1 = ds18b20.read(addres[1])
    local t2 = ds18b20.read(addres[2])
    local t3 = ds18b20.read(addres[3])
       if (t1 ~= 85) and (math.abs(t1 - old_temp1) > delta_t) then
            old_temp1 = t1
            m:publish("/Ваш топик температуры внутри устройства/state",t1,0,0)
            print("Температура 1 "..t1)
        end

        if (t2 ~= 85) and (math.abs(t2 - old_temp2) > delta_t) then
            old_temp2 = t2
            m:publish("/Ваш топик температуры объекта 1/state",t2,0,0)
            print("Температура 2 "..t2)
        end

        if (t3 ~= 85) and (math.abs(t3 - old_temp3) > delta_t) then
            old_temp3 = t3
            m:publish("/Ваш топик температуры объекта 2/state",t3,0,0)
            print("Температура 3 "..t3)
        end
        ds18b20 = nil
        package.loaded["ds18b20"]=nil
        collectgarbage()
    end


    connecting()

    tmr.alarm(1, 600000, 1, function() -- контроль температуры каждые 10 минут (600000 мс)
    contr_temp()
    end)

    tmr.alarm(4, 250, 1, function() -- контроль нагрузок каждые 0,25 сек.
    contr_dev()
    end)

    Печатная плата размерами 68 х 83 мм:

    Лицевая сторона
    Лицевая сторона.jpg
    Лицевая сторона с маркировкой (на третьем снизу разъеме перепутаны местами подписи контактов "data" и "vcc")
    Лицевая сторона с маркировкой.jpg
    Обратная сторона
    Обратная сторона.jpg

    При изготовлении платы ЛУТом – не забудьте «отзеркалить» одну из сторон.
    При сборке сначала распаиваются SMD резисторы, а только после них припаивается модуль ESP-12E.

    В приложении файлы для Dip Trace для первой версии устройства:
    • библиотека корпусов;
    • библиотека компонентов.

    Готов выслушать конструктивную критику и предложения по совершенствованию, а также ответить на вопросы по существу.
     

    Вложения:

    Последнее редактирование: 11 сен 2016
    Securbond и ИгорьК нравится это.
  5. alp69

    alp69 Форумчанин

    Принципиальная схема:
    Схема.jpg

    Схема внешних подключений:
    Схема внешних подключений.jpg
     
    Последнее редактирование: 11 сен 2016
    ИгорьК и yul-i-an нравится это.
  6. yul-i-an

    yul-i-an Гик

    Мне только одно не понятно, почему Вы не написали общую функцию switch вместо двух отдельных, а также функция contr_dev проверки наличия напряжения.
    Написать одну функцию и передавать в неё параметры свои для каждого устройства (позволит в дальнейшем масштабировать девайс).
    А так всё понравилось, очень подробно описано.
     
    Последнее редактирование: 18 июл 2016
    alp69 нравится это.
  7. alp69

    alp69 Форумчанин

    Изначально так и было. Но все дело в том, что в такую функцию нужно передавать все аргументы одновременно. А они (команды) приходят в произвольное время.
    И из-за довольно длительного (200мс) времени исполнения функции, при приходе нового аргумента до окончания обработки старого, начинаются артефакты. Нечасто, но бывает. Наверняка есть решение этой проблемы.
    Так как времени на исследования нет, сделал так. Не совсем элегантно, но зато надежно. Для меня в данном девайсе надежность важнее элегантности кода.
    Осенью займусь. До осени времени нет. Беда со свободным временем. Дай бог раз в две недели по 2-3 часа.

    Спасибо за отзыв!
     
    Последнее редактирование: 18 июл 2016
  8. ИгорьК

    ИгорьК Гуру

    Вот, спасибо то! Я, наконец, узнал что такие бывают :) Будет у меня такая задача - буду знать как к ней подойти, сейчас бы решал ее как-нибудь по-другому. Здорово , отличное описание:)
     
    alp69 нравится это.
  9. Securbond

    Securbond Гуру

    Подскажите, как Вы металлизируете отверстия? Постоянно с этим проблемы возникают, особенно под клемными колодками и т.п...
     
    alp69 нравится это.
  10. alp69

    alp69 Форумчанин

    Да ладно! :eek: Вот уж никогда бы не подумал.:)
    Спасибо за отзыв!
     
  11. alp69

    alp69 Форумчанин

    Особо не заморачиваюсь и отношусь к этому философски. Необходимость перехода с одной стороны платы на другую - это объективная реальность, данная нам в ощущениях. В этом контексте - в ощущениях кайфа от хобби:)
    1. На этапе проектирования стараюсь максимум дорожек, подходящих к "сквозным" элементам, закрывающим контактную площадку, развести с обратной стороны.
    2. Если нужен переход со стороны на сторону - использую соседние, "сидящие" на этой же шине, сквозные элементы, не перекрывающие свою контактную площадку. (Творческая возня с разведением дорожек при наличии желания помедитировать и времени) :).
    3. Если п.1 и п.2 не проходят - сверлю рядом с площадкой отверстие и соединяю обе стороны обрезками от тех же "сквозных" элементов.

    По п.3 сделано представленное устройство. В т.ч. под клеммными колодками.
     
    Последнее редактирование: 18 июл 2016
    Securbond нравится это.
  12. alp69

    alp69 Форумчанин

    Есть один важный момент. Бистабильное реле должно иметь либо переключающуюся группу контактов, либо две группы. Из которых одна - нормально замкнутая (NC), а другая - нормально разомкнутая (NO). В этом случае соединяем переключающиеся контакты и подаем с них фазу на нагрузку. А по одному контакту из каждой группы (NC и NO соответственно) подключаем к линиям, идущим на проходной выключатель.
    Этот вариант реализован в моем устройстве на реле Z-S230/SO.
     
    Последнее редактирование: 18 июл 2016
    ИгорьК нравится это.
  13. alp69

    alp69 Форумчанин

    Прошу пардону. Нашел некорректность в описании логики работы. Исправил. Добавленное выделено здесь жирным шрифтом.
    Пост тоже отредактировал.

    А ведь в этом то и фишка. Эдакая "обратная связь".
     
  14. ANV

    ANV Гуру

    Никогда больше не разводите так 220 вольт
     
    alp69 нравится это.
  15. alp69

    alp69 Форумчанин

    Знаю-знаю. Принимается. Ширина дорожек и расстояние между ними... Соседство с низовольтной частью.
    Поэтому и поеду сейчас за электроизоляционным лаком.
    Так как этот экземпляр устройства не последний, в следующем будут учтены все замечания.

    Спасибо за замечание.

    P.S. Хотя ширина дорожек в 1 мм, разведенных для 220 вольт, при токе 0.5А в пять раз превышает минимальную расчетную.
     
    Последнее редактирование: 18 июл 2016
  16. SergeiL

    SergeiL Оракул Модератор

    Я бы еще поменял цепь контроля за включением нагрузки Q1 Q2.
    Как минимум запитать ее от 3.3В.
    А то в момент наличия питания на нагрузке, на GPIO10,14 ESP подается уровень 5В.

    Идея отличная! Молодец!
     
    alp69 нравится это.
  17. alp69

    alp69 Форумчанин

    Транзисторы запитываются от 5 вольт специально. Цепь контроля перед включением в схему отлаживалась на макете. При запитывании транзисторов от 3,3 вольт, на выходе имеем напряжение не более 2,4 - 2,6 вольт. А это почти нижний уровень логической единицы (2.475 по даташиту ESP) -> неустойчивая работа. С чем и столкнулся при отладке. При питании от 5 вольт по данной схеме проблем не зафиксировано.

    Спасибо за отзыв
     
    Последнее редактирование: 22 июл 2016
  18. SergeiL

    SergeiL Оракул Модератор

    А я бы поставил транзистор эмиттером на землю, коллектор - к питанию 3.3В через резистор 10к, и одновременно на порт GPIO. С База через резистор 10к на землю, и на выход 3 оптопары.
    Выход 4 оптопары тоже на 3.3В.

    Схема с общим коллектором получается.

    Есть напряжение в сети - на входе GPIO будет ноль.
    Нет напряжения в сети - на входе GPIO будет единица.
     
    9xA59kK и alp69 нравится это.
  19. alp69

    alp69 Форумчанин

    Дело вкуса. Но Вы подсказали неплохой вариант сокращения количества элементов. Исключаем транзистор, с коллектора оптрона кидаем на gpio.
    Спасибо. В следующей версии девайса учту.
    А пока набираю материал по отзывам и замечаниям. Бета-тестирование, так сказать.
     
  20. alp69

    alp69 Форумчанин

    UPD 06.09.16
    Вновь приветствую вас, коллеги!
    Как и обещал – представляю доработанную версию устройства (введено в эксплуатацию 26.08.2016.

    Внешний вид (закрыто).jpg Внешний вид (открыто).jpg

    Что нового:
    1. В целях предотвращения сваривания контактов промежуточных реле, продления их ресурса и повышения надежности и пожаробезопасности устройства в целом, добавлены цепи искрогашения для контактов промежуточных реле (С1, R1, R4 и C2, R2, R5). В целях предотвращения потребления тока элементами цепей искрогашения на холостом ходу, цепи задействуются только в момент переключения.
    2. Для оптимизации трасс печатной платы изменены номера контактов ESP-12E, задействованные в работе.
    3. Доработана разводка высоковольтной части печатной платы.
    4. Для облегчения температурного режима работы устройства «раздет» модуль питания HLK-PM01 (AC 220V – DC 5V). Удален пластиковый корпус и мастика, окутывавшая элементы модуля.
    5. Все конденсаторы, варисторы и резисторы, работающие под переменным напряжением 220 вольт, одеты в термоусадку. В цепях искрогашения – белая и прозрачная. В цепях контроля наличия 220 вольт – в красную.
    6. В целях экономии места на плате исключен модуль YP-8 (DC 5V – DC 3V3). Модуль разобран и перенесен на плату поэлементно (за исключением светодиода и его резистора).

    На принципиальной схеме не отображены:
    1. Выключатель питания и плавкий предохранитель. Они подключаются последовательно к контактам Х3. Номинал предохранителя – 0,315 А.
    2. Внешние датчики температуры ds18b20. Датчики подключаются к контактам колодки Х5 параллельно.
    3. Импульсные реле, непосредственно управляющие нагрузкой. Катушки реле подключаются каждая к своей колодке – Х1 и Х2.

    Устройство смонтировано на реальном объекте 26 августа 2016г. При монтаже выяснился один немаловажный интересный момент.
    Объект был оборудован энергосберегающими люминесцентными лампами. В выключенном состоянии (прерывание подводимой к ним фазы) они отдают в фазовую линию сети переменное напряжение порядка 18-27 вольт (измерено тестером). Наверное вы видели, как мерцают такие лампы в темноте после выключения. Так вот схема контроля срабатывала на это напряжение. Этого оказалось достаточно для зажигания светодиодов в оптопарах схемы контроля. При выключенной нагрузке схема показывала, что нагрузка включена. Можно было, конечно, поковыряться и устранить этот артефакт путем снижения чувствительности схемы контроля. Однако у меня не было ни малейшего желания «на коленке» вносить изменения в готовое устройство. Тем более что при себе не было ни нормального паяльника, ни подходящего для тонкой работы инструмента. Да и просто было лень – отпуск ведь! ;)
    Ситуацию разрешил просто – заменил все газонаполненные энергосберегайки на светодиодные лампы. Можно было и лампы накаливания вкрутить (с ними тоже все работает), но не по фэншую это как-то.
    Так что, коллеги, если у кого-то из вас появится желание повторить мое устройство или часть его – примите вышеописанное к сведению.

    P.S. Можно на принципиальной схеме соединить контакты колодок Х1 и Х2 с соответствующими контактами колодок Х6 и Х7. Будет меньше внешней коммутации. Возможно это будет в следующих версиях.
     
    Последнее редактирование: 25 дек 2016
    ИгорьК нравится это.