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

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

Устройство

Схема сервопривода включает в себя датчик, блок питания, а также плату управления. Дополнительно в моделях можно встретить конвертер. Чаще всего он устанавливается линейного типа. В данном случае многое зависит от привода. Представлен он в сервоприводе, как правило, в виде электромотора с редуктором. Однако на сегодняшний день имеется множество модификаций с пневмоцилиндрами.

Как собрать модель?

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

Далее, чтобы собрать сервопривод своими руками, нужно подобрать потенциометр аналогового типа. В магазине его найти не составит труда. После этого следует заняться установкой датчика. Как правило, плата управления подбирается серии РР20. Для поворотных регуляторов она подходит хорошо. В конце работы останется только установить конвертер. Все это необходимо для того, чтобы подсоединить устройство к сети.

Модель для отопления

Сервопривод для отопления в наше время является очень востребованным. Отличаются данные устройства высоким параметром предельной частоты. Двигатели чаще всего в моделях используются асинхронного типа. При этом мощность их находится на уровне 2 кВт. Для передачи вращательного момента на вал используются малые шестерни. На сегодняшний день наиболее распространенным принято считать сервопривод для отопления с аналоговыми потенциометрами.

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

Устройство с клапаном

Клапан с сервоприводом, как правило, используется в промышленной сфере. Там он способен отвечать за регулировку станков. Отличительной особенностью данных моделей принято считать мощные двигатели. При этом параметр предельной частоты у них достигает 22 Гц. Все это, в конечном счете, дает приборам хорошее ускорение. Непосредственно моторы можно встретить в основном асинхронного типа. Соединение с валом клапан с сервоприводом имеет шестерного типа. Регуляторы в таких устройствах встречаются поворотного и кнопочного вида. В данном случае клапаны могут использоваться только односторонние.

Модель для печки

Сервопривод печки в среднем мощность имеет на уроне 2 кВт. Двигатели чаще всего устанавливаются асинхронного типа с предельной частотой на отметке в 31 Гц. Отличительной особенностью таких устройств принято считать наличие резистивного элемента. В его обязанности входит повышение пропускной способности модели. Редукторы чаще всего устанавливаются низкочастотного типа. Дополнительно следует отметить, что на рынке представлено множество модификаций с потенциометрами.

Управленческие платы, как правило, имеются серии РР20. Для многофункционального контроля печки они подходят идеально. В данной ситуации выходные валы подсоединяются напрямую к коробке редуктора. Все это необходимо для того, чтобы повысить крутящий момент. В качестве рычага производители используют плечо. Устанавливается оно, как правило, не большого размера. Подключается сервопривод печки к сети через специальные контакты на конвертере. В данном случае статор к устройству подсоединять можно. Дополнительно сервопривод отлично способен выполнять функции усилителя.

Устройство для регулировки заслонки

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

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

Модель с краном

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

На сегодняшний день многие производители отдают предпочтение модификации РР20. Непосредственно контроллеры устанавливаются поворотного типа. Подключение сервопривода к сети осуществляется при помощи конвертера. На рынке в наше время представлены как нелинейные, так и линейные его типы.

Синхронные модификации

Синхронный сервопривод - что это? На самом деле указанное устройство используется для регулировки станков. При этом в вентиляционных системах они также являются востребованным. Датчики у моделей устанавливаются, как правило, проворного типа. В данном случае мощность двигателя может варьироваться от 1 до 3 кВт. Отдельного внимания в устройствах заслуживает конвертер. Устанавливается он, как правило, на два контакта. Однако имеются и другие модификации.

Статоры используются цифрового типа, и регулировать их можно при помощи котроллера. Еще одной отличительной чертой данных устройств принято считать наличие энкодеров. Данные детали необходимы для обратной связи. Параметр предельной частоты у сервоприводов не превышает 35 Гц. Подключение устройства к сети осуществляется только через клеммы. Дополнительно следует отметить, что резистивные механизмы используются, как правило, низкочастотного типа. Самостоятельно сложить сервопривод довольно сложно. Однако в данном случае многое зависит от типа управленческой платы.

