Как подключить моторчик mg996r

от admin

Сервоприводы: руководство по использованию для Arduino

Сервопривод — это электродвигатель с редуктором и блоком управления в одном корпусе.

Servo Guide Arduino Info 1

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

Servo Guide Arduino Info 2

Элементы сервопривода

Рассмотрим основные элементы сервопривода.

Servo Guide Arduino Annotation

Электромотор

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

  • Коллекторный мотор с сердечником (Brush motor)
  • Коллекторный мотор без сердечника (Coreless motor)
  • Бесколлекторный мотор (Brushless motor)

Редуктор

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

Шестерни редуктора могут быть пластиковые или металлические.

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

Выходной вал

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

Схема управления

Для обработки входного сигнала с внешнего контроллера в сервоприводе расположена схема управления.

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

Схема управления может быть аналоговой или цифровой.

В аналоговом сервоприводе входные данные c внешнего контроллера анализируются логической микросхемой. Аналоговый чип принимает внешние импульсы с частотой 50 Гц, а значит время реакции мотора составляет около 20 мс.

В цифровом сервоприводе входные данные анализируются собственным микроконтроллером. Контроллер принимает внешние импульсы с частотой 50 Гц, но позволяет увеличить внутреннюю частоту сигнала с 50 Гц до 500 Гц. В итоге время реакции мотора может сократится до 2 мс.

Характеристики сервопривода

Рассмотрим основные характеристики сервопривода.

Крутящий момент

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

Крутящий момент высчитывается путём произведения максимального веса груза на длину рычага, который способен удержать сервопривод. При увеличении длины рычага, пропорционально уменьшается максимальный вес груза и наоборот. Например, если крутящий момент равен 10 кг·см:

  • Сервопривод удержит груз 10 кг на рычаге длиной 1 см.
  • Сервопривод удержит груз 5 кг на рычаге длиной 2 см.
  • Сервопривод удержит груз 1 кг на рычаге длиной 10 см.

Скорость поворота

Скорость поворота — это время, за которое выходной вал сервопривода успевает повернуться на 60°. Из неё можно вычислить скорость в оборотах в минуту для сервопривода постоянного вращения.

Размеры

Servo Guide Arduino Info 4

Питание сервопривода

Напряжение к серве можно подключать двумя способами: без внешнего источника питания и с внешним источником питания.

Без внешнего источника питания

Если сервопривод питается напряжением 5 вольт и потребляет ток менее 500 мА, можно запитать сервомотор непосредственно от контроллера.

Цвет провода Контакт Функция Подключение
Оранжевый / Жёлтый / Белый S Пин управления сервоприводом Подключите к пину ввода-вывода микроконтроллера.
Красный V Питание Подключите к питанию микроконтроллера.
Коричневый / Чёрный G Земля Подключите к земле микроконтроллера.

Servo Guide Arduino Wiring Power 1

С внешним источником питания

Если сервопривод питается напряжением свыше 5 вольт или потребляет ток более 500 мА, то ему необходим внешний источник питания с соответствующими характеристиками.

Цвет провода Контакт Функция Подключение
Оранжевый / Жёлтый / Белый S Пин управления сервоприводом Подключите к пину ввода-вывода микроконтроллера.
Красный V Питание Подключите к внешнему источнику питания с подходящим напряжением.
Коричневый / Чёрный G Земля Подключите к земле внешнего источника питания и земле микроконтроллера.

Servo Guide Arduino Wiring Power 2

Сервоприводы с удержанием угла

Сервоприводы с удержанием угла — это моторы, которые преобразуют управляющие сигналы в установку и удержание заданного угла.

Интерфейс управления

Для управления мотором с удержанием угла необходимо подавать сигнал PDM (Pulse Duration Modulation) — импульсы постоянной частоты и переменной ширины. При поступлении с внешнего контроллера управляющего импульса, начинка сервопривода генерирует свой сигнал, длительность которого определяется датчиком обратной связи. Далее схема сравнивает длительность двух импульсов:

  • Если длительность разная → электромотор включается. Направление вала зависит от знака разности импульсов.
  • Если длины импульсов равны → электромотор останавливается.

