Найти тему

Управление питанием сервомашинки в Arduino проектах и не только

Довольно часто в 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 в наличии не было. Пришлось впилить по колхозному варианту из того, что было. :)

Осталось еще пара плат. Если кому надо, пишите вышлю.
Осталось еще пара плат. Если кому надо, пишите вышлю.

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

Вот так выглядит плата, установленная на трехходовой кран:

-4

А вот так она выглядит в Eagle Cad:

-5

Вместо транзистора FDD6637 можно взять менее мощный в корпусе Dpak. Стабилизатор LM7805 можно заменить на любой другой подходящий по току, цоколевке и корпусу. В моем случае сервомашинка имеет питание 4,8 Вольт, поэтому стабилизатор взял на 5В. Если серво высоковольтная, то либо берите подходящий стабилизатор, либо подавайте питание напрямую, замкнув контакты входа и выхода на месте стабилизатора на плате.

После того как пришли комплектующие собрал еще одну плату, на сей раз стабилизатор как положено в корпусе DPAK. Выглядит аккуратней, но устанавливать в рабочую систему не стал - возни много. Проверил на копии крана, работает отлично.

-6
-7

На случай если кто-то захочет сделать самостоятельно, выкладываю исходники Eagle проекта, архив с gerber файлами, и Arduino скетч для проверки. Тынц.

Для заказа платы достаточно отправить на завод gerber файлы. Кто-то принимает в ZIP архиве, кто-то просит распакованные. Я заказывал плату в «Электроконнект» - изготовили без всяких вопросов и доработок с моей стороны. В целом у «Электроконнект’а» есть заводы в крупных городах, так что возможно у них и закАжите. Думаю и китайцы тоже справятся. Тем более у них скорее всего будет дешевле.

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

На этом всё. Всем удачи в творческих делах.