Шаговый двигатель ардуино как работает
Урок 2. Как подключить A4988 (DRV8825) к Arduino? Скетч, библиотека.
Сегодня в уроке подключим драйвер шагового двигателя A4988 (DRV8825) к Arduino. Рассмотрим самый простой скетч (код,) который позволит вращать шаговым двигателем по часовой и против часовой стрелке.
Что такое шаговый двигатель? Описание драйвера шагового двигателя A4988 и описание драйвера шагового двигателя DRV8825, а также много другой полезной информации по ЧПУ станкам и 3D принтерам, вы сможете найти на моем втором сайте ЧПУ технологии (CNC-tex.ru).
Схема подключения драйвера шагового двигателя A4988 (DRV8825).
Для тех, кому лень сходить на мой второй сайт по ЧПУ станкам, выкладываю схемы подключения драйверов A4988 (DRV8825) к Arduino.
Драйвер шагового двигателя A4988 можно подключить к микроконтроллеру Arduino напрямую вот по такой схеме.
Драйвер шагового двигателя DRV8825 можно подключить к микроконтроллеру Arduino напрямую вот по такой схеме.
Внимание! Для корректной работы шагового двигателя для драйвера необходимо настроить ток. Как рассчитать ток для драйвера A4988 читайте тут, для драйвера DRV8825 читайте тут. Также при необходимости установите радиатор охлаждения драйвера.
Подключение драйвера шагового двигателя A4988 и DRV8825 с помощью модуля.
Для облегчения подключения драйверов к Arduino существуют специальные модули, которые помогут без лишних усилий и пайки подключить драйвер A4988 или DRV8825. Подробнее о модулях для подключения драйвера A4988 и DRV8825 читайте тут. Подробно останавливаться на типах модулей и особенностях подключения не буду.
Внимание! При установке драйвера на модуль будьте осторожны.Драйвер может сгореть, если не правильно установить его на модуль.
С подключением определились, пора перейти к коду, который позволит управлять шаговым двигателем.
Код для Arduino и A4988 (DRV8825),который позволяет вращать шаговым двигателем без библиотеки.
Следующий код даст представление о том, как управлять скоростью и направлением вращения биполярного шагового двигателя с помощью драйвера шагового двигателя A4988. Данный скетч может служить основой для более интересных экспериментов и проектов на Arduino.
Пояснение к коду:
Скетч начинается с определения выводов Arduino, к которым подключены выводы STEP и DIR драйвера A4988. Здесь также определяем stepsPerRevolution – количество шагов на оборот. Установите данное значение в соответствии со спецификациями шагового двигателя 200 (поскольку NEMA 17 делает 200 шагов за оборот).
В разделе настройки кода setup(), все контакты управления двигателем объявлены как цифровой выход ( OUTPUT ).
В основном цикле loop() будем медленно вращать двигатель по часовой стрелке, а затем быстро вращать его против часовой стрелки, с интервалом в секунду.
Управление направлением вращения.
Для управления направлением вращения двигателя мы устанавливаем контакт DIR на высокий уровень HIGH, или низкий LOW. При значении HIGH — вращает двигатель по часовой стрелке, а LOW — против часовой стрелки.
Управление скоростью шагового двигателя.
Скорость двигателя определяется частотой импульсов, которые мы посылаем на вывод STEP . Чем чаше импульсы, тем быстрее работает двигатель. Импульсы — это не что иное, как подтягивание выхода к высокому уровню HIGH , некоторое ожидание, затем подтягивание его к низкому уровню LOW и снова ожидание. Изменяя задержку между двумя импульсами, вы изменяете частоту импульсов и следовательно, скорость вращения двигателя.
Код для Arduino управления драйвером A4988 (DRV8825)с использованием библиотеки AccelStepper.
Управление шаговым двигателем без библиотеки идеально подходит для простых проектов на Arduino с одним двигателем. Но если вы хотите управлять несколькими шаговыми двигателями, вам понадобится библиотека. Итак, для нашего следующего примера будем использовать библиотеку шаговых двигателей под названием AccelStepper library.
AccelStepper library поддерживает.
Ускорение и замедление. Несколько одновременных шаговых двигателей с независимыми одновременными шагами на каждом шаговом двигателе. Эта библиотека не включена в IDE Arduino, поэтому вам необходимо сначала установить ее.
Установка библиотеки AccelStepper.
Чтобы установить библиотеку, перейдите в «Скетч» -> «Подключить библиотеку» -> «Управление» библиотеками. Подождите, пока диспетчер библиотек загрузит индекс библиотек и обновит список установленных библиотек.
Отфильтруйте свой поиск, набрав «Accelstepper». Щелкните первую запись и выберите «Установка».
Код Arduino с использованием библиотеки AccelStepper.
Вот простой пример, который ускоряет шаговый двигатель в одном направлении, а затем замедляется до полной остановки. Как только двигатель делает один оборот, меняет направление вращения. Данный цикл повторяется снова и снова.
Пояснение к коду:
Подключаем библиотеку AccelStepper.
Дальше определяем выводы Arduino, к которым подключаются выводы STEP и DIR A4988. Мы также устанавливаем motorInterfaceType на 1. (1 означает внешний шаговый драйвер с выводами Step и Direction).
Затем мы создаем экземпляр библиотеки под названием myStepper .
В функции настройки мы сначала устанавливаем максимальную скорость двигателя равной тысяче. Затем мы устанавливаем коэффициент ускорения для двигателя, чтобы добавить ускорение и замедление к движениям шагового двигателя. Дальше устанавливаем обычную скорость 200 и количество шагов, которое мы собираемся переместить, например, 200 (поскольку NEMA 17 делает 200 шагов за оборот).
В основном цикле loop() используем оператор if , чтобы проверить, как далеко двигателю нужно проехать (путем чтения свойства distanceToGo ), пока он не достигнет целевой позиции (установленной moveTo ). Как только distanceToGo достигнет нуля, поменяем направление вращения двигателя в противоположном направлении, изменив значение moveTo на отрицательное по отношению к его текущему значению. Теперь вы заметите, что в конце цикла мы вызвали функцию run () . Это самая важная функция, потому что шаговый двигатель не будет работать, пока эта функция не будет выполнена.
Это небольшой пример использования библиотеки AccelStepper. В следующем уроке подробнее рассмотрим данную библиотеку и сделаем пару классных примеров использования шаговых двигателей в Arduino проектах.
Понравился Урок 2. Как подключить A4988 (DRV8825) к Arduino? Скетч, библиотека? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Digitrode
цифровая электроника вычислительная техника встраиваемые системы
- Вычислительная техника
- Микроконтроллеры микропроцессоры
- ПЛИС
- Мини-ПК
- Силовая электроника
- Датчики
- Интерфейсы
- Теория
- Программирование
- ТАУ и ЦОС
- Перспективные технологии
- 3D печать
- Робототехника
- Искусственный интеллект
- Криптовалюты
Чтение RSS
Управляем шаговым двигателем с помощью Arduino и драйвера DRV8825
Шаговый двигатель – это тип двигателя постоянного тока, который работает дискретно и используется повсеместно, от камеры наблюдения до сложных роботов и машин. Шаговый двигатель NEMA 17 имеет угол шага 1,8°, что означает, что для поворота на 360 ° потребуется 200 шагов. Изменяя скорость подачи управляющего сигнала, мы можем легко контролировать скорость двигателя. Шаговый двигатель может работать в различных пошаговых режимах, таких как полный шаг, полшага, ¼ шаг путем применения соответствующих логических уровней к контактам шагового модуля. В нашем предыдущем проекте мы контролировали шаговый двигатель 28-BYJ48 с помощью Arduino. 28-BYJ48 имеет относительно более низкий крутящий момент, чем другие шаговые двигатели, такие как NEMA 14, NEMA17.
В этом проекте мы собираемся управлять шаговым двигателем NEMA 17 с помощью Arduino и шагового модуля DRV8825. Мы также будем использовать потенциометр для управления направлением шагового двигателя, чтобы вращать его по часовой стрелке и против часовой стрелки.
Модуль шагового привода или драйвер контролирует работу шагового двигателя. Драйверы шагового двигателя посылают ток на шаговый двигатель через различные фазы. DRV8825 – это модуль микрошагового драйвера, аналогичный модулю A4988. Используется для управления биполярными шаговыми двигателями. Этот модуль управления шаговым двигателем Nema 17 имеет встроенный транслятор, который означает, что он может управлять как скоростью, так и направлением биполярного шагового двигателя, такого как NEMA 17, используя только два контакта, то есть STEP и DIR. Вывод STEP используется для управления шагами, а вывод DIR – для управления направлением вращения.
Драйвер двигателя Nema 17 DRV8825 имеет максимальную выходную мощность 45 В и ± 2,2А. Этот драйвер может управлять шаговым двигателем в шести различных пошаговых режимах, то есть с полным шагом, полушагом, четвертьшагом, одной восьмой шага, одной шестнадцатой шага и одной тридцать второй шага. Вы можете изменить разрешение шага, используя линии микрошага (M0, M1 и M2). Установив соответствующие логические уровни для этих контактов, мы можем установить двигатели на одно из шести шагов разрешения.
Схема подключения шагового двигателя NEMA 17, Arduino, DRV8825 и сопутствующих компонентов приведена на следующем изображении.
Питание шагового двигателя осуществляется от источника питания 12 В, а модуль DRV8825 получает питание от Arduino. Контакты RST и SLEEP оба подключены к 5V от Arduino, чтобы драйвер оставался включенным. Потенциометр подключен к выводу A0 Arduino; он используется для управления направлением двигателя. Если вы поворачиваете потенциометр по часовой стрелке, то шаговый двигатель будет вращаться по часовой стрелке, а если вы поворачиваете потенциометр против часовой стрелки, то он будет вращаться против часовой стрелки. Конденсатор 47 мкФ используется для защиты платы от скачков напряжения. Выводы M0, M1 и M2 оставлены отсоединенными, это означает, что драйвер будет работать в режиме полного шага.
Перед использованием двигателя измените ограничение тока модуля DRV8825 на 350 мА с помощью потенциометра ограничения тока. Вы можете измерить текущий предел с помощью мультиметра. Измерьте ток между двумя точками заземления и потенциометром и отрегулируйте его до требуемого значения.
Полный код для управления Nema 17 с помощью Arduino приведен далее.
ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ
Блог технической поддержки моих разработок
Урок 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 нет.
В следующем уроке я представлю библиотеку управления шаговыми двигателями, которая свободна от этих недостатков. Управление двигателями происходит в параллельном процессе. Библиотека поддерживает все перечисленные выше режимы.
Arduino шагового
Я строю систему с Arduino Uno , силовым щитом ( REf для моделирования ) и биполярным шаговым двигателем.
Я не могу запустить двигатель с помощью шаговой библиотеки из Arduino. Я создаю экземпляр своего степпера с помощью
И продолжайте использовать пример кода, поставляемый вместе с Arduino.
Когда я запускаю код на Arduino, двигатель издает некоторые звуки, но он не поворачивается.
Как можно определить правильные штифты двигателя для использования? На силовом щите, какой режим следует использовать, PWM или PLL ?
7 ответов
- Arduino петля шагового двигателя странное поведение
Я использую шаговый двигатель с моим Arduino, и чтобы повернуть его по часовой стрелке, я сделал функцию, которая включает напряжение проводов по одному за раз. Это работает, однако когда я помещаю функцию в цикл, она не работает. Код таков: void setup() < pinMode(13, OUTPUT); pinMode(12, OUTPUT);.
Я работаю над принтером ручной работы 3D. У меня есть две части биполярного шагового двигателя Nema — 11 для моего проекта, и я хочу подключить его непосредственно к вертикальному кривошипу, как показано на рисунке. (Нет никакого дополнительного элемента, такого как шаговый шкив) Эти степперы.
Как вы предполагаете, экран двигателя adafruit должен соответствовать библиотеке шаговых двигателей arduino, так как он использует L293D для привода двигателя. Он может управлять 2 шаговыми двигателями с током 0.6A (хорошо подходит для большинства маленьких шаговых устройств, которые вы можете найти в принтерах, floppy/CD/DVD reader. ).
Будьте осторожны, они, похоже, используют свою собственную библиотеку для этого щита, вы можете найти ее здесь :
И чтобы узнать, как подключить ваш степпер, посмотрите здесь :
Извините, что отвечаю на ваш комментарий таким образом, но у меня недостаточно репутации, чтобы комментировать. поэтому, пожалуйста, +1 мой ответ, если вы считаете, что это хороший ответ 🙂
Это нормально, что эскиз arduino не работает. Он приводит двигатель в движение вот так:
- PIN1 : катушка 1, прямой ток
- PIN2 : катушка 1, обратный ток
- PIN3 : катушка 2, прямой ток
- PIN4 : катушка 2, обратный ток
Ваш щит управляет степпером таким образом:
- PIN1 : ток вперед/назад
- PIN2 : сила тока с PWM
- PIN3 : сила тока с PWM
- PIN4 : ток вперед/назад
Не очень хорошая идея управлять шаговым двигателем, так как вам даже не нужно PWM, чтобы управлять шаговым двигателем. Это для привода двигателя DC. Вы можете написать свой собственный эскиз, чтобы управлять степпером с этим щитом, но вы должны найти щит, который подходит для arduino, чтобы управлять степпером. Поищите что-нибудь вроде » шагового модуля UL2003 «, он стоит несколько долларов.
Edit: У меня есть один из этих модулей, и он работает как заклинание. Будьте осторожны с энергией, которая вам нужна. Может быть, вам нужно что-то вроде модуля L298N . У меня их тоже немного, и они отлично работают.
В шаговом двигателе сколько у вас проводов? 4 или 6.
Ваше соединение неисправно. Вот почему он издает такой звук.
Тест с помощью мультиметра. вы обнаружите, что два провода дают высокое сопротивление. двое других отдают половину от этого. Соедините первые два с драйвером двигателя out1 и вторые два с out2.
Вы не упомянули, какой драйвер двигателя вы используете. Попробуйте использовать экран драйвера двигателя L298.
- Невозможно выполнить data binding внутри шагового компонента
У меня есть 2 поля ввода под названием Course name (компонент автозаполнения) и Price (компонент ввода): При выборе конкретного Course name price отображался в соответствии с Course name следующим образом: Теперь я поместил эти два поля ввода (например, название курса и цену) внутри шагового.
Я строю небольшой проект по перемещению шагового двигателя в зависимости от времени, когда человек держит переключатель нажатым, и чем дольше это время, тем выше скорость. Код, который я использую, увеличивает скорость, и я могу видеть его на последовательном мониторе, но шаговый двигатель не.
Проблема, по-видимому, заключается в неправильном подключении контактов двигателя. Вы уверены, что подключаете истинные обмотки к двигателю? Измерьте контакты двигателя омметром. Должно быть две обмотки, которые имеют контакты A1-A2 и B1-B2. Между этими контактами вы должны увидеть некоторое значение сопротивления. Затем убедитесь, что вы подключаетесь к щиту в правильном порядке.
Я думаю, что проблема, с которой вы столкнулись, связана с типом щита, который вы пытаетесь использовать. Щит питания, который вы связали, предназначен для двигателей DC, и вы пытаетесь использовать шаговый двигатель (объяснение разницы см. На этом веб-сайте).
Я бы рекомендовал попробовать другой экран (например, Sparkfun EasyDriver ), который поддерживает использование шагового двигателя.
Если мотор издает какой-то звук, это хорошая новость. По крайней мере, у вас есть контакт с ним. Поскольку это просто звук, но никакого движения, под этим поведением могут скрываться три вещи;
- Неправильные штыревые соединения двигателя
- Недостаточная подача тока от драйвера двигателя.
- Количество шагов, определяемое кодом с использованием PWM, может быть слишком меньшим или слишком высоким в зависимости от того, с чем может справиться двигатель.
Я могу предложить эту ссылку URL для определения выводов двигателя;
В проектах mi я использую биполярный двигатель (nema17), и вы можете легко управлять им с помощью A4988 pololu (или drv8825, более мощный и более дорогой). Эти драйверы имеют мост H внутри и позволяют управлять двигателем простым:
Похожие вопросы:
Мне интересно, какова сложность функции шагового среза в Tensorflow. Очевидно, что это не так вычислительно интенсивно, как свертка 2D, но и не бесплатно. Я даже не уверен, что говорить о сложности.
Привет, я совсем новичок в Arduino и электронике, так что потерпите меня. У меня есть проект по управлению шаговым двигателем с помощью Matlab и Simulink. А сейчас я просто хочу запустить эту штуку.
Я работаю над кодом Python (ниже), который ускоряет шаговый двигатель до тех пор, пока он не достигнет определенного количества шагов. for s in range (steps): if s