В сигнале PDM частота импульсов постоянна и равна 50 Гц, т.е. период подачи импульсов равен 20 мс. А вот ширина импульса изменяется, и именно от неё зависит выходной угол удержания мотора. Принято считать, что диапазону выходного угла 0–180° соответствует ширина импульса 500–2500 мкс.

Период импульсов Ширина импульса Положение сервопривода
20 мс 544 мск Выходной вал установлен в максимальное положение по часовой стрелке CW — 0°.
20 мс 1540 мкс Выходной вал установлен в условную середину относительно крайних максимальных точек CW и CWW — 90°.
20 мс 2400 мкс Выходной вал установлен в максимальное положение против часовой стрелке CCW — 180°.

Примеры работы

Сервоприводы постоянного вращения

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

Интерфейс управления

Для управления мотором постоянного вращения необходимо подавать особый сигнал PDM (Pulse Duration Modulation) — импульсы постоянной частоты и переменной ширины. При поступлении с внешнего контроллера управляющего импульса начинка сервопривода генерирует свой сигнал мотору.

В сигнале PDM частота импульсов постоянна и равна 50 Гц, т. е. период подачи импульсов равен 20 мс. А вот ширина импульса изменяется, и именно от неё зависит направление и скорость вращения мотора. Принято считать, что рабочая ширина импульса лежит в пределах 544–2400 мкс.

Сервопривод Ардуино подключение, управление

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

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

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

Что такое сервопривод. Схема устройства сервопривода

Что такое сервопривод. Схема устройства сервопривода

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

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

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

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

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

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • сервопривод SG90, MG995, MG996;
  • потенциометр (переменный резистор);
  • макетная плата;
  • провода «папа-папа» и «папа-мама».

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

Схема подключения сервопривода к АрдуиноСхема подключения сервопривода к Ардуино UNO

Servo Arduino Uno Arduino Nano Arduino Mega
черный провод GND GND GND
красный провод 5V 5V 5V
желтый провод 11 11 11

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

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

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

Плавное вращение сервомотора от Ардуино

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

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

Управление скоростью вращения сервомотора Ардуино сделать довольно просто, если вы знакомы с циклами for или while в языке программирования Arduino. Рассмотрим, как сделать плавные повороты серво от 0 до 90 градусов, используя циклы. Представленные на этой странице примеры программ позволят вам использовать сервоприводы в различных проектах, где требуется плавный поворот.

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

Пояснения к коду:
  1. максимальный угол для плавного поворота микросерво — 180 градусов;
  2. увеличивая задержку delay(20); , можно замедлить скорость поворота.

Также вам будет полезны следующие статьи:

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

Arduino Tutorial: MG 996R Servo Motor

A servo motor allows to precisely control a shaft to a specific rotary position. The MG 996R is one of the most popular servo motors within the maker community. This tutorial shows how to wire the MG 996R servo to an Arduino. Moreover, this tutorials includes a simple code example that let’s the motor rotate to various rotary positions.

Related products

  • MG 996R servo motor [Search on Aliexpress | Amazon | eBay.com]
  • Arduino Uno [Search on Aliexpress | Amazon | eBay.com]
  • Jumper Wires [Search on Aliexpress | Amazon | eBay.com]
  • USB power bank [Search on Aliexpress | Amazon | eBay.com]
  • USB terminal adapter [Search on Aliexpress | Amazon | eBay.com]

MG 996R Servo Motor

The MG 996R is a popular servo motor within the Arduino Community. In contrast to the likewise popular SG90 servo, the MG 996R is able to rotate much higher weights. For example, you can see the MG 996R very frequently in 3D-printed robotic arm applications.

Technical specification

Name Value
Dimensions ca. 40.7 x 19.7 x 42.9 mm
Weight ca. 55g
Operating voltage 4.8 V – 6.6 V
Operating current ca. 600 – 1500mA
Stall torque 9.4 kg/cm (4.8V); 11 kg/cm (6V)
Operating speed 0.19 s/60º (4.8 V), 0.15 s/60º (6 V)
Angle 0-180°

