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

Сервоприводы являются основой для радиолюбителей, которые работают с Arduino. Они используются везде: автоматическое открывание дверей, движение робота, кран подъемника и во многом другом. В данной статье рассказано о том, какой именно сервопривод для "Ардуино" выбрать, как его подключать и как им управлять.

О сервоприводах

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

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

Самым знаменитым дешевым сервоприводом является модель Tower Pro SG92R. Этот сервопривод для "Ардуино" можно встретить практически во всех начальных наборах радиолюбителя. Обусловлено это тем, что цена его составляет всего лишь каких-то сто рублей, а при оптовых покупках (например, от десяти штук) - и то дешевле выходит. Весит SG92R всего 9 грамм, может принимать на вал 1.6 кг. Так пишется только в характеристиках в интернет-магазинах.

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

Подключение

Подключение сервопривода к "Ардуино" не занимает много времени. Для этого используется всего три контакта: земля, питание, логика. Работает сервопривод с "Ардуино" при помощи цифровых контактов. Это полоса Digital на плате. К сожалению, на самом сервоприводе не обозначены, какие провода за что отвечают.

  1. Красный отвечает за питание. Кстати, сервопривод может работать от 5 и 6V. Конечно же, от 6V он работает шустрее.
  2. Черный (иногда даже бывает коричневый) провод - земля. Подключайте его к GND на плате Arduino.
  3. Желтый (в некоторых случаях бывает белый) отвечает за логику. Подключайте его к любому ШИМ (широтно-импульсная модуляция) контакту. Например, девятый контакт на плате Arduino.

Вот и все. Таким простым способом можно подключить сервопривод к "Ардуино". Кстати, все они подключаются и работают с "Ардуино" одинаково. Следует лишь разобраться с тем, как ими управлять.

Управление

Для управления сервоприводом с "Ардуино" используется библиотека Servo. Она уже идет в комплекте Arduino IDE и ее не нужно дополнительно скачивать. Работать с библиотекой достаточно легко. Ниже представлен пример кода для вращения вала сервопривода.

#include <Servo.h> 
Servo myservo;

void setup() { 
  // устанавливаем пин как вывод управления сервой  
  myservo.attach(9);
}

void loop() {  
  // устанавливаем угол 0°  
  myservo.write(0);  
  delay(2000);
  // устанавливаем угол 90°  
  myservo.write(90);  
  delay(2000);
  // устанавливаем угол 180°  
  myservo.write(180);  
  delay(2000);
}

Объяснение кода таково. Первым делом подключается библиотека для работы с сервоприводом. После этого создается переменная типа Servo. Имена можно давать совершенно разные - все ограничивается лишь вашей фантазией. Потом следует указать, к какому контакту подключен ваш сервопривод в "Ардуино". Затем вы должны установить угол поворота на ноль градусов, после чего установить ожидание на две секунды. Это нужно для того, чтобы сервопривод успел повернуть вал и работал стабильнее.

После этого следует поставить угол на девяносто и сто восемьдесят градусов. Так как функция Loop - это цикл, после компиляции вы получите то, что ваш сервопривод будет постоянно поворачивать свой вал. Это все при подключении одного сервопривода к Arduino. Дело в том, что он хоть и маленький, но при активизации поворота вала он затрачивает 0.4 мА, что достаточно много. И при подключении нескольких серво произойдет некий скачок электричества, что может привести к нестабильной работе датчиков, которые подключены к Arduino.

Эта проблема решается следующим образом: нужно взять какой-нибудь другой источник питания 5V - отлично подойдет переделанное зарядное устройство телефона. Получается так, что сервоприводы питаются от отдельного источника питания, а к "Ардуино" обращаются только за сигналами. Некоторые считают, что даже один сервопривод не стоит подключать напрямую к Arduino.

Пример проекта

Ниже представлен проект с сервоприводом на "Ардуино". Представьте ситуацию, что требуется создать автоматическое открывание форточек в теплице при достижении определенной температуры. Для этого используется датчик DHT-11 и сервопривод SG92R. Программный код выглядит следующим образом:

#include "DHT.h"
#include <Servo.h>

#define DHTPIN 2 // номер пина, к которому подсоединен датчик
Servo myservo; // переменная Servo

// Инициируем датчик

DHT dht(DHTPIN, DHT11);

void setup() {

Serial.begin(9600);
myservo.attach(9);

dht.begin();

}

void loop() {

// Задержка 2 секунды между измерениями

delay(2000);

// Считываем температуру

float t = dht.readTemperature();
if (t>30) {

myservo.write(90);

}

}

Для начала подключаются библиотеки для работы с датчиком DHT-11 и сервоприводом. Следом обозначаются переменные и к каким контактам они подключены. После чего каждые две секунды датчик узнает температуру, и если она выше тридцати градусов, то срабатывает сервопривод, тем самым открывая форточку. Это пример его работы с "Ардуино" и датчиком DHT-11.

Плюсы и минусы SG92R

SG92R - довольно хороший сервопривод, и со своими задачами он справляется отлично. Какие же преимущества и недостатки он имеет?

Среди преимуществ стоит отметить следующие:

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

Среди недостатков самыми существенными являются следующие:

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

Число плюсов и минусов одинаково. Как бы это ни было, но SG92R является отличным сервоприводом, по крайней мере для изучения и понятия их работы.

Комментарии