Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Arduino-библиотека Servo для управления сервоприводом

Поиск

Для управления сервоприводом в Arduino имеется стандартная библиотека Servo. На платах, отличных от Mega, использование библиотеки отключает возможность использования anaiogWrite() (ШИМ) на пинах 9 и 10 (вне зависимости, подключе­ны к этим пинам сервы или нет). На платах Mega до 12 сервоприводов могут ис­пользоваться без влияния на функциональность ШИМ, но использование от 12 до 23 сервомашинок отключит ШИМ на пинах 11 и 12. Сервопривод подключается тремя проводами, как показано на рисунке 53.2: питание (Vcc), "земля" (Gnd) и сигнальный (С).

 

 

Рисунок 53.2 – Подключение сервопривода

 

Пита­ние — красный провод, он может быть подключен к выводу +5 В на плате Arduino. Черный или коричневый провод — "земля" подключается к выводу Arduino GND, сигнальный (оранжевый/желтый/белый) провод подключается к цифровому выводу контроллера Arduino. Следует отметить, что мощные сервоприводы могут созда­вать большую нагрузку — в этом случае их следует запитывать отдельно (не через выход +5 В Arduino). То же самое верно для случая подключения сразу нескольких сервоприводов.

Набор функций библиотеки Servo:

- attach(int);

- detach();

- write(int);

- attached()

 

Функция attach()

Функция attach() подключает переменную servo к указанному выходу, с которого осуществляется управление приводом.

Синтаксис:

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


Параметры:

- pin — номер выхода, к которому подключаем сервопривод и с которого осуще­ствляется управление приводом;

- min — ширина импульса в микросекундах, соответствующая минимальному (угол 0 градусов) положению сервопривода;

- max — ширина импульса в микросекундах, соответствующая максимальному (угол 180 градусов) положению сервопривода.

Возвращаемого значения нет.

 

Функция detach()

Функция detach() отсоединяет переменную servo от подключенного функцией attach() выхода. Если все переменные servo отсоединены, то выходы 9 и 10 могут быть использованы в режиме ШИМ с помощью analogWrite().

Синтаксис:

servo.detach()

Параметров нет.

Возвращаемого значения нет.

 

Функция write(int)

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

Синтаксис:

servo.write(angle)

Параметр: angle — значение, записываемое в servo (от 0 до 180).

Возвращаемого значения нет.

 

 

Функция writeMicrosconds(int)

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

Синтаксис:

servo.writeMicrosconds (uS)

Параметр: uS — значение в микросекундах.

Возвращаемого значения нет.

Функция read()

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

Синтаксис:

servo.read()

Параметров нет.

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

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

Функция attached()

Функция attached() проверяет, подключена ли переменная Servo к выходу. Синтаксис:

servo.attached()

Параметров нет.

Возвращаемые значения: true — если подключена, false — в противном случае.

 


Контрольные вопросы:

1. Как устроен сервопривод?

2. Объяснить принцип работы сервопривода.

3. Какие существуют типы сервоприводов по управлению? Назвать их особенности.

4. Для чего предназначена библиотека Servo?

5. Какие и с какой целью используются функции библиотеки Servo?

6. Как осуществляется подключение серводвигателя к плате Arduino?




Поделиться:


Последнее изменение этой страницы: 2021-02-07; просмотров: 254; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.34.211 (0.009 с.)