Technical specification of MG 996R. Caution: There are different manufacturers, values might vary.

Example application

The example application is kept very simple. The motor rotates to four different positions with a delay of one second in between. If the motor has completed the last position, the sequence starts again.

Wiring

The motor has three wires: Brown (GND), Red (+5V) and Orange (PWM signal). Unfortunately, the motor can’t be directly powered from the Arduino. The motor will likely draw to much current from the Arduino. As a consequence, the Arduino might get damaged. In order to overcome this problem, I wired the motor to an external power supply.

In particular, I took a 5V USB power supply (power bank) to power the motor. For the wiring, I made use of a USB terminal adapter. The “-” signal from the USB terminal adapter is wired to the brown input of the servo motor. Accordingly, the “+” signal is wired to the servo’s red input. In order to guarantee the same signal level, the terminal adapter’s “-” signal is wired to one of the Arduino’s GND pins. Luckily, it is easily possible to connect two male jumper wires to a single terminal block of the adapter.

Next, Arduino’s pin #3 is wired to the orange input of the servo motor.

MG 996R wire color Description Connected to
Brown GND USB Power Bank “-” and Arduino GND
Red +5V (Powering the motor directly from the Arduino, might damage the Arduino) USB Power Bank “+”
Orange PWM signal Arduino Pin #3

Example source code

I made use of the servo library to control the MG 996R motor. In the setup function, pin number 3 is made known to the servo object.

In the loop function, the motor is rotated to four different positions by the write method.

If everything has been correctly executed, the motor should start moving.

Подключение сервопривода к Ардуино: как управлять без микроконтроллера

Сервопривод — это тип привода, который может точно управлять параметрами движения. Другими словами, это двигатель, который может вращать свой вал на определенный угол или поддерживать непрерывное вращение с точным периодом.

Сервопривод MG995

Схема сервопривода основана на использовании обратной связи (замкнутый контур, в котором входные и выходные сигналы не согласованы). В качестве сервопривода может выступать любой тип механического привода, который включает в себя датчик и блок управления, который автоматически поддерживает все параметры, установленные на датчике. Конструкция сервопривода состоит из двигателя, датчика положения и системы управления. Основная задача таких устройств — реализация в области сервомеханизмов. Сервоприводы также часто используются в таких областях, как погрузочно-разгрузочные работы, производство транспортного оборудования, деревообработка, производство листового металла, производство строительных материалов и др.

В проектах робототехники Arduino сервопривод часто используется для простейших механических действий:

  • Поверните дальномер или другие датчики на определенный угол, чтобы измерить расстояние в узком поле зрения робота.
  • Сделайте небольшой шаг ногой, пошевелите конечностью или головой.
  • Создавать роботов-манипуляторов.
  • Реализовать рулевой механизм.
  • Откройте или закройте дверь, дверь или другой объект.

Конечно, сфера применения сервопривода в реальных проектах намного шире, но приведенные примеры являются наиболее популярными схемами.

Схема и типы сервоприводов

Сервосистема

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

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

Сервопривод

Вся схема сервоуправления расположена внутри корпуса, управляющие сигналы и питание подаются, как правило, по трем проводам: заземление, напряжение питания и управляющий сигнал.

Сервопривод непрерывного вращения 360, 180 и 270 градусов

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

Материалы шестерней сервопривода

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

Сервоприводы Arduino SG90, MG995, MG996: схема подключения и управления

Сервоприводы Arduino SG90, MG995, MG996: схема подключения и управления

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

Сервопривод MG995

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

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

Преимущества серводвигателей

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

Отличия серво и обычного двигателя

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

Отличия серво и шагового мотора

шаговый двигатель

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

Сравнение с шаговым двигателем

Другой вариант точного позиционирования ведомых элементов без датчика обратной связи — использование шагового двигателя. В этом случае схема управления отсчитывает необходимое количество импульсов (шагов) от исходного положения (эта характеристика обусловлена ​​характерным шумом шагового двигателя в 3,5-дюймовых приводах и CD / DVD при повторной попытке его чтения). В этом случае точное позиционирование обеспечивается параметрическими системами с отрицательной обратной связью, которые образуются взаимодействием соответствующих полюсов статора и ротора шагового двигателя.Опорный сигнал для соответствующей параметрической системы генерируется системой управления шаговым двигателем система, которая активирует соответствующий полюс статора.

