Ардуино шаговый двигатель скетч схема соединения
ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ
Блог технической поддержки моих разработок
Урок 28. Униполярный шаговый двигатель в системе Ардуино. Библиотека Stepper.
Этой публикацией я начинаю цикл уроков об управлении шаговыми двигателями в системе Ардуино. Первый урок посвящен подключению к Ардуино униполярных шаговых двигателей.
Шаговый двигатель – уникальное электромеханическое устройство, которое объединяет в себе двигатель и позиционирующее устройство без обратной связи. Применение шаговых двигателей значительно упрощает механическую конструкцию любого оборудования. Они просто незаменимы в самых разных областях машиностроения: в станках с ЧПУ, робототехнике, в промышленном оборудовании…
Предполагается, что читатель хорошо знаком с принципом действия и способами управления шаговыми двигателями, с терминологией в этой области. Если нет, то внимательно прочитайте эту статью. В ней о шаговых двигателях рассказывается предельно просто.
Подключение униполярного шагового двигателя к плате Ардуино.
Шаговый двигатель не может быть подключен непосредственно к выводам микроконтроллера. Недостаточно нагрузочной способности по току и напряжению на выходах микроконтроллера. Необходимо использовать усилитель управляющих сигналов – драйвер. О драйверах шаговых двигателей подробно написано по этой ссылке. Я повторю необходимую информацию.
Для управления униполярным шаговым двигателем достаточно 4 ключей, коммутирующих 4 обмотки на землю. Я приведу две практические схемы униполярных драйверов: на биполярных транзисторах и MOSFET транзисторах.
Схема драйвера униполярного шагового двигателя на биполярных транзисторах выглядит так.
Драйвер позволяет коммутировать нагрузки с токами до 2 А и напряжением до 60 В.
Намного предпочтительнее использовать в драйвере MOSFET транзисторы.
Схема собрана на MOSFET транзисторах IRF7313 (irf7313.pdf) со следующими параметрами:
- предельно допустимый ток 6,5 А;
- максимальное напряжение 30 В;
- сопротивление открытого транзистора 0,029 Ом;
- пороговое напряжение затвора 1 В;
- исполнение – миниатюрный корпус SO-8;
- в корпусе два транзистора.
Драйвер униполярного двигателя, выполненный на MOSFET транзисторах имеет значительные преимущества перед аналогичным устройством на биполярных транзисторах:
- не требует радиаторов охлаждения транзисторов;
- имеет очень низкие потери в открытых ключах;
- имеет малые габариты;
- используется всего два корпуса по 8 выводов.
В обеих схемах ключи управляются непосредственно от выводов микроконтроллера логическими уровнями CMOS (0 / +5 В). Высокий уровень сигнала открывает ключ, и через обмотку двигателя течет ток. Диоды защищают ключи от выбросов напряжения при коммутации.
На схемах показано подключение шаговых двигателей с 6 выводами.
Например, для широко распространенных двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57ST, FL57STH с конфигурацией обмоток 6 проводов выводы промаркированы следующим цветами.
Обозначение вывода на схеме | Цвет провода |
A | черный |
0 | желтый |
C | зеленый |
B | красный |
0* | белый |
D | синий |
Конфигурация с 5 проводами это вариант, в котором общие провода обмоток соединены внутри двигателя. Такие двигатели бывают. Например, PM35S-048.
Существуют двигатели с 8 выводами. Каждая обмотка имеет отдельные выводы.
Схема подключения такая же, только соединения между обмотками происходят вне двигателя.
Достоинства и недостатки простых драйверов униполярных шаговых двигателей.
Приведенные выше схемы драйверов очень простые – 4 ключа без обратных связей по току. Это главное преимущество драйверов униполярных шаговых двигателей.
Для управления такими драйверами применяются очень простые программные модули, ресурсы микроконтроллера используются незначительно. Достаточно изменять состояние 4 выводов микроконтроллера в определенной последовательности.
- Главный недостаток – это отсутствие стабилизации тока обмоток.
- В статическом режиме ток определяется активным сопротивлением обмотки двигателя и напряжением питания (по закону Ома I = U / R). Т.е. в схеме можно использовать только двигатели с определенным сопротивлением обмоток или приходится подбирать напряжение питания. Это требование значительно сужает выбор двигателей.
Можно ограничить фазные токи дополнительными резисторами, включенными последовательно с каждой обмоткой. Решение вполне рабочее, но при мощных двигателях на этих резисторах рассеивается довольно большая мощность.
- Отсутствие стабилизации тока также приводит ко второй проблеме. Это медленная скорость нарастания тока связанная со значительной индуктивностью обмоток. Это приводит к значительному снижению максимальной скорости вращения двигателя. Например, у двигателя FL57STH76-1006 индуктивность обмотки 14 мГн. При напряжении 12 В ток в обмотке достигнет рабочего значения 1 А только через 1,2 мс (I = U * T / L ). На высоких скоростях вращения фазные токи будут значительно занижены, а значит, уменьшится и мощность двигателя.
Резисторы, включенные последовательно с обмотками, частично исправляют эту проблему, но рассеивают лишнюю мощность.
- К недостаткам драйвера можно добавить и то, что униполярный шаговый двигатель имеет меньшую мощность по сравнению с биполярным при тех же габаритах. Мощность падает примерно на 40%.
Несмотря на недостатки, такие схемы подключения униполярных шаговых двигателей широко применяются. Например, в станке для розлива и запайки ампул все двигатели работают в униполярном режиме.
Можете посмотреть, как работают шаговые двигатели в униполярном режиме.
Для начала я спаял драйвер на биполярных транзисторах и подключил к нему двигатель PM35S-048. Сопротивление обмоток моего двигателя составляет 36 Ом. Ток при 12 В равен 0,33 А. Можно подключить к драйверу без ограничительных резисторов.
Беспаечную макетную плату использовать побоялся. Слишком большие токи.
Stepper — стандартная библиотека Ардуино для управления шаговыми двигателями.
В пакете Arduino IDE есть стандартная библиотека для управления униполярными и биполярными шаговыми двигателями. Ее не надо искать и загружать из интернета. Она устанавливается вместе с пакетом Arduino IDE. Библиотека очень простая. Кроме конструктора имеет всего две функции.
Stepper( steps, pin1, pin2, pin3, pin4 )
Конструктор класса Stepper. Создает объект типа Stepper.
- steps – количество шагов двигателя на один оборот (360°). Параметр используется функцией setSpeed() для вычисления скорости вращения.
- pin1, pin2, pin3, pin4 – выводы для подключения драйвера двигателя. Для двух проводной схеме подключения pin3 и pin4 не используются. Для четырех проводной схемы pin1, pin2, pin3, pin4 соответствуют фазам A, C, B, D при униполярном режиме управления.
Stepper motor1 (400, 10, 11, 12, 13); // создаем объект motor1
void setSpeed(long rpms)
Устанавливает скорость вращения двигателя в оборотах в минуту.
- rpms — скорость вращения в оборотах в минуту.
motor1.setSpeed(60); // устанавливаем скорость вращения 60 об. в мин
void step(int steps)
Вызывает поворот двигателя на заданное число шагов. Функция останавливает выполнение программы до тех пор, пока не завершится.
- steps – число шагов, на которое требуется повернуть ротор двигателя. Отрицательное значение вращает двигатель в противоположную сторону.
motor1.step(20); // сделать 20 шагов против часовой стрелки
Простая программа управления шаговым двигателем.
Программа управляет двигателем по следующему алгоритму:
- двигатель делает 5 оборотов против часовой стрелки;
- останавливается на 1 сек;
- делает 5 оборотов по часовой стрелке;
- останавливается на 1 сек;
- и так в бесконечном цикле.
Скетч программы простой и очевидный.
// простая программа управления шаговым двигателем с помощью библиотеки Stepper
// делает 5 оборотов против часовой стрелки со скоростью 1 оборот в секунду
// после паузы 1 сек, делает 5 оборотов по часовой стрелке
Stepper motor(48, 10, 12, 11, 13); // объект motor, 48 шагов на оборот
void setup() <
motor.setSpeed(60); // скорость 60 об. в мин.
>
void loop() <
motor.step(240); // 5 оборотов (240 шагов) по часовой стрелке
delay(1000);
motor.step(-240); // 5 оборотов (240 шагов) против часовой стрелке
delay(1000);
>
Хочу только отметить, что в режиме четырех проводного подключения объект Stepper переключает фазы в следующей последовательности.
Шаг | Pin 1 | Pin 2 | Pin 3 | Pin 4 |
1 | 1 | 0 | 1 | 0 |
2 | 0 | 1 | 1 | 0 |
3 | 0 | 1 | 0 | 1 |
4 | 1 | 0 | 0 | 1 |
- Всегда включены две фазы, т.е. униполярный двигатель работает в между шаговом режиме.
- Выводам pin1, pin2, pin3, pin4 соответствуют фазы A, C, B, D.
Недостатки библиотеки Stepper.
У библиотеки Stepper есть только одно достоинство – достаточно широкий диапазон регулировки скорости. Время переключения фаз отсчитывается постоянным вызовом функции micros() и сравнением значений времени этой функции. На все остальное уже ресурсов микроконтроллера не хватает.
Недостатков у библиотеки Stepper столько, что я не знаю, как ее можно использовать в практических приложениях.
- Главный недостаток – вызов метода step() подвешивает программу. Все ресурсы тратятся на отсчет времени переключения фаз. Даже если запустить параллельный процесс через прерывание по таймеру, то он будет нарушать отсчет времени коммутации фаз. Т.е. когда двигатель крутится больше ничего в программе делать невозможно. Наверное, с помощью этой библиотеки можно сделать только вентилятор, да и то без выключателя или регулятора скорости.
- Как следствие предыдущего пункта — невозможно управлять одновременно нескольким двигателями.
- Библиотека Stepper управляет униполярным шаговым двигателем только в между шаговом режиме. А ведь есть еще шаговый и микро шаговый режимы, которые реализуются простыми программными методами и часто необходимы на практике. Биполярный двигатель может работать только в шаговом режиме.
- Невозможно остановить двигатель, пока не будут отработаны все шаги, заданные функцией step().
- При остановке двигатель находится в зафиксированном положении, через обмотки продолжает течь ток. В некоторых приложениях необходимо выключать двигатель. Выбора режима остановки двигателя в библиотеке Stepper нет.
В следующем уроке я представлю библиотеку управления шаговыми двигателями, которая свободна от этих недостатков. Управление двигателями происходит в параллельном процессе. Библиотека поддерживает все перечисленные выше режимы.
Подключение шагового двигателя 28BYJ-48-5V к Arduino. Часть 1.
В этой статье мы подключаем шаговый двигатель 28BYJ-48-5V к плате Arduino через драйвер шагового двигателя на безе микросхемы ULN2003.
Для подключения понадобится:
- Плата Arduino купить плату Arduino =>>
- Шаговый двигатель 28BYJ-48 купить шаговый двигатель RKP-28BYJ-48-5V =>>
- Драйвер для шагового двигателя купить драйвер на микросхеме ULN2003A =>>
- Коммутационные провода купить провода и шлейфы папа-мама =>>
- Источник питания для Arduino купить блок питания LJY-186 9V 1A для Arduino =>>
- Корпус для Arduino купить корпус для платы Arduino =>>
Для реализации проекта подключения необходимо установить библиотеку Stepper_28BYJ в среду разработки Ардуино IDE.
Библиотека Stepper_28BYJ это оптимальная библиотека, написанная на основе стандартной общей библиотеки Stepper являющейся частью среды Arduino IDE. Она была созданна конкретно для этого шагового двигателя 28BYJ-48-5V и учитывающая все его индивидуальные параметры.
Установить библиотеку Stepper_28BYJ в среду Arduino IDE Вам поможет статья «Установка библиотек в Arduino IDE» =>>
Сборка и подключение:
Внимание!
Для драйвера на основе микросхемы ULN2003 DARLINGTON и соответственно мотора 28BYJ-48-5V, который получает питание от драйвера рекомендуется подавать питание от внешнего источника, в нашем случае (только для осуществления программирования) коммутируем подачу питания непосредственно от контроллера Ардуино (мотор работает без нагрузки и непродолжительное время) через контакты (Vin) для (+) и (GND) для (-).
Драйвер управляется через четыре управляющих входа обозначенные как (IN1, IN2, IN3, IN4), именно к ним необходимо подключить соответственно выходы (Pin) с номерами 8 Pin, 9 Pin, 10 Pin и 11 Pin на плате контроллера Ардуино (как это показано на изображении ниже).
Схема подключения на примере платы контроллера Arduino UNO R3, модуля драйвера ULN2003 и шагового двигателя 28BYJ-48-5V.
Загружаем скетч:
Для загрузки скетча необходимо в среде разработки Ардуино IDE нажать вкладку новый проект и в открывшиеся окошко поместить скетч приведенный ниже:
Скетч, который необходимо загрузить в контроллер через среду разработки Ардуино IDE:
После загрузки скетча необходимо пересохранить новый проект под именем Stepper_28BYJ.
После сохранения он будет доступен для внесения необходимых изменений и корректировок (например, для изменения направления вращения двигателя, отмена цикличности вращения или изменения скорости вращения).
Если по каким либо причинам Вы не смогли самостоятельно разобраться в подключении или программировании шагового двигателя 28BYJ-48, обратитесь к сотрудникам магазина робототехники и мехатроники — Robot-Kit.ru.
Наш сайт: www.Robot-kit.ru
Электронная почта: mos@robot-kit.ru
У нас Вы найдете необходимую поддержку и помощь.
Как подключить электродвигатель к Arduino
Как известно, электродвигатели бывают трёх основных типов: коллекторные, шаговые и сервоприводы. В данной статье мы рассмотрим подключение коллекторного электродвигателя к Arduino с помощью драйвера двигателей на основе микросхемы L9110S или аналогичной.
Для проекта нам понадобятся:
- коллекторный электродвигатель постоянного тока или аналогичный;
- драйвер двигателя L9110S, или шилд на микросхеме L293D или аналогичный;
- шаговый двигатель 28BYJ-48 с драйвером ULN2003 или аналогичный;
- Arduino UNO или иная совместимая плата;
- соединительные провода (например, вот такой набор);
- макетная плата;
- персональный компьютер со средой разработки Arduino IDE.
1 Что такое драйвер двигателей и для чего он нужен
Максимальный ток на выводах Arduino слаб (около 50 мА) для такой мощной нагрузки как электромотор (десятки и сотни миллиампер). Поэтому напрямую к выводам Arduino подключать электродвигатель нельзя: есть риск сжечь вывод, к которому подключён двигатель. Для безопасного подключения электродвигателей разных типов к Arduino необходим самодельный или промышленно изготовленный т.н. драйвер двигателей. Драйверы двигателей бывают разные, для их работы часто используются микросхемы типа HG788, L9110S, L293D, L298N и другие. Драйверы двигателей имеют выводы подачи питания, выводы для подключения электродвигателей, а также управляющие выводы.
Различные варианты исполнения драйверов двигателей
В данной статье мы будем использовать драйвер для управления двигателями, сделанный на основе микросхемы L9110S. Обычно выпускаются платы, которые поддерживают подключение нескольких двигателей. Но для демонстрации мы обойдёмся одним.
2 Схема подключения коллекторного двигателяи драйвера двигателей к Arduino
Самые простые электродвигатели – коллекторные двигатели. У таких моторов всего два управляющих контакта. В зависимости от полярности приложенного к ним напряжения меняется направление вращения вала двигателя, а величина приложенного напряжения изменяет скорость вращения.
Давайте подключим двигатель по приложенной схеме. Питание драйвера двигателя – 5 В от Arduino, для управления скоростью вращения ротора мотора управляющие контакты подключаем к выводам Ардуино, поддерживающим ШИМ (широтно-импульсную модуляцию).
Схема подключения коллекторного двигателя к Arduino с помощью драйвера двигателей
Должно получиться что-то подобное:
Двигатель подключён к драйверу двигателей и Arduino
3 Скетч для управления коллекторным двигателем
Напишем скетч для управления коллекторным двигателем. Объявим две константы для ножек, управляющих двигателем, и одну переменную для хранения значения скорости. Будем передавать в последовательный порт значения переменной Speed и менять таким образом скорость (значением переменной) и направление вращения двигателя (знаком числа).
Загрузим скетч в память Arduino. Запустим его. Вал двигателя не вращается. Чтобы задать скорость вращения, нужно передать в последовательный порт значение от 0 до 255. Направление вращения определяется знаком числа.
Подключимся с помощью любой терминалки к порту, передадим число «100» – двигатель начнёт вращаться со средней скоростью. Если подадим «минус 100», то он начнёт вращаться с той же скоростью в противоположном направлении.
Управление электромотором с помощью драйвера двигателей и Arduino
А вот так выглядит подключение подключение коллекторного двигателя к Arduino в динамике:
4 Управление шаговым двигателем с помощью Arduino
Шаговый двигатель позволяет вращать ротор на определённый угол. Это бывает полезно, когда необходимо задать положение какому-либо механизму или его узлу. Шагом двигателя называется минимальный угол, на который можно повернуть ротор двигателя. Угол поворота и направление движения задаются в управляющей программе. Существует большое разнообазие шаговых двигателей. Рассмотрим работу с ними на примере двигателя 28BYJ-48 с драйвером ULN2003.
Шаговый двигатель с контроллером —>
Шаговый двигатель с контроллером
Характеристики двигателя 28BYJ-48:
Характеристика | Значение |
---|---|
Количество фаз | 4 |
Напряжение питания | от 5 до 12 В |
Число шагов | 64 |
Размер шага | 5,625° |
Скорость вращения | 15 об./сек |
Крутящий момент | 450 г/см |
Модуль с микросхемой драйвера для управления шаговым двигателем выглядит так:
Модуль с драйвером ULN2003
На входы IN1…IN4 подаются управляющие сигналы от Arduino. Используем любые 4 цифровых пина, например, D8…D11. На вход питания необходимо подать постоянное напряжение от 5 до 12 В. Двигателю желательно обеспечить отдельное питание. Но в данном случае, т.к. не планируется использовать двигатель на постоянной основе, можно подать питание и от Arduino. Перемычка «Вкл/выкл» просто разрывает «плюс» питания, подаваемого на драйвер. В «боевом» изделии сюда можно, например, коммутировать питание с помощью реле, когда это необходимо, чтобы снизить потребление всего изделия. Итак, схема подключения будет такой:
Схема подключения шагового двигателя с драйвером ULN2003 к Arduino
Соберём всё по схеме.
Подключение шагового двигателя 28BYJ-48 к Arduino
Для Arduino «из коробки» существует готовая библиотека для управления шаговыми двигателями. Она называется Stepper. Можно посмотреть готовые примеры в среде разработки для Arduino: File Examples Stepper. Они позволяют управлять шаговым двигателем, изменяя скорость и направление движения, поворачивать ротор на заданный угол. Как говорится – бери и пользуйся. Но давайте попробуем разобраться с принципом работы шагового двигателя самостоятельно, не применяя никаких библиотек.
Двигатель 28BYJ-48 имеет 4 фазы. Это означает, что у него имеются 4 электромагнитные катушки, которые под действием электрического тока притягивают сердечник. Если напряжение подавать на катушки поочерёдно, это заставит сердечник вращаться. Рисунок иллюстрирует данный принцип.
Схема работы шагового двигателя
Здесь на (1) напряжение подано на катушки A и D, на (2) – на A и B, (3) – B и С, (4) – C и D. Далее цикл повторяется. И таким образом ротор двигателя вращается по кругу.
Напишем самый простой скетч для уравления шаговым двигателем. В нём просто будем вращать двигатель с постоянной скоростью в одном направлении, используя только что описанный принцип.
Простейший скетч управления шаговым двигателем (разворачивается)
Как можно догадаться, задержка del определяет скорость вращения двигателя. Уменьшая или увеличивая её можно ускорять или замедлять двигатель.
Если загрузить этот скетч, то увидим, что шаговый двигатель вращается против часовой стрелки. Соответственно, можно вынести цикл вращения в одну сторону в отдельную функцию rotateCounterClockwise(). И сделать аналогичную функцию вращения в противоположную сторону rotateClockwise(), в которой фазы будут следовать в обратном порядке. Также вынесем в отдельные функции каждую из 4-х фаз чтобы избежать дублирования одинакового кода в нескольких местах программы. Теперь скетч выглядит несколько интереснее:
Скетч управления шаговым двигателем (разворачивается)
Если мы загрузим скетч и проверим, поворачивается ли ротор двигателя на целый оборот, если один раз вызвать функцию rotateClockwise(), то обнаружим, что нет. Для совершения полного оборота функцию необходимо вызвать несколько раз. Соответственно, хорошо бы добавить в качестве аргумента функции число, которое будет показывать количество раз, которые она должна выполняться.
Финальный скетч управления шаговым двигателем (разворачивается)
Вот теперь совсем другое дело! Мы можем управлять скоростью шагового двигателя, задавая задержку после каждой фазы. Мы можем менять направление движения ротора двигателя. И, наконец, мы умеем поворачивать ротор на некоторый угол. Осталось только определить, какое число необходимо передавать в функции поворота rotateClockwise() и rotateCounterClockwise(), чтобы ротор шагового двигателя 1 раз провернулся на 360° вокруг своей оси. Собственно, дальнейшие наработки – вопрос фантазии или необходимости.
Как подключить DRV8825 к arduino?
Описание драйвера, характеристики
DRV8825 — Это драйвер шагового двигателя, с током до 2.2А и возможностью делить шаги микрошагом вплоть до 1/32. Драйвер пользуется популярностью из-за того, что рассчитан на хороший ток, хорошо делит шаги и его можно легко установить в в плату RAMPS 1.4.
Питание: от 8.2в — 45в
Микрошаг: 1/2, 1/4, 1/8, 1/16, 1/32
Ток: без радиатора до 1.5А на обмотку и 2.2А с радиатором
Защита: От перегрева, от перегрузки по току
Размеры: 20 х 15 х 10 мм
Как настроить микрошаг на DRV8825
Микрошаг, на этом драйвере, выбирается путем подачи нужных напряжений на пины M0, M1, M2. Ниже я приведу таблицу напряжений для разного деления шага. На пинах должен получаться либо высокий либо низкий уровень напряжения, в частности, можно брать напряжение пинов Arduino 5v и все будет работать как надо.
Выбор большего деления шага, дает возможность увеличить разрешение движения, но точность от этого немного страдает, а так же сильно уменьшается момент двигателя.
Подключение драйвера шагового двигателя к arduino
У каждого радиолюбителя возникает тот момент, когда ему необходимо подключить к своему микроконтроллеру шаговый двигатель. Конечно, скажете вы, в «Интернетах» есть куча схем, готовых библиотек и все уже разжевано давным давно. Однако, когда я решил подключить к своей arduino nano драйвер DRV8825 и полез в интернет за схемкой, то обнаружил, что схем несколько. Если быть точным я нашел их 2.
Посмотрев несколько статей, устройств, схем, я пришел к выводу, что вторя схема правильная (нет) и растравил плату. Собрав ее, долго думал почему на двигатель не поступает питание. Я менял драйвера как перчатки, но после 4 штук подумал, что дело не может быть в драйверах. Решил подать питание так как показано на первой схеме. И о чудо! Оно живое!
Возможно, только у меня такие драйвера ( или кривые руки ), однако запустилась только первая схема, которую я теперь постоянно и использую.
Возможные проблемы при подключении DRV8825 к Arduino или другому микроконтроллеру.
- Используется не правильная схема подключения.
- Не правильно настроен ток для двигателя, иногда он выкручен на минимум по умолчанию и поэтому двигатель может не работать. Далее мы это разберем.
- Не правильная программа (скетч).
- Пины которые вы используете не подходят для программы и не могут выдавать сигнал. Например на Arduino nano пины A6,A7 вообще не могут выдавать сигнал, поэтому проверяйте пины вашего контроллера на совместимость.
Подключение DRV8825 к плате RAMPS 1.4
На фото показано каким образом необходимо ставить драйвера на плате. Перемычки микрошага находятся под самими драйверами и подписаны M0, M1, M2 (иногда ms0, ms1, ms2).
Как настроить ток на шаговом двигателе.
У каждого двигателя свой ток работы. Для того, что-бы он правильно работал, необходимо правильно ограничить ток на плате драйвера. Для этого на платах есть потенциометр.
Для начала нужно рассчитать VRef, делается это очень просто.
Current Limit = Vref * 2
Vref = Current Limit / 2
Например для шагового двигателя 17HS4401: Vref = 1,7 / 2 = 0,85В
Что-бы двигатель не перегревался часто Vref снижают.
Ставим щупы мультиметра так, как показано на картинке выше, меряем, что у нас там и крутим в ту или иную сторону для достижения нужного результата. Двигатель в этот момент будет менять свой звук работы.
Отлично! Ток настроен, а драйвер правильно подключен!
Скетч для проверки драйвера шагового двигателя
Кстати купить данный драйвер можно на Aliexpress:
Так же вы можете прочитать про подключение и настройку популярного драйвера a4988 по ссылке.