Асинхронные сервоприводы

Асинхронный сервопривод - что это? В действительности указанное устройство предназначено исключительно для оборудования, которое блок питания имеет на 15 В. В этом случае мощность прибора, как правило, не превышает 2 кВт. Нагрузку максимум потенциометр в моделях способен выдерживать на уровне 23 А. Для передачи крутящего момента от мотора используются не большого диаметра выходные валы. При этом рычаг двигается за счет шестерни.

Изменение частоты вращения происходит благодаря котроллеру. Управление сервоприводом осуществляется при помощи специальной платы. В некоторых случаях для изменения положения регулятора используется плечо. Резистивные устройства чаще всего устанавливаются низкочастотные. При этом сервоприводы на пневмоцилиндрах в наше время встречаются довольно редко. Чтобы самостоятельно собрать такую модификацию, потребуется мощный редуктор. Также для него следует подобрать статор ручного типа.

Сервоприводные модификации линейного движения

Линейного движения сервопривод - что это? На самом деле указанное устройство является регулятором с обратной связью. На сегодняшний день модели очень востребованы. Для различных систем отопления они подходят идеально. Конвертеры в них чаще всего используются на три контакта. Статорные коробки устанавливаются различной мощности. Двигатели могут использоваться только синхронного типа.

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

Устройства для промышленных роботов

Для сервопривод - что это? В действительности указанное устройство является многофункциональным котроллером. В данном случае платы используются серии РР30. За счет этого у пользователя открывается возможность регулировать параметр предельной частоты. В среднем он колеблется в районе 25 Гц. Работают устройства данного типа от блоков питания на 15 В.

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

Сервоприводные модели для полиграфических станков

Для полиграфических станков модели необходимы с синхронными типами моторов. Мощность их обязана достигать 2 кВт. Параметр предельной частоты приветствуется на уровне 30 Гц. На сегодняшний день большинство производителей выпускают сервоприводы с аналоговыми потенциометрами. Также следует отметить, что редукторные коробки, как правило, используются плоские. Все это необходимо для того, чтобы устройство было компактным.

Отдельного внимания в сервоприводах данного типа заслуживают роторы. Показатель проводимости у них обязан минимум составлять 3 мк. Все это необходимо для хорошего ускорения. Выходные валы в данном случае используются небольшого диаметра. Конвертеры чаще всего можно встретить на три контакта. Для блоков питания на 20 В они подходят идеально. Статорные коробки устанавливаются различной формы и по конструкции могут сильно различаться. В этой ситуации многое зависит от энкодера, который установлен в сервоприводе.

Устройства для швейных машин

Сервоприводы данного типа отличаются от прочих устройств своей компактностью. Двигатели у таких моделей чаще всего можно встретить асинхронного типа. От сети с напряжением 220 В они работают без каких-либо проблем. Регулятор в данном случае используется поворотного типа. Максимум параметр предельной мощности достигает 1.2 кВт. Пороговая частота в этой ситуации едва доходит до отметки 20 Гц. Потенциометры используются только аналогового типа.

Редукторные коробки для этой модификации подходят маломощные. Сервоприводы на две шестерни попадаются довольно часто. Однако в основном устанавливаются роторы для передачи крутящего момента от мотора. Выходные валы обладают малой частотой вращения. При этом нагрузка на плечо оказывается небольшая. Контроллеры в данном случае используются одноканальные. При этом менять параметр мощности у пользователя нет возможности. Датчик обратной связи в сервоприводах данного типа располагается возле статора.

Сервоприводные модификации для упаковочных станков

Модель данного типа чаще всего работает от движения пневмоцилиндров. При этом блоки питания часто используются на 12 В. В данном случае системы защиты устанавливаются довольно часто. Конвертеры можно встретить на два и три контакта. Статорные коробки устанавливаются различной конфигурации. В некоторых случаях датчики обратной связи в сервоприводах заменяются энкодерами. Роторные коробки на предельное напряжение должны быть рассчитаны в районе 12 В. Резистивные механизмы в устройствах встречаются довольно редко.

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

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