Поскольку датчик обычно управляет ведомым элементом, электрический сервопривод имеет следующие преимущества перед шаговым двигателем

  • не предъявляет особых требований к электродвигателю и коробке передач — они могут быть практически любого желаемого типа и мощности (а шаговые двигатели, как правило, бывают маломощными и тихоходными);
  • гарантирует максимальную точность, автоматически компенсируя: механические (люфт в приводе) или электронные неисправности в приводе;
  • постепенный износ привода, при этом шаговый двигатель требует для этого периодической регулировки;
  • тепловое расширение накопителя (во время работы или сезонное), что стало одной из причин перехода на сервопривод для позиционирования головок в жестких дисках;
  • обеспечить немедленное обнаружение неисправности (выхода из строя) привода (механического или электронного);
  • максимально возможная скорость движения элемента (у шагового двигателя самая низкая максимальная скорость по сравнению с другими типами электродвигателей);
  • затраты энергии пропорциональны сопротивлению элемента (шаговый двигатель постоянно запитан номинальным напряжением с запасом на возможную перегрузку);

Недостатки по сравнению с шаговым двигателем

  • необходимость в дополнительном элементе — датчике;
  • блок управления и логика его работы более сложны (требуется обработка результатов датчиков и выбор управляющего воздействия, а в центре контроллера шагового двигателя находится только счетчик);
  • проблема фиксации: обычно она решается постоянным торможением подвижного элемента или вала электродвигателя (что приводит к потерям энергии) или использованием червячных / винтовых передач (конструктивное усложнение) (в шаговом двигателе каждый шаг задается сам мотор).
  • сервоприводы обычно дороже, чем шаговые.

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

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

Где купить популярные серво SG90, MG995, MG996

Более дешевый сервопривод SG90 1,6 кг Сервопривод SG90 и MG90S для Arduino по цене ниже 70 рублей />
Еще одна версия сервопривода SG90 Pro 9g от проверенного поставщика на Али Сервопривод SG90 от надежного поставщика RobotDyn
Серво-тестер Несколько вариантов тестеров сервоприводов
Защищенный сервопривод с крутящим моментом 15 кг JX DC5821LV 21KG Servo Водонепроницаемый Core Full Mental Gear 1/8 1/10 RC Car Scaler Buggy Crawler TRAXXAS RC4WD TRX-4 SCX10 D90
MG996R MG996 Servo Metal Gear Servo для Futaba JR Сервоприводы 13 кг 15 кг цифровые MG995 MG996 MG996R Servo Metal Gear

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

Сервоуправление

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

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

сервоуправление

Стандартная частота, с которой доставляются импульсы, составляет 50 Гц, то есть 1 импульс каждые 20 миллисекунд. При этих значениях продолжительность составляет 1520 микросекунд, а сервопривод находится в центральном положении. Изменение длительности импульса приводит к вращению сервопривода — при увеличении длительности вращение выполняется по часовой стрелке, при уменьшении — против часовой стрелки. Есть ограничения по длительности: в Arduino в библиотеке Servo для 0 ° значение импульса установлено на 544 мкс (нижний предел), для 180 ° — 2400 мкс (верхний предел).

Сервоприводы Arduino SG90, MG995, MG996: схема подключения и управления

(Изображение использовано сайтом amperka.ru)

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

Метод управления приводом часто ошибочно называют ШИМ / ШИМ, но это не совсем правильно. Контроль напрямую зависит от длительности импульсов, частота их появления не так уж и важна. Правильная работа будет обеспечена как на 40 Гц, так и на 60 Гц, только резкое уменьшение или увеличение частоты будет способствовать. В случае резкого падения сервопривод начнет работать рывками; если частота завышена выше 100 Гц, устройство может перегреться. Поэтому правильнее называть его PDM.

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

Сервоприводы Arduino SG90, MG995, MG996: схема подключения и управления

