Сервоприводы SG90, MG995

Материал из MIK32 микроконтроллер

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

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

Принцип работы

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

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

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

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

Сервопривод SG90 используется в основном для управления небольшими легкими механизмами, угол поворота которых ограничен диапазоном от 0 до 180 градусов.

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


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

Рабочее напряжение 4.8В (5В)
Угол поворота 0...1805В°
Угловая скорость 1 сек/60°
Материал шестеренок пластмасса
Рекомендуемый драйвер
Размеры устройства 22мм x 11.5мм x 22.5мм
Вес 9 грамм
Температура использования от -0 до +55°С


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

Коричневый провод Земля (подключается к пину GND на плате Arduino)
Красный провод Питание +5 V (подключается к пину 5V на плате Arduino)
Желтый провод Сигнал управления (подключается к цифровому пину Arduino)

Описание SG90

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

Схема соединения

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

Подключение Сервопривода SG90

Код проекта

Код, который нужно загрузить в нашу Ардуину вы можете скопировать ниже.

#include 
int i = 0;
int j = 0;
int k = 0;
Servo servo_3;
void setup()
{
  servo_3.attach(3);
}

void loop()
{
  for (i = 0; i <= 120; i += 1) { servo_3.write(i); delay(50); // Wait for 50 millisecond(s) } for (k = 120; k >= 0; k -= 1) {
    servo_3.write(k);
    delay(50); // Wait for 50 millisecond(s)
  }
}

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

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

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

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

Выходной вал сервопривода поворачивается приблизительно на 120 градусов (60 градусов в каждом направлении). Для управления сервами MG995 можно использовать любые контроллеры с питанием логики 5 В, в том числе и Arduino.

Сервомашинка изготавливается в пластиковом корпусе. На выходе стоит редуктор с металлическими шестернями. В комплекте поставляются пластиковые качалки различных форм-факторов.

Технические характеристики MG995

  • Масса: 55 грамм;
  • Размеры: примерно 40.7 х 19.7 х 42.9;
  • Крутящий момент: 8.5 кг х см (при 4.8 В питания), 10 кг х см (при 6 В);
  • Скорость: 0.2 с/60º (при 4.8 В), 0.16 с/60º (при 6 В);
  • Рабочее питание: 4.8 - 7.2 В;
  • Ширина мертвой зоны: 5 мкс;
  • Диапазон рабочих температур: 0 ºC – 55 ºC.
Подключение Сервопривода MG995

Подключение к плате Arduino

Для подключения сервопривода используют 3 провода:

  • красный провод – питание (внешний стабилизированный источник питания 4.8-7.2 В);
  • черный провод –к выводу Arduino GND;
  • оранжевый – сигнальный (подключается к цифровому ШИМ выводу контроллера Arduino) (см. рис. 2).

Скетч для Arduino и MG995

Для первого (тестового) запуска MG995, можно воспользоваться примером Sweep. В скетче используется библиотека Servo library. Пояснения и сам скетч приведены ниже.

#include <Servo.h>

Servo myservo; // создаем объект servo для управления серводвигателем

// можно создать 12 объектов servo на большинстве плат Arduino

int pos = 0; // переменная для хранения текущего положения сервы

void setup() {

myservo.attach(9); // серва подключена к 9 пину

}

void loop() {

for (pos = 0; pos <= 180; pos += 1) { // вращаем ротор от 0 до 180 градусов

// с шагом в 1 градус

myservo.write(pos); // даем серве команду повернуться в положение, которое задается в переменной 'pos'

delay(15); // ждем 15 миллисекунд, пока ротор сервы выйдет в заданную позицию

}

for (pos = 180; pos >= 0; pos -= 1) { // вращение выходного вала от 180 градусов до 0 градусов

myservo.write(pos); // даем команду выйти в положение, которое записано в переменной 'pos'

delay(15); // ждем 15 мс, пока серва выйдет в заданное положение

}

}