Найти в Дзене
SamON

Управление реле/соленоидом.

Оглавление

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

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

Если напрямую нельзя, можно "на косую". Т.е. через транзистор. Много говорить не буду. Вот минимальная обвязка для управления релюшкой.

Каждый элемент критически важен и жизненно необходим.

Минимальная схема включения реле
Минимальная схема включения реле

Да, я знаю, что нафиг не нужно ставить R1 и R2, так как "и так работает". Это относится к том вопросу, а надо ли вешать блокирующие конденсаторы. Ну без них же работает, чо.

Короче, надо. С тем же успехом можно применить и биполярный транзистор. Просто надо загнать его в ключевой режим работы.

Если говорить про полевой, то надо держать в голове, что у полевого транзистора есть ёмкость затвора и у мощных транзисторов она может быть довольно значительная. Всем известно, что ёмкость, в начальный момент времени, является закороткой. По-этому, при приходе импульса с ножки MCU, в начальный момент времени, ток подскакивает до значительных величин. Так вот, что бы этот бросок тока сгладить, ставят R1. Да, получается RC цепь, которая влияет на время открывания транзистора, при этом мы разгружаем порт контроллера.

R2 прижимает затвор к земле для того, что бы в начальный момент времени у нас не было неопределенного состояния и реле не сработало после включения

Был случай на работе, несколько лет назад. При подаче питания система вела себя непредсказуемо. Оказывается, разработчик не предусмотрел этот самый резистор, который гарантированно закрывает транзистор. При подаче питания транзистор успел открыться и подать "ложный" сигнал на другие блоки, которые этот сигнал начинали отрабатывать. Так как минимальное время инициализации контроле составляло порядка 10 мс (из документации цифра взята), всё это время затвор, фактически, болтался в воздухе, от чего и отрывался.

Плюс был еще криво написан софт и до инициализации GPIO дело доходило спустя сотню-другую миллисекунд. Короче, надо держать в голове этап загрузки/инициализации системы.

Далее, думаю "бывалые" все в курсе, новички не все. Нужен диод, который шунтирует обмотку реле. Это очень важный элемент. Зачем нужен, объясняю.

Катушка имеет большую индуктивность. После подачи тока, когда все переходные процессы устаканятся, в катушке накапливает энергия и если резко снять ток (закрыть транзистор), потусторонние силы подбрасывают напряжение на обмотке до бесконечности (в идеальной катушке). В реальной жизни там легко "набегает" в разы больше, чем напряжение питания. Так как это напряжение имеет противоположную полярность, открывается диод и шунтирует катушку. Вся запасённая энергия стекает на землю через диод.

Для любопытных, вот основные законы.

Запасённая энергия прямо пропорциональна квадрату тока. ЭДС самоиндукции (тот самый всплеск) имеет знак "-". Чем быстрее изменение тока, тем больше это самое ЭДС.
Запасённая энергия прямо пропорциональна квадрату тока. ЭДС самоиндукции (тот самый всплеск) имеет знак "-". Чем быстрее изменение тока, тем больше это самое ЭДС.

ВАЖНО!

Многие наивно полагают, что сток-исток уже шунтируется диодом внутри мосфета, потому такой диод ставить не надо. Вы должны чётко понимать, что этот диод, внутри транзистора, паразитный. Он получается технологически и категорически не подходит для защитный целей.

И лучше ставить не обычный диод, TVS, так как тут важно быстродействие. Кроме того, следует и PCB развести грамотно в окрестностях коннектора для реле, ибо "искра" должна сначала прилететь на диод, а потом НЕ пойти на сигнальные цепи. Если диод будет расположен далеко, то есть риск, что он не сработает. В идеале, диод надо вешать непосредственно на катушку, а уж потом тянуть провод на плату. Да и я стараюсь в окрестности диода и коннектора не заливать полигонов, подальше располагать другие линии, что бы уже наверняка не искрануло.

С минимумом всё. Едем дальше.

Дальше речь пойдет больше про соленоидные клапаны. Дело в том, что ток срыва штока и ток удержания - разные величины. Было дело, что имелась высокая вероятность залипания клапана и его надо было срывать более высоким током, на что он был рассчитан. После срыва/открывания, клапан надо было удерживать в открытом состоянии. Вот для удержания такой большой ток не нужен. Как правило, хватает 1/2, а то и 1/3 от номинала.

Схемотехнический можно сделать так:

Схема управления катушкой индуктивности
Схема управления катушкой индуктивности

Напоминаю, что если на конденсатор подать ступеньку напряжения, ток в цепи резко подскочит, а потом экспоненциально убудет (по мере зарядки ёмкости). Другими словами, в начальный момент времени подачи напряжения на конденсатор, он является закороткой.

От этой мысли и "пляшем". После открывания транзистора, C1 шунтирует R1 и весь ток течет через катушку фактически без потерь. Де-факто, в начальный момент времени эта схема представляет собой предыдущую схему. По мере зарядки конденсатора, ток через него падает и когда кондёр зарядится полностью, ток через него течь перестанет, потечет через R1.

Другими словами, после открытия транзистора, происходит срыв клапана большим током (в нашем случае - номинальным током), а через время этот ток падает до уровня, ограниченный резистором R1. Не надо думать про всякие алгоритмы управления, всё "разруливается" автоматически. Можно, конечно, и ШИМить, но не всегда есть такая возможность.

Немного практики.

Предположим, у нас реле TRB1-12VDC-SA-CD-R. Сопротивление обмотки 720 Ом, ток 16,2 мА при напряжении 12 В (цифры из документации). Пусть я хочу снизить ток удержания до 5 мА, а ток срыва пусть будет номинальным (16,2 мА). Прикинем сопротивление цепи катушки для режима удержания;

-5

Теперь вычислим сопротивление резистора для поддержания такого тока в цепи:

R - величина вычисленная выше и равняется 2400 Ом
R - величина вычисленная выше и равняется 2400 Ом

Прикинем конденсатор. Надо задаться временем, в течение которого конденсатор будет заряжаться, а следовательно, будет действовать режим срыва тока. Например, я считаю что 10 мс (0,01 с) мне хватит. В умных книжках говорится что время зарядки конденсатора до >90% равняется тау = 5RC, получаем:

720 - сопротивление обмотки реле.
720 - сопротивление обмотки реле.

Расчеты грубые, понятно дело что со временем ток через кондер будет падать и перераспределяться между R1 и C1 (пока переходной процесс не устаканится), но это позволяет предположить примерные порядки элементов. Да, не забываем про мощность резистора P = I*I*R.

Внимательный читатель заметил еще и стабилитрон VD2.

Суть в том, что когда мы снимаем напряжение с катушки, появляется ЭДС самоиндукции, которое замыкается на землю через защитный диод VD1. В результате начинает течь ток K1 - VD1. Раз течет ток через катушку, значит она будет поддерживать магнитное поле, которое будет держать якорь еще какое-то время в положение "ВКЛ". Эту задержку выключения можно убрать, если убрать VD1 на время. Но как это сделать, что бы бросок ЭДС не вырубил наш VT1? Просто добавляем VD2. Бросок ЭДС будет, но оно не превысит напряжение стабилизации VD2.

Другими словами, пока не откроется VD2, тока в цепи VD1 - K1 не будет, якорь успеет вернуться пружиной обратно, а когда откроется VD2 этот ток уже не сможет притянуть к себе якорь повторно.

Напряжение стабилизации VD2 выбирается меньше, чем напряжение пробоя сток-исток (к-э у биполярного).

Ну и на последок.... для самых ленивых (шутка).

Драйвер управления соленоидом.

Тут всё просто. Есть интегральная микросхема, которую включаем как в документации.

-8

Вся прелесть в том, что вы вообще ни как не задействуете дополнительную периферию контроллера. Всё за вас делает эта малышка.

Стоит лишь подать управляющий сигнал на вход EN. В целом, всё становится понятно, если глянуть на осциллограммы.

-9

Синий - управляющий сигнал (вкл/выкл). Желтый - напряжение на соленоиде. Зеленый - ток. Фиолетовый - Solenoid Position (т.е. шток соленоида втянут/не_втянут.

Особо интересно наблюдать за током. Виден явный экстремум функции. Если движение штока началось - мы видим временное уменьшение тока. Если движения нет - увидим просто монотонно возрастающий участок до напряжения питания. Можно построить достаточно интеллектуальную систему управления соленоидом, используя данные с токового датчика.

Видно, что как только шток втянулся, соленоид начинает "шимить". Обратите внимание на скважность. Какой мизерный ток нужен для удержания соленоида в открытом положении.

Ну всё. Это, наверное, у меня талант... писать сложно о простом. Надеюсь я донёс мысль.