Получив сигнал, аналоговый сервопривод решает, менять положение или нет, и, при необходимости, посылает на двигатель сигнал с частотой 50 Гц.В течение времени реакции (20 мс) могут возникать внешние воздействия, которые будут измените положение сервопривода и устройство не успеет среагировать. Цифровой сервопривод использует процессор, который подает и обрабатывает сигналы с более высокой частотой — от 200 Гц, чтобы он мог быстрее реагировать на внешние воздействия, быстрее развивать требуемую скорость и крутящий момент. В результате цифровой сервопривод лучше удерживает заданное положение. Однако цифровой сервопривод требует большей мощности для работы, что увеличивает стоимость. Сложность их изготовления также сильно влияет на цену. Единственным недостатком цифровых сервоприводов является высокая стоимость, технически они намного лучше аналоговых устройств.

Демонстрационнаяпрограмма приведена ниже, показано, как использовать сервомоторов смикроконтроллером AVR. Работы программы очень проста, она начинается синициализации таймера и PWM.В начале фиксируеться сервопривод на 0 градусов, азатем перемещается на 90 градусов и подождатв некоторое время перемещается на135 градусов, и наконец, на 180градусов. Этот процесс повторяется до тех пор, пока привод подключен к питанию.

Параметры для корректного функционирования программы.

  • Предохранитель LOW = 0xFF и предохранитель HIGH = 0xC9
  • Частота = 16 МГц.
  • Серводвигатель Futaba S3003 .
  • MCU — это однокристальный микроконтроллер AtMega32 или ATmega16.

Сервопривод постоянного вращения

Сервоприводы обычно имеют ограниченный угол поворота 180 градусов, что они называют «сервоприводом на 180 градусов°».

Но есть сервоприводы с неограниченным углом поворота оси. Это сервоприводы постоянного вращения или «сервоприводы на 360 градусов°».

Функция Arduino: сервопривод 180 °, сервопривод 360°

Серво. Запись (0) Крайняя левая позиция Полный ход в одном направлении
Сервопривод. Запись (90) Центральное положение Остановить сервопривод
Серво. Запись (180) Крайняя правая позиция Полный ход в обратном направлении

Для иллюстрации работы с постоянно вращающимися сервоприводами мы собрали двух мобильных роботов: на Arduino Uno и Iskra JS. Инструкции по сборке и примеры эскизов см. В статье Сборка ИК-бота.

Области использования устройства

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

Чтобы понять, что такое сервопривод, вы должны знать диапазон действия устройства.

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

Наибольшее распространение устройства получили в следующих областях:

  • производство бумаги и упаковки;
  • производство листового металла;
  • погрузочно-разгрузочные работы;
  • производство транспортных средств;
  • деревообрабатывающая промышленность;
  • производство строительных материалов.

Дополнительные примеры скетчей

Следующий код позволяет вам управлять серводвигателем на контакте 2 с помощью потенциометра на аналоговом 0.

Следующий код представляет собой вывод пинг / понга на выводе A0 с регулируемой скоростью.

Подключение серводвигателя к ардуино

Сервопривод имеет три контакта, которые имеют разную окраску. Коричневый провод ведет к массе, красный провод к источнику питания + 5В, оранжевый или желтый провод — сигнальный. Устройство подключается к Arduino через макетную плату, как показано на рисунке. Оранжевый (сигнальный) провод подключается к цифровому, черному и красному контактам, соответственно, к заземлению и питанию. Для управления серводвигателем нет необходимости подключаться к выводам ШИМ: принцип работы сервомотора мы уже описали ранее.

Подключение сервопривода к ардуино

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

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

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

Алгоритм работы прост:

  • Во-первых, давайте включим Servo.h
  • Создайте объект класса Servo
  • В блоке конфигурации укажите, к какому выводу подключен сервопривод
  • Мы используем методы объекта обычным для C ++ способом. Самым популярным является метод записи, в который мы вводим целочисленное значение в градусах (для сервопривода 360 эти значения будут интерпретироваться по-разному).

Пример простого скетча для работы с сервоприводом

