Регулятор скорости вращения для униполярного шагового двигателя на базе Arduino UNO

Коротко о том с чего все началось. Однажды появилась потребность в демонстрационном столике или как еще его называют вращающийся столик. Покупать готовый не стал в связи с тем что жалко портить новый, да и к тому же столики имеющиеся в продаже по некоторым характеристикам не подходят для моих целей. Для этой цели решил использовать Arduino и шаговый двигатель в связи с тем что он может вращаться на низких скоростях что и требуется для этой цели.

Если у вас возникнут вопросы по данной теме то вы можете их задать в комментариях под видео в YouTube перейдя по этой ссылке www.youtube.com/Мастер Колотушкин

1 шаг. Что понадобится для проекта:

Arduino UNO 1 штука.

Регулятор скорости вращения для униполярного шагового двигателя на базе Arduino UNO

USB кабель для подключения Arduino UNO к компьютеру 1 штука и конечно же сам компьютер с установленным приложением Arduino IDE

usb кабель для подключение Arduino UNO

Униполярный шаговый двигатель 28BYJ-48 5V на 5 вольт и драйвер к нему на базе микросхемы ULN2003 который обычно идет в комплекте с шаговым двигателем, 1 комплект.

униполярный шаговый двигатель 28BYJ-48 в сборе с драйвером на базе ULN2003

Соединительные провода мама мама для подключения линий питания 2 штуки.

соединительные провода мама мама

Соединительные провода папа мама для подключения управляющих электрических цепей 4 штуки.

соединительные провода папа мама

Потенциометр с сопротивлением от 3 до 50 киллоом 1 штука, с заранее припаяными проводами типа папа. Зеленый подпаян к средней ноге потенциометра!

потенциометр 3300 Ом

2 шаг. Подключить Arduino UNO к компьютеру с помощью кабеля.

Arduino UNO подключенный к компьютеру

3 шаг. Запустить приложение Arduino IDE (подойдет любая версия).

запуск приложения Arduini IDE

4 шаг. Открыть скетч (прошивка для Arduino) Файл/ Примеры/ Stepper/ stepper_speedControl.

открытие скетча stepper_speedControl

Если у вас по какой-то причине отсутствует данный скетч то вы можете его скопировать с окна ниже и вставить в чистое поле приложения ArduinoIDE. После чего можно приступать к 5 шагу.


//Начало скетча stepper_speedControl 1


  1. #include "Stepper.h"
  2. const int stepsPerRevolution = 200; // количество шагов на 1 оборот
  3. Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
  4. // контакты к которым подключается шаговый двигатель
  5. int stepCount = 0;
  6. void setup() {}
  7. void loop() {
  8. int sensorReading = analogRead(A0);
  9. // контакт А0 считывает сигнал с потенциометра
  10. int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
  11. // карта: значения 0, 1023 это от 0 до +5 вольт с потенциометра
  12. // карта: значения 0, 100 это скорость вращения шагового
  13. // двигателя от 0 до 100 шагов в секунду
  14. if (motorSpeed > 0) {
  15. myStepper.setSpeed(motorSpeed);
  16. myStepper.step(stepsPerRevolution / 100);
  17. }}

//Конец скетча stepper_speedControl 1


А если у вас не оказалось библиотеки Stepper, то можете воспользоваться скетчем ниже, который работает без библиотек.


//Начало скетча stepper_speedControl 2


  1. void setup() {
  2. // 8, 9, 10, 11 контакты к которым подключается шаговый двигатель
  3. pinMode(8, OUTPUT); pinMode(9, OUTPUT);
  4. pinMode(10, OUTPUT); pinMode(11, OUTPUT);}
  5. void loop() {
  6. // контакт А0 считывает сигнал с потенциометра
  7. int sensorReading = analogRead(A0);
  8. int t = map(sensorReading, 0, 1023, 1, 20);
  9. digitalWrite(11, HIGH);digitalWrite(9, LOW);
  10. delay(t);
  11. digitalWrite(10, HIGH);digitalWrite(8, LOW);
  12. delay(t);
  13. digitalWrite(9, HIGH);digitalWrite(11, LOW);
  14. delay(t);
  15. digitalWrite(8, HIGH);digitalWrite(10, LOW);
  16. delay(t);}

//Конец скетча stepper_speedControl 2


5 шаг. Если вы как и я решили использовать плату Arduino UNO то во вкладке Инструменты/Плата: выберите пункт Arduino/Genuino Uno который обведен красным на фото ниже.

выбор платы Arduino

6 шаг. Во вкладке Инструменты выбрать порт к которому подключена плата Arduino в моем случае это COM11 у вас может быть другой, то есть у меня галочка должна стоять на против COM11.

выбор COM11 Arduino UNO

В нижнем правом углу должно быть Arduino/Genuino на COM(номер ком порта к которому подключена плата) если все верно то переходим к следующему шагу.

отметка Arduino на COM11

7 шаг. Загружаем скетч нажав кнопку Загрузки со стрелочкой.

Если вы используете скетч с этой страницы то приложение при загрузке предложит сохранить его. После чего загрузка продолжится

загрузка скетча в Arduino UNO

Через 5-45 секунд скетч загрузится и появится уведомление Загрузка завершена.

загрузка скетча завершена

8 шаг. Отключаем Arduino от компьютера и подключаем потенциометр.

Зеленый провод который подпаян к средней ноге потенциометра подключаем контакту A0, остальные два к питанию GND (минус) и +5V (5 вольт) полярность на ваше усмотрение.

В моем случае если вращать потенциометр по часовой стрелке то скорость вращения шагового двигателя увеличивается, а если поменять местами серый с красным проводом то при вращении потенциометра так же по часовой стрелке скорость вращения шагового двигателя будет уменьшаться.

потенциометр 3300 Ом

9 шаг. С помощью соединительных проводов папа мама подключаем драйвер шагового двигателя к Arduino UNO.

Линия 1N1 к 8 контакту, линия 1N2 к 9 контакту, линия 1N3 к 10 контакту и линия 1N4 к 11 контакту.

подключение  драйвера к Arduino UNO

10 шаг. Проводами мама мама соединяем линии питания.

Такой способ подключения допустим лишь при использовании маломощных шаговых двигателей! При использовании нескольких, или более мощных шаговых двигателей следует использовать отдельный источник питания! При этом у ардуины и драйвера шагового двигателя должна быть общая земля!

подключение проводов питания драйвера к Arduino UNO

11 шаг. Должно все получиться как на фото ниже! Если это так то подключаем Arduino к компьютеру или Павербанку и пробуем крутить потенциометр.

Регулятор скорости вращения для униполярного шагового двигателя на базе Arduino UNO

Доработка демонстрационного столика для которого была применена данная схема

Доработка демонстрационного столика для которого была применена данная схема