Сервопривод является стандартным компонентом для движущихся моделей и, кроме того, он используется и для других целей. Иногда может потребоваться проверить правильность работы сервопривода. Для этой цели и была разработана эта небольшая схема, которая позволяет быстро и легко протестировать практически все типы сервоприводов.
Кроме того, данным тостером можно проверить другие компоненты, которые могут быть подключены к системе дистанционного управления, например, контроллеры освещения или регуляторы двигателя. С помощью потенциометра ширина импульса может регулироваться от 0,9 мс до 2,1 мс, что соответствует диапазону регулирования от минус 120% до плюс 120%.
Схема состоит из 2 частей: собственно самого тестера сервопривода (DD1, R1, C3 и C4) и стабилизированного источника питания с напряжением +5В (DA1, C1 и C2).
Сторонний источник питания не обязателен, если подходящее напряжение уже доступно, например, от аккумулятора приемника с напряжением 4,8 В или 6 В. Однако в небольших моделях привод и вся электроника обычно питаются от одного элемента аккумулятора.
На схему питание подается через разъем К1. Напряжение должно быть в диапазоне от +5,5 В до +15 В, при этом хорошо подходят LiPo аккумуляторы с 2 или 3 ячейками (7,4 В или 11,1 В) или пакеты NiMH/NiCd с 5-10 ячейками.
Микросхема DA1 (L4940V5) — это так называемый стабилизатор с низким падением напряжения, которому достаточно входного напряжения 5,5 В для создания стабильных 5 В. Это было сделано специально, чтобы схема надежно работала в широком диапазоне входных напряжений.
Кроме того, здесь сознательно использовалась модель с током 1,5 А, так как питается не только сервотестер, но и сам сервопривод, подключенный к разъему K2. Причем в охлаждении стабилизатора нет необходимости, поскольку опыт показывает, что тестер работает в течение непродолжительного времени и стабилизатор не успевает нагреться.
Сервотестер очень прост и состоит в основном из микроконтроллера ATtiny13 (DD1) и потенциометра R1. В зависимости от положения на ползунке R1 снимается напряжение от 0 В до +5 В и подается на вход PB3 микроконтроллера.
Микроконтроллер с помощью АЦП преобразует это напряжение в значение от 0 до 255. В соответствии с этим значением на выводе PB4 генерируется импульсный сигнал для сервопривода, который на осциллографе выглядит следующим образом:
С помощью потенциометра R1 ширина импульса может быть изменена в диапазоне от 0,9 мс до 2,1 мс. Импульсный сигнал повторяется каждые 20 мс. В соответствии с установленной шириной импульса сервопривод принимает следующие положения:
Микроконтроллер может быть запрограммирован через ISP (разъем K3).
Конструкция
На верхнем рисунке показана готовая схема, которая была построена на макете размером 32 мм x 26 мм. В верхней части вы можете видеть регулятор напряжения с конденсаторами C1 и C2, потенциометр слева внизу и микроконтроллер справа. Микроконтроллер установлен панельку, чтобы плату можно было использовать в качестве устройства программирования для ATtiny13.
Напряжение подается с левой стороны платы через разъем JST. Таким образом, летная батарея вертолета может быть подключена напрямую. Остальные разъемы расположены на правой стороне платы: сверху подключается сервопривод, а снизу интерфейс для программирования. Черная метка между разъемами показывает, с какой стороны должна быть подключена линия заземления (черный провод сервомотора).
Как выглядит обратная сторона платы показано на нижнем рисунке. Как обычно, линии питания выполнены проводом диаметром 0,5 мм, для остальных использовалась медная проволока 0,3 мм.
Для безопасности схему следует установить в небольшой корпус или изолировать ее термоусадочной трубкой, при этом, конечно же, серво-разъем и потенциометр должны быть доступными.
Программное обеспечение
При программировании обязательно следует учитывать установку фьюзов. Они должны быть установлены следующим образом:
Программа микроконтроллера работает следующим образом: при включении питания сначала активируются порты ввода/вывода, АЦП, таймер и прерывание таймера.
Так как таймер должен формировать сервоимпульсы с малым шагом в диапазоне от 0,9 мс до 2,1 мс, то он работает на относительно быстрой частоте 150 кГц (отсчет примерно каждые 6,67 мкс).
Поскольку это 8-битный таймер, он переполняется после 256 тактовых импульсов (т.е. примерно через 1,707 мс) и снова начинает отсчет с 0. Чтобы расширить диапазон счета, при каждом переполнении запускается прерывание, а затем регистр микроконтроллера увеличивается на 1.
В результате получается 16-битный счетчик, который может не только генерировать сервоимпульсы длительностью до 2,1 мс, но также и интервал 20 мс, в котором сервоимпульсы должны регулярно повторяться.
После инициализации основная программа запускается в бесконечном цикле. В нем постоянно проверяется, достиг ли счетчик значения 3000, что соответствует уже упомянутому интервалу 20 мс. Если это происходит, то 16-битный счетчик снова устанавливается на 0, а импульсный выход PB4 устанавливается на высокий уровень (начало импульса).
Затем определяется положение потенциометра путем считывания значения аналого-цифрового преобразователя. Это значение, которое находится в диапазоне от 0 до 255, теперь должно быть преобразовано в значение, которое можно напрямую сравнить со счетчиком таймера. Таким образом, основной программный цикл может определить конец импульса и в нужный момент снова установить на выходе PB4 низкий уровень.
Положение потенциометра преобразуется в значение импульса в 2 этапа: сначала значение аналого-цифрового преобразователя умножается на 181, и используется только старший байт 16-битного результата. В результате получается значение от 0 до 180.
На втором этапе добавляется фиксированное значение 135, так что конечный результат представляет собой диапазон значений от 135 до 315. По отношению к циклу таймера примерно 6,67 мкс — это соответствует желаемому диапазону импульсов от 0,9 мс до 2,1 мс.
Основная программа теперь постоянно сравнивает текущее показание счетчика с только что определенным значением импульса и, когда это значение достигается, переключает выход PB4 обратно на низкий уровень (конец импульса).
Скачать прошивку (11,2 KiB, скачано: 301)