Кому интересно, прошу под кат.

Идея

Надо управлять сервоприводом, но без микроконтроллера.

Знания

Всем известно, что опыт и знания помогают творить и находить решения. На страницах Гиктаймса немало примеров использования сервопривода с применением контроллеров. В них подробно рассказано про систему управления сервоприводом. Примем этот опыт других разработчиков за знания необходимые нам для решения задачи. Сервопривод SG90 управляется ШИМ сигналом, параметры которого определяют положение ротора. Период ШИМ около 20 мС, длительность сигнала управления от 500 до 2100 мкС.

Задача

Идея и знания порождают задачу, которую необходимо решить. Сформулируем задачу для воплощения идеи. Это что-то вроде Технического Задания. Кажется, все просто, надо взять генератор импульсов с изменяемой скважностью, подключить питание к сервоприводу, а с генератора подать управляющий сигнал. Особо отметим, что в требованиях есть изменения скважности - то есть должны быть органы управления или пользовательский интерфейс.

Реализация

Вот тут и начинаются муки творчества: что взять и где взять? Можно найти готовый лабораторный импульсный генератор, например Г5-54 с ручками, кнопками, выставить нужные параметры, подключить генератор к сервоприводу. Однако это громоздко и не все могут позволить себе такую роскошь. Поэтому разработчики, опираясь на свой опыт и знания, пытаются совместить желание (идею-задачу) и возможности (материальные и творческие) для реализации задачи. Материальные возможности - это та “жаба” “А сколько и чего я хочу потратить на реализацию идеи?” Творческие возможности - это, “посмотрю-ка я, что у меня уже есть”. Это не обязательно какие-то материальные ценности, а опыт и знания предыдущих разработок, которые можно приспособить под реализацию. Также не лишним будет поискать (погуглить), что кто-то уже реализовывал что-то подобное. Для сокращения вариантов решения необходимо самому добавлять дополнительные требования, ограничивающие фантазии реализации. Например, добавим к требованиям еще одно условие, пусть это будет материальное ограничение, реализация должна быть недорогой .

Поиск альтернатив

Воспользовавшись интернетом, поищем варианты, которые предлагает СЕТЬ. Зададим в поиске: “генератор прямоугольных импульсов с переменной скважностью”. Получим очень много вариантов, как с применением интегральных таймеров NE555 (отечественный аналог КР1006ВИ1), так и на логических микросхемах. Из всего разнообразия я выбрал вариант генератора на инверторе с триггером Шмитта на входе. Во-первых, он самый простой, во-вторых, требует минимум деталей и самое интересное использует единственный логический элемент из шести, если, например, использовать микросхему 74HC14.

Схема такого генератора выглядит так:

Немного теории

Теория гласит, что частота такого генератора равна f = 1/T = 1/(0.8*R*C). Для получения требуемой частоты требуется выбрать номинал одного из элементов, задающих частоту. Так как логический элемент выполнен по технологии КМОП, то имеет большое входное сопротивление, поэтому можно применять элементы задающие небольшие рабочие токи. Выберем емкость С1 из ряда распространенных номиналов, например 0.47 мкФ. Тогда для получения требуемой частоты (50Гц) резистор должен быть приблизительно 53 кОм, но такого резистора в стандартном ряду нет, поэтому выберем 51 кОм.


На выходе такого генератора формируется сигнал близкий к меандру, поэтому нам необходимо скорректировать схему таким образом, чтобы она удовлетворяла требованиям задания. Для получения регулируемой длительности импульса на выходе необходимо изменить режим перезарядки конденсатора от высокого уровня на выходе, а именно, сократить время перезарядки. Для этого добавим в схему еще два элемента: диод и переменный резистор. Подойдет любой маломощный импульсный диод.

Тогда схема примет следующий вид:


