Сервоприводы SG90, MG995: различия между версиями
м (Artem Bakulin, KT-32 переименовал страницу Сервоприводы SG90, MG995, MG996 в Сервоприводы SG90, MG995) |
Нет описания правки |
||
Строка 149: | Строка 149: | ||
<code>}</code> | <code>}</code> | ||
Версия от 08:08, 21 июня 2021
Сервопривод – это привод, предназначенный для осуществления контроля (угол поворота вала, скорость вращения/движения и т.д.) над различными объектами, находящимися в постоянном движении. Контроль производится в зависимости от заданных ему параметров извне.
Принцип работы
Принцип работы сервоприводов сводится к использованию импульсного сигнала, который изменяется по трем параметрам – частоте повторения, минимальной и максимальной продолжительности. Именно длительность импульса задает угол поворота мотора.
Сигналы, поступающие на сервопривод, имеют стандартную частоту, а их продолжительность может равняться от 0,8 до 2,2 мс (в зависимости от модели). Параллельно с получением управляющего импульса начинается работа генератора опорного импульса, который связан с датчиком обратной связи. Тот, в свою очередь, механически соединен с выходным валом и отвечает за изменение его положения.
Электронный блок анализирует импульсы по длительности и на основе полученных величин определяет разницу между заданным извне положением вала и реальным (измеренным датчиком). С учетом этого происходит корректировка работы путем подачи напряжения на питание двигателя.
Сервопривод SG90
Сервопривод SG90 используется в основном для управления небольшими легкими механизмами, угол поворота которых ограничен диапазоном от 0 до 180 градусов.
Технические характеристики
Рабочее напряжение | 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°. При работе устройства важно следить за напряжением питания. При сильном завышении этого показателя могут повредиться механические элементы зубчатых механизмов.
Схема соединения
Так как из комплектующих у нас только серво и плата, то подключаем их согласно схеме:
Код проекта
Код, который нужно загрузить в нашу Ардуину вы можете скопировать ниже.
#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 обладают хорошим крутящим моментом до 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.
Подключение к плате 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 мс, пока серва выйдет в заданное положение
}
}