Довольно часто в Arduino проектах необходимо управлять питанием какого либо исполнительного механизма. Например, мотора, или более сложной электроники. Нет смысла держать мотор в моторедукторе включенным, если его задача открывать или закрывать окно два раза в сутки. Всё остальное время включенный исполнительный механизм будет потреблять энергию и сокращать свой срок службы. Поэтому есть резон включить ему питание, сделать действие, а потом отключить питание. В случае, например, со светодиодом или низкоточной пищалкой, мы можем подавать питание напрямую с выхода микропроцессора. Понятно, что в таком случае мы будем ограничены током и напряжением, которые наш микропроцессор сможет выдать на своём выходе. Для Arduino - это обычно напряжение 5В и ток 20мА. В случае если наш исполнительный механизм имеет большее потребление или большее питающее напряжение нам потребуется «развязка» - или отдельная схема, которая по наличию напряжения 5В на своем входе будет через себя подключать мощную нагрузку. Довольно часто в своих проектах люди используют обычные модельные сервомашинки. У Arduino даже есть несколько библиотек, которые позволяют свести работу с такими серво к простому указанию «переместить в положение столько-то градусов». Меня тоже не минула чаша сия. В своем проекте «Трехходовой кран для системы охлаждения» я применил модельную сервомашинку, которая осталась у меня еще со времен занятия авиамоделизмом. Принципы управления сервомашинкой мы обсуждать не будем. Сейчас наша задача управлять её питанием с помощью Arduino. Управлять питанием можно «по минусу» и «по плюсу». Как можно догадаться в одном случае мы коммутируем минусовой провод, в другом плюсовой. На первый взгляд разницы нет. Однако это не совсем так. Схема управления «по минусу» обычно более простая в исполнении, и как следствие более дешевая в изготовлении. Но для управления питанием сложной электроники она не годится, поскольку минус в таких устройствах может появляться не очевидным образом. В итоге может получиться так, что мы свой минус отключили, а устройство работает или что еще хуже находится в полуработающем состоянии. Я неоднократно ходил по этим граблям. Сначала мы экономим на радиодеталях, а потом тратим уйму времени, разбираясь почему не работает, и принимаем меры к устранению проблемы, которые в совокупности намного дороже сэкономленного. Схема управления питанием «по минусу» довольно часто применяется в автомобилях. Различные концевики, лампочки, и даже электромоторы — часто управляются по минусу. Для простой нагрузки вполне подходит. Для сложной электроники, по моему мнению, лучше применять управление по плюсу. Я не так давно убедился в этом в очередной раз. Схема управления «по минусу» как обычно подкупила простотой и возможностью быстро изготовить плату в домашних условиях. А потом получилось как всегда — пришлось спешно изобретать костыли, а потом переделывать на управление «по плюсу».
Схема по минусу выглядела вот так:
Она даже как-то работает, но использовать её не советую. Скорее всего соберете грабли похожие на мои. :)
А теперь сравните, насколько схема «по плюсу» сложнее.
Как показала практика эта схема работает отлично. Попробую кратко описать как она работает. Подавая +5В с выхода микроконтроллера на затвор N-канального полевого транзистора 2N7002 мы открываем его, а он в свою очередь притягивает затвор мощного P-канального транзистора FDD6637 к земле, открывая его. Транзистор FDD6637 открываясь подаёт плюс питания на 5-ти вольтовый стабилизатор напряжения LM7805, который запитывает нашу сервомашинку. Всё просто. Сигнал управления сервомашинкой подаётся напрямую с микроконтроллера. Землю можно взять с платы микроконтроллера, можно напрямую с блока питания — без разницы. Резистор R5 служит для подавления помех, в случае, когда управляющего сигнала для сервомашинки от микроконтроллера нет. Конденсатор С1 надо ставить в случае если стабилизатор питания установлен далеко от источника входного напряжения — т.е длинная линия питания. Конденсатор С2 немного улучшает переходную характеристику LM7805. Конденсатор С3 в принципе можно не ставить, но в моем случае, при интенсивном использовании сервомашинки, микросхема LM7805 чуточку меньше грелась. Если ваша сервомашинка потребляет 1,5А или предполагается включение серво на продолжительное время (более 2 минут), то стабилизатор необходимо установить на радиатор. Схему и плату делал в Eagle cad.
Плата рассчитана под корпуса D-pak(TO-252) для FDD6637 и LM7805. Но стабилизатора в корпусе D-pak в наличии не было. Пришлось впилить по колхозному варианту из того, что было. :)
Так уж получилось, что плата оказалась готова сильно раньше чем пришли необходимые комплектующие.
Вот так выглядит плата, установленная на трехходовой кран:
А вот так она выглядит в Eagle Cad:
Вместо транзистора FDD6637 можно взять менее мощный в корпусе Dpak. Стабилизатор LM7805 можно заменить на любой другой подходящий по току, цоколевке и корпусу. В моем случае сервомашинка имеет питание 4,8 Вольт, поэтому стабилизатор взял на 5В. Если серво высоковольтная, то либо берите подходящий стабилизатор, либо подавайте питание напрямую, замкнув контакты входа и выхода на месте стабилизатора на плате.
После того как пришли комплектующие собрал еще одну плату, на сей раз стабилизатор как положено в корпусе DPAK. Выглядит аккуратней, но устанавливать в рабочую систему не стал - возни много. Проверил на копии крана, работает отлично.
На случай если кто-то захочет сделать самостоятельно, выкладываю исходники Eagle проекта, архив с gerber файлами, и Arduino скетч для проверки. Тынц.
Для заказа платы достаточно отправить на завод gerber файлы. Кто-то принимает в ZIP архиве, кто-то просит распакованные. Я заказывал плату в «Электроконнект» - изготовили без всяких вопросов и доработок с моей стороны. В целом у «Электроконнект’а» есть заводы в крупных городах, так что возможно у них и закАжите. Думаю и китайцы тоже справятся. Тем более у них скорее всего будет дешевле.
Скетч предназначен только для демонстрации работы собранной платы. Безусловно если хотите, то можете использовать код в своих проектах. Важно подчеркнуть, что в скетче реализовано программное управление сервой. Такое решение может нестабильно работать или вообще не работать в сложных проектах, когда микропроцессор сильно занят другими задачами и его постоянно отвлекают прерываниями.
На этом всё. Всем удачи в творческих делах.