шаблоны сайт визитка joomla
Скачать шаблоны Joomla 3.5 бесплатно
Вы находитесь здесь:Главная»Учебные материалы»Arduino Scetch»Подключение сервопривода(сервомотора) к ардуино

Подключение сервопривода(сервомотора) к ардуино

Сервоприводы используются в робототехнике для управления движениями робота. 

Сервопривод — это мотор, положением вала которого мы можем управлять. От обычного мотора он отличается тем, что ему можно точно в градусах задать положение, в которое встанет вал. Сервоприводы используются для моделирования различных механических движений роботов.

Для подключения сервопривода нам потребуется:

  • плата Arduino (и, возможно, бредбоард)
  • 3 провода “папа-папа”
  • сервопривод
  • программа Arduino IDE, которую можно скачать с сайта Arduino.

serv 1

Для работы этой модели подойдет следующая программа (программу вы можете просто скопировать в Arduino IDE):

#include <Servo.h> //используем библиотеку для работы с сервоприводом
Servo servo; //объявляем переменную servo типа Servo
void setup() //процедура setup
{
servo.attach(10); //привязываем привод к порту 10
}
void loop() //процедура loop
{
servo.write(0); //ставим вал под 0
delay(2000); //ждем 2 секунды
servo.write(180); //ставим вал под 180
delay(2000); //ждем 2 секунды
}

Последние четыре команды программы задают угол поворота вала сервопривода и время ожидания (в миллисекундах) до следующего поворота. Эти цифры можно поменять — к примеру,  0-1000-90-1000   означает поворот на 90 градусов с ожиданием в 1 секунду (1000 миллисекунд), возврат обратно и т.д. (процедура loop повторяется циклично).

serv 2

Библиотека для сервопривода 

Servo library – библиотека для работы с сервомашинками
Как мы помним – сервомашинка – это мотор-редуктор, с обратной связью, благодаря которой можно повернуть выходной вал на строго определённый угол. 
Стандартные рулевые машинки, вертятся от 0 до 180 градусов (также есть сервы постоянного вращения – т.н.Continuous Rotation Servo).
Примечание: В Arduino IDE 0017 библиотека Servo поддерживает до 12 серв (до 48 на Mega), а в IDE 0016 и ранее работает только на 9 и 10 пинах!

serv 3

  • земля (коричневый/черный),
  • питание +5 вольт (красный),
  • сигнальный (оранжевый/желтый/белый).

 Управляющий сигнал можно подавать напрямую с ноги МК, а вот силовое питание (особенно если задействовано более одной-двух серв) нужно подавать от внешнего источника питания (т.е. не от +5В Arduino). В этом случае – нужно не забыть соединить землю Arduino/CraftDuino с минусом внешнего источника питания.


 

Рассмотрим функции, которые предоставляет библиотека.

  • attach()
  • write()
  • writeMicroseconds()
  • read()
  • attached()
  • detach()

 

Servo.attach()


Подключает Servo к указанному выходу, с которого осуществляется управление приводом.

Синтаксис

servo.attach(pin)
servo.attach(pin, min, max)

Параметры

servo: переменная типа Servo
pin: номер выхода, к которому подключаем servo и с которого осуществляется управление приводом
min (опциональный): ширина импульса в микросекундах, соответствующий минимальному (угол 0 градусов) положению сервопривода. (по умолчанию 544)
max (optional): ширина импульса в микросекундах, соответствующий максимальному (угол 180 градусов) положению сервопривода.

Пример

#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
}
void loop() {}

 

Servo.write()


Передает значения для управления приводом. Для стандартного сервопривода это угол поворота. Для привод постоянного вращения, функция задает скорость вращения (0 - для максимальной скорости вращения в одну сторону, 180 - для максимальной скорости в другую сторону и около 90 для неподвижного состояния).

Синтаксис

servo.write(angle)

Параметры

servo: переменная типа Servo
angle: значение записываемое в servo, от 0 до 180

Пример

#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.write(90); // устанавливает сервопривод в среднее положение
}
void loop() {}

Servo.writeMicroseconds()


Передает значение для управления сревоприводом в микросекундах (uS), устанавливая угол поворота на это значение. Для стандартного привода значение 1000 максимальный поворот против часовой стрелки, 2000 максимальный поворот по часовой стрелке, 1500 посередине.

Замечание: некоторые производители не придерживаются стандартных значение и такие приводы могут управляться значениями от 700 до 2300. Поэкспериментируйте со значениями, до момента пока привод не повернется и остановится в крайнем положение. Тем не менее следует избегать постоянного использования привода на значениях больше допустимых. 

Синтаксис

servo.writeMicroseconds(uS)

Параметры

servo: переменная типа Servo

uS: значение в микросекундах (int)

Пример

#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.writeMicroseconds(1500); // устанавливает привод в среднее положение
}
void loop() {}

 

Servo.read()


Считывает значение текущего положения сервопривода (значение записанное последним вызовом функции write()).

Синтаксис

servo.read()

Параметры

servo: a variable of type Servo

Возвращаемое значение

Положение (угол) сервопривода от 0 до 180.

 

Servo.attached()


Проверяет если переменная Servo подключена к выходу.

Синтаксис

servo.attached()

Параметры

servo: переменная типа Servo

Возвращаемое значение

true если подключена; false в противном случае.

 

Servo.detach()


Отсоединяет переменную Servo от указанного выхода. Если все Servo переменные отсоединены, то выходы 9 и 10 могут быть использованы в режиме ШИМ с помощью analogWrite().

Синтаксис

servo.detach()

Параметры

servo: переменная типа Servo

Новости о нас

Расписание занятий для каждой сформированной группы по робототехнике на 2017-2018 учебный год. Подробнее
Учебный год начался, и у нас очередная радостная новость для вас, педагоги! В этом году... Подробнее
Наши учащиеся выступили на августовской конференции педагогов! Подробнее
Хочешь учиться в Толтеке по выгодной цене? Приводи друзей и получай большие скидки!... Подробнее
19 августа в ТРЦ Сити Молл с блеском прошел РобоКвест! Героями квеста стали более сотни... Подробнее

Наши партнеры

 TZOyoOCZ8y0 logotip novy SF BashGU  utv logo  CityMoll  VolnoeDelo