Лабораторные работы      Технологии+Бизнес

Цель работы: обучение Arduino

Задача: научиться управлять шаговым мотором

 

Сборка лабораторной установки


Для достижения поставленной задачи, подготовим все необходимые нам детали.

Компоненты лабораторной установки:

1. Контроллер Arduino Leonardo
2. Шаговый двигатель.

3. Драйвер для шагового двигателя.

4. Источник внешнего питания.

5. Провода для подключения.

 

Схема лабораторной установки: 



 

Алгоритм выполения работы:

1. Подключаем пины от драйвера шагового двигателя к микроконтроллеру с 8 по 11 (оранжевый, желтый, зеленый, синий).

2. Подключаем шаговый двигатель к драйверу.

3. Для питания рекомендуется использовать источник внешнего питания. В данном случае используем кожух. Подключаем питание(красный провод) и заземление(черный провод) от кожуха к драйверу. Не рекомендуется подключать питание напрямую к микроконтроллеру.

4. Подключаем микроконтроллер к сети.


 

Подробное описание можно посмотреть в следующем видео:

 


 

Работа в среде программирования Arduino IDE

Код программы:

#include <Stepper.h> // Подключение библиотеки для работы с шаговым двигателем

const int STEPS_MOTOR = 32; // Число шагов для полного оборота двигателя

const int STEPS_CIRCLE = 2048; // Число шагов для одного полного оборота вала редуктора двигателя

                                // Согласно характеристикам 28BYJ-48 угол поворота на один шаг 5,625°

                                // Получается, что таких шагов будет 360° / 5,625° = 64

                                // 2048 = 32 * 64

Stepper stepper(STEPS_MOTOR, 8, 10, 9, 11);  // Создаем объект Stepper с соответствующими пинами и числом шагов для мотора

void setup() {}

void loop()

{

 stepper.setSpeed(100); //Зададим скорость

 stepper.step(45); //Выполнить 45 шагов по часовой стрелке

 delay(1000); //задержка на 1 секунду

 stepper.setSpeed(300); //Установить скорость побыстрее

 stepper.step(-45); //Выполнить 45 шагов против часовой стрелки

 delay(1000); //Задержка на 1 секунду

 stepper.step(STEPS_CIRCLE); //Выполнить полный оборот по часовой стрелке

 delay(1500); //Задержка 1,5 секунды

}

 

Подробное описание кода смотрите в этом видео:

Дополнительная библиотека для работы с шаговым двигателем - AccelStepper(https://www.pjrc.com/teensy/td_libs_AccelStepper.html).

Вопросы:


1.  Сколько шагов необходимо задать двигателю для полного оборота вала редуктора? (2048)


2. Выберете верный ответ:
Функция setSpeed(n) 
а) Заставляет двигатель вращаться
б) Устанавливает скорость вращения и заставляет двигатель вращаться
в) Только устанавливает скорость вращения
(в)


3. В чем измеряется скорость двигателя? (обороты в минуту)


4. Является ли функция step() блокирующей? (Да)


5. При указании в скобках в функции step() положительного числа, двигатель будет вращаться

а) по часовой стрелке
б) против часовой стрелки
в) не будет вращаться
(а)
6. Из чего состоит шаговый мотор?

 

7. Как работает шаговый мотор?

 

8. Можно ли подключать питание напрямую к микроконтроллеру?

 

9. Какое подкючение пинов будет, если в коде программы написать пины по порядку?

 

Лабораторные работы   Технологии+Бизнес