Казалось бы: все, задача решена, но в крайних положениях переменного резистора поведение сервопривода нестабильно. Это связано с тем, что значение длительности импульсов, в крайних положениях переменного резистора, не соответствует требуемым. Лично мне также не по душе применение переменного резистора, поэтому я хочу изменить интерфейс управления, добавив новую “хотелку” в техническое задание, например чтобы скважность менялась в зависимости от освещенности. Для этого есть простое и недорогое решение: применить в качестве регулирующего элемента фоторезистор GL55xx (используют в проектах Arduino), изменение сопротивления которого лежит в широком диапазоне.

Далее начинается самое интересное. Расчетных формул для получения значений сопротивлений обеспечивающих требуемые длительности импульсов нет, поэтому на уровне интуиции (опытным путем, с помощью переменного резистора) определяем значения сопротивления, при которых устанавливаются требуемые значения длительностей импульсов. Затем изменяем схему так, чтобы при изменении сопротивления фоторезистора общее сопротивление изменялось, устанавливая требуемые значения длительностей импульсов.

Итоговая схема принимает следующий вид:

Пояснения к итоговой схеме

Конденсатор С1 номиналом 0.47 мкФ, определяет время перезаряда. Резистор R1 номиналом 51 кОм задает основную частоту повторения импульсов в районе 50 Гц. Комбинация резисторов R2-R4 в сумме будет изменяться в диапазоне от 2.5 кОм до 24 кОм в зависимости от освещенности. Вместе с диодом D1 эти резисторы будут влиять на время перезаряда конденсатора С1 при действии положительного импульса на выходе логического элемента, тем самым определять его длительность.

Результат

Подключив данный генератор к входу управления сервопривода получим возможность управлять им, изменяя освещенность фоторезистора. На видео можно посмотреть, что из этого получилось:

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

Обычно сервоприводы не расчитаны на полный оборот, вал может поворачиваться на ограниченный угол (чащевсего 180 градусов). Этого вполне достаточно, чтобы управлять рулевыми колесами или магипулятором. Поэтому и примеяют сервоприводы чаще всего для шарниров. Основным показателем мощности сервопривода является крутящий момент, обычно выражается в кг⋅см. Для длинных манипуляторов, которые должны подымать приличный вес, уже потребуются сервоприводы с крутящим моментом 30-40 кг⋅см и больше. Если же мы хотим с помощью нашего сервопривода совершать не очень тяжелую работу, то вполне достаточно самых простейших, на 1,8 или 3,2 кг⋅см.

Вообще, крутящий момент выражается в Н⋅м. Но для большей простоты вычислений его часто приводят к в кг⋅см (1 кг⋅см ~ 0.01 кг⋅м ~ 0.098 Н⋅м) Это усилие, которое может обеспечить сервопривод на определенном расстоянии от оси вращения. Т.е, например сервопривод с моментом 4 кг⋅см может поднять груз в 4 кг, в 1см от оси, или 400 грамм, но уже на расстоянии 10 см от оси. Если мы хоти сделать манипулятор, то нужно прикинуть вес движущихся частей и подбирать соответствующие сервоприводы для каждого сустава.

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

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

Запитываем сервопривод от пина “5V” (красный провод), землю подключаем к пину “Gnd” (черный провод). Управление (белый провод) можно подключить к любому из свободных выходов, например к пину номер 2 (выходов контроллера 0 и 1 используются для связи по последовательному интерфейсу, поэтому использовать их не рекомендуется)

Для управления сервоприводом используется стандартынй класс Servo . Нам требуется процедура attach() , которая служит для инициализации сервопривода и write() , для управления его движением:

#include // Подключаем библиотеку для работы с сервоприводом

servo1.write(90); // Даем команду сервоприводу принять положение в 90 градусов,которое соответствует среднему положению

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

Servo servo1; // Создаем один объект типа «сервопривод»

int angle = 0; // Переменная,в которой хранится положение сервопривода

servo1.attach(2); // Объясняем контроллеру, что управляющий провод сервопривода подключен к пину 2