Пример проекта, в котором мы сначала сразу устанавливаем серводвигатель на нулевой угол, а затем поворачиваем его на 90 градусов.

Скетч для двух сервпоприводов

И в этом примере мы работаем с двумя слугами одновременно:

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

В этом примере мы поворачиваем сервопривод в соответствии со значением, полученным от потенциометра. Мы читаем значение и преобразуем его в угол с помощью функции карты:

ДОКУМЕНТАЦИЯ

Документация

Эта библиотека является «надстройкой» к стандартной библиотеке Servo.h и позволяет плавно управлять сервоприводом. Суть работы заключается в методе tick (), который должен вызываться постоянно в цикле (или прерывании по таймеру); внутри галочки есть алгоритм со своим таймером, который немного поворачивает сервопривод в нужное положение. Библиотека дублирует несколько методов из Servo.h (прикрепление имеет расширенную инициализацию):

  • write () и writeMicroseconds () — вращали вал сервопривода на максимальную скорость
  • attach () и detach () — подключает и отключает сервопривод от управления

Инициализация

Объект создается как в Servo.h, без параметров. Также можно передать рабочий угол сервопривода (в противном случае он будет равен стандартным 180 градусам.)

Есть несколько вариантов инициализации присоединения:

  • прикрепить (булавка); — подключит сервопривод к указанному штифту, угол поворота будет установлен в градусах. Длительность импульса * мин-макс будет стандартной, 500-2400 мкс
  • атака (опорная, цель); — подключит сервопривод к указанному выводу, угол поворота ** будет установлен на целевые градусы. Длительность импульса * мин-макс будет стандартной, 500-2400 мкс
  • подключить (пин, мин, макс); — подключит сервопривод к указанному штифту, угол поворота будет установлен в градусах. Длина импульса * будет установлена ​​на минимальную и максимальную соответственно.
  • прикрепить (пин, минимум, максимум, цель); — подключит сервопривод к указанному выводу, угол поворота будет установлен на целевые градусы. Длина импульса * будет установлена ​​на минимальную и максимальную соответственно.

* Длина импульса: сервопривод управляется сигналом PWM, где длина импульса напрямую управляет углом поворота, то есть, обеспечивая минимальную и максимальную длину, мы получаем рабочий угол 180 градусов. По умолчанию установлены минимальная и максимальная длина, длина установлена ​​на 500 и 2400 соответственно, что подходит для большинства сервоприводов, но рекомендуется проверить и «откалибровать» устройство так, чтобы он работал при 180 градусах, минимальное и максимальное время импульса отличается от производителя сервопривода и модель.

** Указание угла поворота во время инициализации устанавливает сервопривод на желаемый угол сразу после сигнала, а также устанавливает текущее положение и целевое положение, равные этому.

Плавный пуск (new!)

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

  • Заранее знайте, на какой угол физически поворачивается привод при запуске, и передайте его для его подключения (штифт, цель). Как узнать? Это зависит от конкретной задачи и логики работы программы. Вы можете сохранить положение сервопривода в EEPROM и восстановить его при запуске, вы можете установить сервопривод на тот же угол перед выключением / перезапуском системы и т.д.
  • Воспользуйтесь функцией smoothStart (), появившейся в версии 3.2 этой библиотеки. Работает он очень просто: подключаете и отключаете сервопривод с периодом в пару десятков миллисекунд, после чего привод плавно перемещается на определенный угол из любого исходного положения. Вам нужно вызвать smoothStart () один раз (при запуске программы) сразу после подключения (pin, target) в блоке setup (). Внимание! Функция блокирующая, выполнение занимает 900 миллисекунд. Период рывка сервопривода установлен на минимум, при котором сервопривод начинает понимать, чего он от него хочет. Период довольно большой, поэтому движение в заданную позицию происходит рывками, но в целом оно намного плавнее, чем без smoothStart (). В массивном механизме рывки практически незаметны!

Управление

