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

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

Сервоприводы могут быть использованы для управления перемещением:

  • частей робота (рук, ног, головы);
  • элементов управления модели транспортного средства — самолета, вертолета, автомобиля, катера;
  • поворотного устройства для видеокамеры;
  • различных механизмов.

Для управления сервоприводом используется сигнал специальной формы. Временная диаграмма сигнала приведена на рисунке ниже. Частота повторения сигнала составляет 20 мс. Длина импульса соответствует заданному углу поворота вала сервопривода. Импульс в 1000 мкс соответствует крайнему левому положению, 2000 мкс — крайнему правому. 1500 мкс соответствует среднему положению.

Временная диаграмма сигнала сервопривода
Временная диаграмма сигнала сервопривода

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

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

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

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

#include <Servo.h> 
Servo myservo;  
int pos = 0;    
void setup() 
{ 
myservo.attach(9);  
} 
void loop() 
{ 
for(pos = 0; pos <= 180; pos += 1)  
{                                 
myservo.write(pos);              
delay(15);                      
} 
for(pos = 180; pos>=0; pos-=1)     
{                                
myservo.write(pos);             
delay(15);                     
} 
}

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