Рассмотрим на этом занятии устройство и принцип работы сервоприводов. Разберем два простых скетча для управления сервоприводом с помощью потенциометра на Ардуино. Также мы узнаем новые команды в языке программирования C++ — servo.write , servo.read , servo.attach и научимся подключать в скетчах библиотеку для управления сервоприводами и другими устройствами через Ардуино.

Устройство сервомотора (servo)

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

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

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


Управление сервоприводом с помощью широтно импульсной модуляции

Как подключить сервопривод к Ардуино

Схема подключения сервопривода к Arduino обычно следующая: черный провод присоединяем к GND, красный провод присоединяем к 5V, оранжевый/желтый провод к аналоговому выводу с ШИМ (Широтно Импульсная Модуляция). Управление сервоприводом на Ардуино достаточно просто, но по углам поворота сервомоторы бывают на 180° и 360°, что следует учитывать в робототехнике.

Для занятия нам понадобятся следующие детали:

  • Плата Arduino Uno / Arduino Nano / Arduino Mega;
  • Макетная плата;
  • USB-кабель;
  • 1 сервопривод;
  • 1 потенциометр;
  • Провода «папа-папа» и «папа-мама».

В первом скетче мы рассмотрим как управлять сервоприводом на Arduino с помощью команды myservo.write(0) . Также мы будем использовать стандартную библиотеку Servo.h . Подключите сервомашинку к плате Ардуино, согласно схеме на фото выше и загрузите готовый скетч. В процедуре void loop() мы будем просто задавать для сервопривода необходимый угол поворота и время ожидания до следующего поворота.

Скетч для сервопривода на Ардуино

#include Servo servo1; // объявляем переменную servo типа "servo1" void setup () { servo1.attach (11); // привязываем сервопривод к аналоговому выходу 11 } void loop () { servo1.write (0); // ставим угол поворота под 0 delay (2000); // ждем 2 секунды servo1.write (90); // ставим угол поворота под 90 delay (2000); // ждем 2 секунды servo1.write (180); // ставим угол поворота под 180 delay (2000); // ждем 2 секунды }

Пояснения к коду:

  1. Стандартная библиотека Servo.h содержит набор дополнительных команд, которая позволяет значительно упростить скетч;
  2. Переменная Servo необходима, чтобы не запутаться при подключении нескольких сервоприводов к Ардуино. Мы назначаем каждому приводу свое имя;
  3. Команда servo1.attach(10) привязывает привод к аналоговому выходу 10.
  4. В программе мы вращаем привод на 0-90-180 градусов и возвращаем в начальное положение, поскольку процедура void loop повторяется циклично.

Управление сервоприводом потенциометром


Подключение сервопривода и потенциометра к Ардуино Уно

Ардуино позволяет не только управлять, но и считывать показания с сервопривода. Команда myservo.read(0) считывает текущий угол поворота вала сервопривода и его мы можем увидеть на мониторе порта. Предоставим более сложный пример управления сервоприводом потенциометром на Ардуино. Соберите схему с потенциометром и загрузите скетч управления сервоприводом.

Скетч для сервопривода с потенциометром

#include // подключаем библиотеку для работы с сервоприводом Servo servo; // объявляем переменную servo типа "servo" void setup () { servo.attach (10); // привязываем сервопривод к аналоговому выходу 10 pinMode (A0, INPUT); // к аналоговому входу A0 подключим потенциометр Serial .begin (9600); // подключаем монитор порта } void loop () { servo.write (analogRead (A0)/4); // передает значения для вала сервопривода Serial .println (analogRead (A0)); // выводим показания потенциометра на монитор Serial .println (analogRead (A0)/4); // выводим сигнал, подаваемый на сервопривод Serial .println (); // выводим пустую строчку на монитор порта delay (1000); // задержка в одну секунду }

Пояснения к коду:

  1. В этот раз мы присвоили имя для сервопривода в скетче, как servo ;
  2. Команда servo.write(analogRead(A0)/4) передает значения для вала сервопривода — получаемое напряжение с потенциометра мы делим на четыре и оправляем данное значение на сервопривод.
  3. Команда Serial.println (servo.read(10)) считывает значение угла поворота вала сервопривода и передает его на монитор порта.

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