Движение сервопривода происходит автоматически в методе tick (), нам просто нужно вызывать его как можно чаще в loop () (tick () имеет встроенный таймер на 20 мс). Существует также метод tickManual (), который переводит сервопривод на следующий «шаг» каждый раз, когда он вызывается (тот же tick (), но не имеет собственного таймера). Оба метода tick () возвращают false, когда сервопривод движется, и true, когда сервопривод достигает заданного угла, это можно использовать. Кроме того, сервопривод автоматически отключается от управления при достижении заданного угла поворота (это снижает шум сервопривода на холостом ходу). Эту функцию можно отключить, вызвав setAutoDetach (false). Инструменты для управления движением привода:

    setTarget (длина); — задает целевое положение сервопривода в значении длительности импульса, мкс (
  • setTargetDeg (угол); — установить целевое положение сервопривода в градусах (0-180)
  • setSpeed ​​(скорость); — установка максимальной скорости (больше нуля) в градусах в секунду
  • setAccel (ускорение); — настройка ускорения (числа с плавающей запятой 0,01 — 1,0). Можно больше 1, будет еще резче. Если вы установите ускорение на 0, оно будет отключено, и сервопривод будет двигаться по профилю постоянной скорости (с бесконечным ускорением)
    • Если передавать ускорение в целые числа (из версии библиотеки 3.7) — ускорение будет задано в градусах / сек / сек. Рабочий диапазон ускорений от 1 до 1500, чем больше — резче. Если установлено значение 0, ускорение будет отключено.

    Полезные методы поддержки в различных ситуациях:

    • setDirection (например); — принимает NORMAL (ложь) или REVERSE (true), изменяет направление сервопривода
    • setCurrent (длина); — установка текущей позиции в мкс (500 — 2400). Это может быть полезно в ситуации, когда мы знаем фактический угол сервопривода и хотим сообщить программе, чтобы алгоритм не изменил привод.
    • setCurrentDeg (угол); — установка текущего положения в градусах (0-180). Это зависит от мин. И макс.
    • getCurrent (); — получить текущую позицию в мкс (500 — 2400)
    • getCurrentDeg (); — получить текущую позицию в градусах (0-180). Зависит от мин. И макс
    • getTarget (); — получить целевую позицию в мкс (500 — 2400)
    • getTargetDeg (); — получить целевую позицию в градусах (0-180). Зависит от мин. И макс
    • setMaxAngle (); — установка максимального угла сервопривода, по умолчанию 180. Позволяет комфортно работать с различными сервоприводами (270 и 360 градусов).

    Расширитель серво PCA9685

    В версии библиотеки 3 и выше добавлена ​​поддержка драйвера PCA9685, вам необходимо включить файл #include «ServoDriverSmooth.h»

    • ServoDriverSmooth servo; // по умолчанию (адрес 0x40, угол 180)
    • Сервопривод ServoDriverSmooth (0x40); // указываем адрес драйвера
    • Сервопривод ServoDriverSmooth (0x40, 270); // с указанием адреса и максимального угла

    Метод подключения (контактный) принимает номер контакта на драйвере. В остальном все работает точно так же, как с обычным сервоприводом.

    Библиотека Servo

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

    Сервоприводом постоянного вращения можно управлять с помощью библиотек Servo или Servo2. Разница в том, что функция Servo.write (angle) устанавливает не угол, а скорость вращения привода.

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

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

    В библиотеке серво для Arduino по умолчанию установлены следующие длительности импульса: 544 мкс для 0 ° и 2400 мкс для 180°.

    Пример подключения двух сервоприводов.

    Библиотека сервопривода несовместима с библиотекой VirtualWire для передатчика и приемника 433 МГц, поскольку они используют одно и то же прерывание. Это означает, что их нельзя использовать в одном проекте одновременно. Существует альтернативная библиотека для сервоуправления: Servo2. Все методы библиотеки Servo2 такие же, как и методы Servo.

    Функции работают по-разному при работе с сервоприводами на 360 градусов.

    Функция Arduino: сервопривод 180 °, сервопривод 360°

    Серво. Запись (0) Крайняя левая позиция Полный ход в одном направлении
    Сервопривод. Запись (90) Центральное положение Остановить сервопривод
    Серво. Запись (180) Крайняя правая позиция Полный ход в обратном направлении

    Сервопривод SG90

    Сервопривод SG90

    Характеристики и подключение SG-90

    Если вы хотите купить самый дешевый и простой сервопривод, лучшим вариантом будет SG 90. Этот сервопривод часто используется для управления небольшими и легкими машинами с углом поворота от 0 ° до 180°.

    SG90 Технические характеристики:

    • Скорость обработки команд 0,12 с / 60 градусов;
    • Питание 4,8 В;
    • Рабочие температуры от -30С до 60С;
    • Размеры 3,2 х 1,2 х 3 см;
    • Вес 9 гр.

    Описание SG90

    Цвета ниток стандартные. Сервопривод дешевый и не обеспечивает точной регулировки начального и конечного положений. Чтобы избежать ненужных перегрузок и характерных трещин в положении 0 и 180 градусов, лучше всего установить крайние точки на 10 ° и 170 °. При использовании устройства важно следить за напряжением питания. При резком завышении этого показателя возможно повреждение механических элементов зубчатых механизмов.

    Сервоприводы MG995 и MG996 tower pro

    Сервопривод MG995

    Сервомодель MG995 — вторая по популярности модель сервопривода, чаще всего связанная с проектами Arduino. Это относительно недорогие сервоприводы с гораздо большей производительностью, чем SG90.

    Характеристики MG995

    Выходной вал MG995 вращается на 120 градусов (60 в каждом направлении), хотя многие дилеры указывают на 180 градусов. Устройство выполнено в пластиковом корпусе.

    • Вес 55 г;
    • Пара 8,5 кг х см;
    • Скорость 0,2 с / 60 градусов (при 4,8 В);
    • Рабочее питание 4,8 — 7,2 В;
    • Рабочие температуры — от 0С до -55С.

    Описание MG995

    Подключение к Arduino также осуществляется по трем проводам. Как правило, для хобби-проектов разрешается подключать MG995 напрямую к Arduino, но ток двигателя всегда будет создавать опасную нагрузку для входов платы, поэтому по-прежнему рекомендуется подключать сервопривод отдельно, не забывая подключать заземление обе цепи питания. Еще один вариант, облегчающий жизнь, — это использование готовых сервоприводов и экранов, обзор которых мы подготовим в отдельной статье.

    MG996R по своим характеристикам похож на MG995, только выполнен в металлическом корпусе.

    Конструкция

    Устройство современных сервоприводов достаточно простое и в то же время эффективное, поскольку создает условия для точной настройки их работы. В рисунок входят:

    • привод. Это может быть электродвигатель с коробкой передач или пневмоцилиндр. Редуктор нужен для снижения скорости вращения мотора до тех значений, которые необходимы в работе. На выходной вал коробки передач прикладывается необходимая нагрузка: качалка, вращающийся вал, тяговые или толкающие устройства;
    • датчик обратной связи. Это датчик угла поворота выходного вала (энкодер) или потенциометр. Функция — преобразовать угол поворота в электрический сигнал;
    • блок питания и управления (сервоусилитель, преобразователь частоты, инвертор). Этот элемент принимает и анализирует управляющие импульсы, сравнивает их с показаниями датчиков и отвечает за запуск и остановку двигателя. В состав блока управления может входить преобразователь (управляющий сигнал или датчик действия).

    Принцип работы цифровой конструкции

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

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

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

    Из отчета Futaba следует, что за последнее десятилетие сервоприводы стали более производительными, чем раньше, так же как и небольшие размеры, высокие уровни скорости и крутильные элементы.

    Последний этап развития — появление цифрового устройства. Эти агрегаты также имеют значительные преимущества перед коллекторными двигателями. Однако есть и недостатки.

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

    совершенно неправильно говорить, что аналоговые и цифровые модификации принципиально отличаются в работе. У них могут быть одинаковые двигатели, механизмы и потенциометры

    Основное различие заключается в способе обработки входного сигнала приемника и управлении двигателем. Оба сервопривода получают одинаковый сигнал мощности от радиоприемника.

    Читать:
    Cpu burner что это

Похожие статьи