Для одной из статей, прототип на макетной плате, получился громоздким и не понятным. Если делать фотографию только с одной стороны, то трудно разобрать, что вообще получилось. Я начал ломать голову, как сделать более удачную фотографию, в итоге так ни чего и не придумал, но пришла интересная идея – можно сделать платформу, которая будет медленно вращаться, тогда если записать видео, обзор прототипа будет выглядеть понятней, чем просто фото. Недолго думая, я приступил к реализации поворотного «столика». Для основы проекта, очень удачно, подошел шаговый мотор 28BYJ-48, который уже давно валялся на полке и ни куда не был пристроен. Но его время настало…
Мотор 28BYJ-48 и драйвер ULN2003
Подключать шаговые моторы «напрямую» к ардуино, довольно сложный и неудобный процесс. Поэтому лучше использовать специальные драйверы, например, для мотора 28BYJ-48 часто используется ULN2003, они даже частенько продаются в комплекте. Так же можно использовать драйвера L293D, DRV8825 и тд. В этой статье я буду использовать ULN2003, поскольку он валялся без дела идеально подходит в данной ситуации. Подключение мотора и драйвера простое: на плате драйвера имеется разъем с пазами для подключения 28BYJ-48, тут сложно подключить не правильно, а сам драйвер подключается к любым четырем пинам arduino, плюс ему требуется два провода питания. Драйвер умеет работать с 5 и 12 вольтовыми версиями 28BYJ-48, для переключения уровней питания на плате нужно перекинуть перемычку.
Все подключается очень просто и быстро, поэтому чтобы статья была хоть чуток интересной и полезной, добавлю сюда регулятор скорости вращения мотора. Для этого достаточно добавить потенциометр, который подключается не на много сложнее – два провода питания и третий провод должен «конектится» с аналоговым пином ардуино, например А0.
Ниже находится картинка, на которой схематично показано подключение драйвера, мотора и потенциометра к ардуино.
Что использовалось в проекте:
- Arduino (я использовал arduino nano, но можно любую другую). Покупал тут: arduino nano
- Мотор 28BYJ-48 с драйвером ULN2003. Покупал тут: Мотор 28BYJ-48 + драйвер ULN2003
- Потенциометр на 10 кОм. Покупал тут: Потенциометр 10 кОм. 10 штук
- Несколько соединительных проводов. Покупал тут: соединительные провода
Скетч для управления мотором 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 принтере. А на верхнюю плоскость платформы приклеил кусок черной пленки, которая в прошлой жизни была тонировкой на автомобиле и провоцировала доблестных сотрудников ГИБДД на остановку транспортного средства с последующей выпиской штрафа.
Подключение шагового двигателя 28BYJ-48 с драйвером на микросхеме ULN2003 к Arduino Uno
https://youtu.be/8b-9drmBPTY