Также часто читают:

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

Многие сервоприводы могут быть подключены к Arduino напрямую. Для этого от них идет шлейф из трех проводов:

красный – питание подключается к контакту 5V или непосредственно к источнику питания
коричневый или черный земля (GND контакт Arduino)
желтый или белый сигнал; подключается к цифровому выходу Arduino.

Можно генерировать управляющие импульсы самостоятельно, но это настолько распространенная задача, что для ее упрощения существует стандартная библиотека Servo ( ).
Детальнее о библиотеке
Сама библиотека также

Ограничения по питанию

Обычный хобби-сервопривод при работе потребляет более 100 мА. При этом Arduino способно выдавать до 500 мА. Поэтому, если вам в проекте необходимо использовать несколько сервоприводов, есть смысл задуматься о выделении сервоприводов в контур с дополнительным питанием.

Ограничения по количеству подключенных сервоприводов

На большинстве плат Arduino библиотека Servo поддерживает управление не более 12 сервоприводами, на Arduino Mega это число возрастает до значения 48. При этом есть небольшой побочный эффект использования этой библиотеки: если вы работаете не с Arduino Mega, то становится невозможным использовать функцию analogWrite () на 9 і 10 контактах независимо от того, подключены сервоприводы к этим контактам или нет. На Arduino Mega можно подключить до 12 сервоприводов без нарушения функционирования ШИМ/PWM, при использовании большего количества сервоприводов мы не сможем использовать analogWrite () на 11 и 12 контактах.

Функции библиотеки Servo

Библиотека Servo позволяет осуществлять программное управление сервоприводами. Для этого создается обьект servo класса Servo. Управление осуществляется следующими функциями:

attach () – закрепляет привод с конкретным пином. Возможны два варианта синтаксиса для этой функции: servo.attach (pin) і servo.attach (pin, min, max) . При этом pin – номер пина, к которому присоединяют сервопривод, min и max – длины импульсов в микросекундах, отвечающие за углы поворота 0 ° и 180 °. По умолчанию выставляются равными 544 мкс и 2400 мкс соответственно.
write () – отдает команду сервоприводу принять некоторое значение параметра. Синтаксис следующий: servo.write (angle) , где angle – угол, на который должен обернуться сервопривод.
writeMicroseconds () – отдает команду отправить на сервопривод импульс определенной длины, является низкоуровневым аналогом предыдущей команды. Синтаксис следующий: servo.writeMicroseconds (uS) , где uS – длина импульса в микросекундах.
read () – читает текущее значение угла, в котором находится сервопривод. Синтаксис следующий: servo.read () , возвращается целое значение от 0 до 180.
attached () – проверка, был присоединен объект к конкретному пину. Синтаксис следующий:servo.attached () , логическая единица возвращается, если объект был присоединен к какому-либо пену, или ноль в противном случае.
detach () – выполняет действие, обратное действию attach () , т.е. отсоединяет объект от пина, к которому он был приписан. Синтаксис следующий: servo.detach () .

Для управления изменением положения сервопривода можно использовать потенциометр. Он имеет три контакта подключаемые следующим образом:
Два крайних контакты (как правило) это питание и земля, а средний – информационный. Подсоединяем питания потенциометра –> 5 V Arduino, земля –> GND Arduino, информационный –> аналоговый пин Arduino.
Вот так может выглядеть схема:

А так примитивная программа:

#include Servo myservo; // create servo object to control a servo int potpin = 0; // analog pin used to connect the potentiometer int val; // variable to read the value from the analog pin void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180) myservo.write(val); // sets the servo position according to the scaled value delay(15); // waits for the servo to get there }

#include

Servo myservo ; // create servo object to control a servo

int potpin = 0 ; // analog pin used to connect the potentiometer

int val ; // variable to read the value from the analog pin