Изучение работы сервопривода 


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



ЗНАЕТЕ ЛИ ВЫ?

Изучение работы сервопривода



Цель работы

Получить навыки программирования микроконтроллера, разработать программу управления электродвигателем - SERVO.

Теоретическая справка

В этой работе изучается такой элемент, как Servo (сервопривод). Сервопривод – это привод, предназначенный для осуществления контроля (угол поворота вала, скорость вращения/движения и так далее) над различными объектами, находящимися в постоянном движении. Контроль производится в зависимости от заданных ему параметров извне. Сервопривод включает в свой состав такие элементы как:

  • Приводной механизм – к примеру, это может быть электромотор. Благодаря ему становится возможным управление скоростью нужного диапазона в определённый временной момент;
  • Датчики – осуществляют контроль над необходимыми параметрами. Могут быть предназначены для отслеживания положения, усилия, поворота угла или скорости вращения объекта;
  • Блок управления – немало важный элемент, так как именно благодаря ему происходит поддержание требуемых параметров в автоматическом режиме;
  • Блок питания – сервопривод.

 

Для использования функций сервопривода в начале исполняемого кода следует подключить библиотеку «Servo» делается это строкой #include <Servo.h>. Далее представлены основные функции для работы с сервоприводом:

Servo.attach(pin, min, max) – прикрепляет переменную сервопривода к контакту на доске. Где  min - (необязательно) - значение PWM (в микросекундах), которое будет соответствовать минимальным 0 градусам, max - (необязательно)- значение PWM (в микросекундах), которое будет соответствовать максимуму 180 градусов;

Servo.write(angle) – позиционирует стержень серводвигателя под заданным углом, angle –  (в градусах) угол, под которым будет располагаться стержень;

Servo. writeMicroseconds(uS) – то же, что и функция write (), но запрашивает ввод в микросекундах, где uS - значение в микросекундах для поворота стержня в определенную степень;

Servo. read() – считывает текущее значение угла сервопривод;

Servo.attached() – проверяет, подключен ли сервопривод к штифту;

Servo.detach – освобождает сервопривод от указанного pin-вывода;

 

Ход работы

В начале работы необходимо выбрать сервомотор из библиотеки компонентов и подключить его к Arduino Uno так, как показано на рис. 43, 44.

Рис.43 - Выбор компонента сервопривода

 

 

 

Рис. 44 - Схема подключения сервопривода к плате Arduino Uno

Переменная «servo.attach» используется для определения pin-вывода, которая предназначена для управления сервоприводом.

В функции «setup» подключается элемент «servo» с выводом 10, который будет управлять сервоприводом, используя необходимую команду:

servo.attach(10);

Так же следует добавить строку Serial.begin(9600), для подключения последовательного порта на скорости 9600 бит/сек. Чтобы отобразить содержимое используем функцию построчного вывода данных в последовательный порт Serial.println() и функцию вывода текущего положения сервопривода servo.read():

Serial.println(servo.read());

Используем дополнительно цикл do while. Общая конструкция цикла состоит из двух частей do{} основного тела цикла и while() условие для выполнения этого цикла:

do{операторы}

while (условие выполнения);

Далее задается переменная X, которая будет равна углу наклона  вала в градусах  как в одну сторону, так и в другую:

int x = 0; // задаем переменную Х как 0

do{

servo.write(x); //ставим вал под Х градусов

    x=x+1;

    delay(500);

Serial.println(servo.read());

}while(x<180);

 

Рис.45 - Листинг программы для управления электродвигателем – SERVO

 

После запуска симуляции в окне «Монитор последдовательного интерфейса» будут отбражаться значения угла поворота вала сервопривода. Слева на рабочем поле будет видно его перемещение. Итогом вал дойдет до 180 градусов, переместится к нулевому и снова повторит цикл.

Задания к работе.

№ Варианта Задания
1 Используя потенциометр менять положение угла вала сервопривода с точностью до 1 градуса
2 Используя потенциометр менять скорость перемещения вала сервопривода от 0 до 10 градусов в секунду с шагов 1 градус.
3 Задать валу ускорение 1 градус/ сек^2. Создать управляющие кнопки для сброса времени и сброса координаты к начальному положению
4 Задать трём кнопкам следующие функции для контроля сервопривода. При нажатии первой увеличить скорость перемещения вала на 1 градус в секунду. При нажатии второй кнопки сбросить положение вала к нулю градусов. При нажатии третьей кнопки сбросить скорость до 0
5 Задать 9 кнопкам функцию перемещения вала сервопривода на 10, 20, 30, 40, 50, 60, 70, 80, 90 градусов. Добавить кнопку с функцией сброса к начальному положению (0 градусов)
6 Задать двум кнопкам следующие функции для контроля сервопривода. Первая - при нажатии вал отклоняется на 10 градусов. Вторая – вал отклоняется на -5 градусов
7 Задать сервоприводу скорость 360 градусов в минуту. Добавить кнопку с функцией сброса к начальному положению (0 градусов)
8 Задать сервоприводу скорость 360 градусов в минуту. Добавить кнопку с функцией паузы
9 Задать сервоприводу скорость 360 градусов в минуту. Добавить кнопку с функцией смены скорости на 180 градусов в минуту
10 Используя сервоприводы создать аналоговые часы с секундной и минутной стрелками

 

 



Поделиться:


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

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