Шаговый двигатель 28BYJ-48 и драйвер ULN2003

Мотор 28BYJ-48 и драйвер ULN2003

Для одной из статей, прототип на макетной плате, получился громоздким и не понятным. Если делать фотографию только с одной стороны, то трудно разобрать, что вообще получилось. Я начал ломать голову, как сделать более удачную фотографию, в итоге так ни чего и не придумал, но пришла интересная идея – можно сделать платформу, которая будет медленно вращаться, тогда если записать видео, обзор прототипа будет выглядеть понятней, чем просто фото. Недолго думая, я приступил к реализации поворотного «столика». Для основы проекта, очень удачно, подошел шаговый мотор 28BYJ-48, который уже давно валялся на полке и ни куда не был пристроен. Но его время настало…

Мотор 28BYJ-48 и драйвер ULN2003

Подключать шаговые моторы «напрямую» к ардуино, довольно сложный и неудобный процесс. Поэтому лучше использовать специальные драйверы, например, для мотора 28BYJ-48 часто используется ULN2003, они даже частенько продаются в комплекте. Так же можно использовать драйвера L293D, DRV8825 и тд. В этой статье я буду использовать ULN2003, поскольку он валялся без дела идеально подходит в данной ситуации. Подключение мотора и драйвера простое: на плате драйвера имеется разъем с пазами для подключения 28BYJ-48, тут сложно подключить не правильно, а сам драйвер подключается к любым четырем пинам arduino, плюс ему требуется два провода питания. Драйвер умеет работать с 5 и 12 вольтовыми версиями 28BYJ-48, для переключения уровней питания на плате нужно перекинуть перемычку.
Все подключается очень просто и быстро, поэтому чтобы статья была хоть чуток интересной и полезной, добавлю сюда регулятор скорости вращения мотора. Для этого достаточно добавить потенциометр, который подключается не на много сложнее – два провода питания и третий провод должен «конектится» с аналоговым пином ардуино, например А0.
Ниже находится картинка, на которой схематично показано подключение драйвера, мотора и потенциометра к ардуино.
Подключение 28BYJ-48 и драйвер ULN2003 к arduino

Что использовалось в проекте:

Скетч для управления мотором 28BYJ-48 с помощью arduino

Для работы с шаговыми моторами существует несколько библиотек, одна из них даже есть в стандартном наборе IDE, но на мой взгляд удобнее всего использовать AccelStepper. Скачать ее можно по этой ссылке: скачать.
Ниже приведен код скетча с подробными комментариями.

 
// библиотека для управления мотором
#include <AccelStepper.h> 
// пины
#define motorPin1  8 // IN1 на драйвере ULN2003
#define motorPin2  9 // IN2 на драйвере ULN2003
#define motorPin3  10 // IN3 на драйвере ULN2003
#define motorPin4  11 // IN4 на драйвере ULN2003
int analog_pin = A0; // пин для потенциометра

// подключение мотора
// пины и количество шагов на оборот(8)
AccelStepper stepper_motor(8, motorPin1, motorPin3, motorPin2, motorPin4);

void setup(){
  // максимальная скорость мотора
  stepper_motor.setMaxSpeed(500);
  // дефолтная скорость мотора
  stepper_motor.setSpeed(200); 
}

void loop(){
  // читаем значение с потенциометра
  int val_a = analogRead(analog_pin);
  // получаем скорость(от 50 до 500) относительно значения потенциометра(от 0 до 1023)
  int motorSpeed = map(val_a, 0, 1023, 50, 500);
  // задаем скорость мотору
  stepper_motor.setSpeed(motorSpeed); 
  // вращаем мотор
  stepper_motor.runSpeed();
}

Послесловие

В завершение статьи хочу приложить видео, на котором можно посмотреть работу поворотной платформы. Чтобы немного облагородить девайс, я напечатал сам «столик» и коробку для электроники на 3D принтере. А на верхнюю плоскость платформы приклеил кусок черной пленки, которая в прошлой жизни была тонировкой на автомобиле и провоцировала доблестных сотрудников ГИБДД на остановку транспортного средства с последующей выпиской штрафа.

Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*