Сервопривод – это устройство, которое обеспечивает преобразование сигнала в строго соответствующее этому сигналу перемещение (поворот) исполнительного устройства. Представляет собой прямоугольную коробку с мотором, схемой и редуктором внутри и выходным валом, который может поворачиваться на строго фиксированный угол, определяемый входным сигналом. Существует очень много видов сервоприводов, которые различаются габаритами, материалом шестеренок (пластмасса, металл), способом управления ( аналоговые и цифровые), скоростью вращения вала, крутящим моментом, диапазоном поворота (120°, 180°, непрерывного вращения). Сервоприводы MG995 обладают хорошим крутящим моментом до 13 кг/см, металлическими шестернями и поэтому часто используются в авиамоделизме, в робототехнике (например, поворот головы или руки робота).

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

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

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

  • Рабочее напряжение – 4.8-7.2 В
  • Угол поворота 120 градусов
  • Крутящий момент – 8,5 кг/см (при 4.8 В), 10 кг/см (при 6 В)
  • Скорость – 0,20 сек/60° (при 4,8 В), 0,16 сек/60° (при 6 В)
  • Материал шестерней – металл
  • Вес – 55 г
  • Размер – 40х20х42 мм

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

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

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

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

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

Для управления сервоприводами с помощью Arduino в Arduino  IDE есть стандартная библиотека Servo.h, которая включает в себя функции для установки настроек сервопривода, необходимого угла, считывания состояния.
Cкетч вращения сервопривода от 0 до 120° с шагом 1°, а затем в обратную сторону.

// подключение библиотеки Servo
#include <Servo.h>
// создать объект servo
Servo servo1;
// пин для подключения сервопривода
const int pin_servo=9;
// макс значение угла поворота
const int angle_max=120;
// для хранения текущей позиции сервопривода
int angle = 0;
// для хранения направления  1 или -1
dir=1;

void setup() {
   // подключить управление сервоприводом к пину pin_servo
   servo1.attach(pin_servo);
}

void loop() {
   for(;;)  {
      // команда установки положения сервопривода
      servo1.write(angle);
      // время на перемещение сервопривода
      delay(15);
      //
      if(angle==0)
         dir=1;
      else if(angle==angle_max)
         dir=-1;
      angle=angle+dir;
  }
}

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

Пример использования MG995

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

  • Плата Arduino Uno – 1 шт
  • Плата прототипирования – 1 шт
  • Сервопривод MG995 – 1 шт
  • Робоклешня – 1 шт
  • Потенциометр 10кОм
  • Блок питания 5В – 1 шт
  • Провода

Схема соединения элементов:

Схема соединения элементов для сервопривода

Схема соединения элементов для сервопривода

Подключение клешни с сервоприводом к плате Arduino.

Подключение клешни с сервоприводом к плате Arduino.

Поворотом потенциометра, и соответственно поворотом сервопривода будем захватывать и отпускать банку.

// подключение библиотеки Servo
#include <Servo.h>
// создать объект servo
Servo servo1;
// пин для подключения сервопривода
const int pin_servo=9;
// макс значение угла поворота
const int angle_max=120;
// для хранения текущей позиции сервопривода
int angle = 0;
// направление  1 или -1
dir=1;

void setup() {
   // подключить управление сервоприводом к пину pin_servo
   servo1.attach(pin_servo);
}

void loop() {
   // получаем значение положения потенциометра
   int val=analogRead(pin_pot);
   // масштабирование к максимальному размаху сервопривода
   int angle_t=map(val,0,1023,0,angle_max);
   // при изменении - перемещение
   if(angle_t!=angle_last) {
      // команда установки положения сервопривода
      servo1.write(angle_t);
      // время на перемещение сервопривода
      delay(15);
      angle_last=angle_t;
   }
}

servo-MG995-05.jpg

Работа проекта

Загружаем скетч на плату и проверяем работу. 


Что делать если

Сервопривод не движется
  • Проверьте правильность подключения контактов сервопривода.
  • Проверьте наличие достаточного внешнего питания сервопривода.
Сервопривод движется рывками
  • Проверьте правильность подачи команд на перемещение.
  • Проверьте наличие достаточного внешнего питания сервопривода. 

Рекомендуемые товары

Комментарии 0