1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Arduino запуск шагового двигателя

Arduino и шаговый двигатель Nema

Теперь появилась задача поинтереснее. Управлять шаговым двигателем Nema 17 (даташит). Данная модель от оригинального производителя реализуется по цене около 40 долларов. Китайские копии стоят раза в полтора-два дешевле — около 20-30 долларов. Очень удачная модель, которая часто используется в 3D принтерах и CNC-проектах. Первая возникшая проблема — как подобрать драйвер для этого двигателя. Силы тока на пинах Arduino для питания не хватит.

Выбор драйвера для управления Nema 17

Google подсказал, что для оживления Nema 17 можно использовать драйвер A4988 от Poulou (даташит).

Кроме того, есть вариант использования микросхем L293D. Но A4988 считается более подходящим вариантом, так что на нем и остановились во избежание потенциальных проблем.

Подключение Nema 17 через A4988

Подключение было реализовано на основании этой темы на Arduino форуме. Рисунок приведен ниже.

Собственно, данная схема присутствует практически на каждом блоге-сайте, посвященном Arduino. Плата была запитана от 12 вольтового источника питания. Но двигатель не вращался. Проверили все соединения, еще раз проверили и еще раз.

Первая проблема

Наш 12 вольтовый адаптер не выдавал достаточной силы тока. В результате адаптер был заменен на 8 батареек АА. И двигатель начал вращаться! Что ж, тогда захотелось перескочить с макетной платы на прямое подключение. И тут возникла

Вторая проблема

Когда все было распаяно, двигатель опять перестал двигаться. Почему? Не понятно до сих пор. Пришлось вернуться к макетной плате. И вот тут возникла вторая проблема. Стоит предварительно было посидеть на форумах или внимательно почитать даташит. Нельзя подключать-отключать двигатель когда на контроллер подано питание! В результате контроллер A4988 благополучно сгорел.

Эта проблема была решена покупкой нового драйвера на eBay. Теперь, уже с учетом накопленного грустного опыта, Nema 17 был подключен к A4988и запущен, но.

Шаговый двигатель сильно вибрирует

Во время вращения ротора двигатель сильно вибрировал. О плавном движении не было и речи. Гугл вновь в помощь. Первая мысль — неправильное подключение обмоток. Ознакомление с даташитом шагового двигателя и несколько форумов убедили, что проблема не в этом. При неправильном подключении обмоток двигатель просто не будет работать. Решение проблемы крылось в скетче.

Программа для Arduino

Оказалось, что есть замечательная библиотека для шаговых двигателей, написанная ребятами из Adafruit. Используем библиотеку AcclStepper и шаговый двигатель начинает работать плавно, без чрезмерных вибраций.

Основные выводы

  1. Никогда не подключайте/отключайте двигатель, когда на контроллер подано питание.
  2. При выборе источника питания, обратите внимание не только на вольтаж, но и на мощность адаптера.
  3. Не расстраивайтесь, если контроллер A4988 вышел из строя. Просто закажите новый 😉
  4. Используйте библиотеку AcclStepper вместо голого кода Arduino. Шаговый двигатель с использованием этой библиотеки будет работать без лишних вибраций.

Скетчи для управления шаговым двигателем

Простой Arduino-код для проверки шагового двигателя

//простое подключение A4988

//пины reset и sleep соединены вместе

//подключите VDD к пину 3.3 В или 5 В на Arduino

//подключите GND к Arduino GND (GND рядом с VDD)

//подключите 1A и 1B к 1 катушке шагового двигателя

//подключите 2A и 2B к 2 катушке шагового двигателя

//подключите VMOT к источнику питания (9В источник питания + term)

//подключите GRD к источнику питания (9В источник питания — term)

int stp = 13; //подключите 13 пин к step

int dir = 12; //подключите 12 пин к dir

if (a 400) // вращение на 200 шагов в направлении 2

Второй код для Arduino для обеспечения плавного вращения двигателя. Используется библиотека AccelStepper library.

AccelStepper Stepper1(1,13,12); //использует пин 12 и 13 для dir и step, 1 — режим «external driver» (A4988)

int dir = 1; //используется для смены направления

Stepper1.setMaxSpeed(3000); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду)

Stepper1.setAcceleration(13000); //устанавливаем ускорение (шагов/секунду^2)

Stepper1.move(1600*dir); //устанавливает следующее перемещение на 1600 шагов (если dir равен -1 будет перемещаться -1600 -> противоположное направление)

dir = dir*(-1); //отрицательное значение dir, благодаря чему реализуется вращение в противоположном направлении

delay(1000); //задержка на 1 секунду

Stepper1.run(); //запуск шагового двигателя. Эта строка повторяется вновь и вновь для непрерывного вращения двигателя

Похожие статьи

Arduino UNO как осциллограф

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

Скачиваем программу Processing , после чего её устанавливать не нужно — она запускается с EXE-файла.

Arduino основы программирования

Здесь мы научимся писать элементарную программу способную сделать что-либо интересное для новичка. Здесь вы узнаете, как написать простейший скетч для Arduino используя стандартый IDE. Мы пока пропустим использование входов-выходов, но обратим внимание на связь через USB. Синтаксис языка Arduino точно повторяет язык C, поэтому на нем мы останавливаться не будем. Мы сконцентрируемся на конкретных аспектах Arduino языка, в котором вы можете использовать все принципы, которые присущи языку C: переменные, операторы, состояния, типы, константы и т.д.

Как работают шаговые двигатели

Использование шаговых двигателей является одним из самых простых, дешевых и легких решений для реализации систем точного позиционирования. Эти двигатели очень часто используются в различных станках ЧПУ и роботах. Сегодня я расскажу о том, как устроены шаговые двигатели и как они работают.

Подключение к ардуино датчика вращения енкодер KY-040

Енкодер вращения KY-040 — это поворотный датчик, который индицирует степень поворота оси и в каком направлении она вращается.

Это отличный прибор для контроля шаговых и серво — двигателей. Из него получится крутой орган управления менюшкой настроек контроллера. Вы также можете использовать его в качестве цифрового потенциометра.

Комплект антенн для усиления сигнала FPV для Hubsan H501S H107D

Специальный комплект для увеличения дистанции при управлении квадрокоптером Hubsan H501S H107D из магазина Алиэкспресс.

Начало работы с Arduino в Windows
Необходимое железо — Arduino и USB-кабель

В этом руководстве предполагается, что вы используете Arduino Uno, Arduino Duemilanove, Nano или Diecimila.

Вам потребуется также кабель стандарта USB (с разъемами типа USB-A и USB-B): такой, каким, к примеру, подключается USB-принтер. (Для Arduino Nano вам потребуется вместо этого кабель с разъемами А и мини-В).

Так же сейчас популярны стали платы с микро юсб — например от китайских производителей Robotdyn.Они мне больше импонируют со стороны

универсальности , но как говорят олдфаги — чем больше металла в разъеме ,тем он надежнее !

Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

1. Управляем маленькими моторчиками

Управление маленьким двигателем может быть может осуществляться довольно просто. Если двигатель достаточно маленький, он может быть непосредственно соединен с выводом Arduino, и просто изменяя уровень управляющего сигнала от логической единицы до нуля будем контролировать моторчик. Этот проект раскроет вам основную логику в управлении электродвигателем; однако, это не является стандартным способом подключения двигателей к Arduino. Мы рекомендуем, вам изучить данный способ, а затем перейти на следующую ступень — заняться управлением двигателями при помощи транзисторов.

Читать еще:  Черный нагар в двигателе причины

Подключим миниатюрный вибромоторчик к нашему Arduino.

Серводвигатель MG995 и Arduino ,подключение,распиновка + код

Серводвигатель MG995 и Arduino

Серводвигатель MG995 поставляется с проводом длиной 30 см и 3-мя ‘S’ контактами типа мама. Выходной вал сервопривода поворачивается приблизительно на 120 градусов (60 градусов в каждом направлении). Для управления сервами MG995 можно использовать любые контроллеры с питанием логики 5 В, в том числе и Arduino.

Сервомашинка изготавливается в пластиковом корпусе. На выходе стоит редуктор с металлическими шестернями. В комплекте поставляются пластиковые качалки различных форм-факторов.

Управление двигателем постоянного тока через реле с помощью ардуино

Подключаем мотор, источник питания и реле

Позитивный контакт мотора — switch 1 COM input на реле

Отрицательный контакт мотора — switch 2 COM input на реле

9v позитивный контакт на батарейке — switch 1 NO на реле и switch 2 NO на реле

9v отрицательный контакт на батарейке — switch 1 NC и switch 2 NC на реле

Модуль GSM GPRS SIM800 MicroSIM с антенной и ардуино

Миниатюрный модуль GSM/GPRS сотовой связи на основе компонента SIM800L , разработанного компанией SIMCom Wireless Solutions. Русскоязычная версия сайта SIMCom здесь. Стандартный интерфейс управления компонента SIM800L предоставляет доступ к сервисам сетей GSM/GPRS 850/900/1800/1900МГц для отправки звонков, СМС сообщений и обмена цифровыми данными GPRS. Поставляется с встроенной антенной, также можно подключить дополнительные антенны для улучшения качества сигнала.

Управлять модулем можно при помощи персонального компьютера через преобразователь интерфейса USB-UART или непосредственно через UART модулем микроконтроллера самостоятельной разработки или Arduino, Raspberry Pi и аналогичными.

Arduino запуск шагового двигателя

Пошаговая инструкция о том как своими руками собрать регулятор скорости вращения для униполярного шагового двигателя.

А именно о том как собрать электронную часть, как загрузить прошивку в управляющий микроконтроллер, как запустить все в работу и что для всего этого понадобится.

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

Самодельный димер на базе платы Arduino Nano и драйвера DRV8825

Два варианта управления биполярным шаговым двигателем, с кнопками для пуска и смены направления вращения.

Привод для жалюзи на базе Arduino UNO и шаговых двигателях 28BYJ-48 5V

Как собрать привод для жалюзи, на базе Arduino UNO и двух шаговых двигателях 28BYJ-48 5V.

К данной статье прилагаются два готовых скетча.

Управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.

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

Имеется схема и скетч, работающий без библиотек.

Автоматическая фокусировка на Arduino и Digispark с датчиком расстояния VL53L0X и драйвером DRW8825.

Статья, содержащая материалы для изучения и сборки двух вариантов привода, для автоматической фокусировки микроскопа, на Arduino UNO и Digispark

Как объединить две платы Arduino и Digispark, для совместной работы над общей задачей.

Как подключить биполярный шаговый двигатель к Arduino Uno и к Digispark.

Управление двумя униполярными шаговыми моторами по Bluetooth.

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

В качестве пульта подойдет любой ANDROID телефон с наличием Bluetooth.

Лучший эмулятор Arduino UnoArduSim V2.6. Первая серия.

Набор из 9 простых скетчей, которые использовались в этой серии.

В этой серии рассмотрены принципы работы таких модулей как: светодиод, кнопка, потенциометр, Serial порт, программный Serial порт, 4 фазный шаговый двигатель, 2 фазный шаговый двигатель и DC Motor.

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

Простой и не дорогой, регулятор скорости вращения, для униполярного шагового двигателя.

В статье есть перечень материалов, скетч, схема для сборки, и видео инструкция.

Arduino управление шаговыми двигателями по Bluetooth при помощи Android смартфона

Статья о том как написать код для электрического привода, для слайдера под видеокамеру, с управлением по Bluetooth, на базе Arduino Nano, драйверов DRV8825 и Bluetooth модуля HC-05.

Управление биполярным шаговым двигателем при помощи инкрементального энкодера

Статья о том как подключить инкрементальный энкодер EC11 к Arduino, как управлять биполярным шаговым двигателем при помощи энкодера, как проверить инкрементный энкодер, как подключить драйвер шагового двигателя drw8825 к Arduino.

Творческая мастерская Мастер Колотушкин 2021

Проекты на базе Arduino для начинающих, электронные самоделки своими руками.

Вам не нравятся шаговые моторы, да вы просто не умеете их готовить

  1. Начало изучения
  2. Первая тестовая программа — равномерное вращение
  3. Вторая тестовая программа — разгон
  4. Третья тестовая программа — подбор стартового шага
  5. Четвертая тестовая программа — подбор минимального шага
  6. Пятая тестовая программа — минимальный шаг и торможение
  7. Шестая тестовая программа — равноускоренное движение
  8. Ссылка для скачивания: Программы и схемы для тестов

В рамках проекта «Балансирующий робот» я, с целью изучения возможности использования в качестве ходовых, приобрел пару шаговых двигателей 35HM-0304A4. Планируется использовать их напрямую — без редукторов на колесных осях, что конечно накладывает на двигатели определенные ограничения.

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

Из документации при покупке ясно было только два факта: двигатель имеет активное сопротивление обмотки

26 Ом; шаг двитателя 0.9 градуса. Все остальное требовалось выяснить.

На вал двигателя уже запрессована зубчатая шестерня, мне достался экземпляр с 15 зубами. С боков имеются очень удобные ушки, для крепления к корпусу балансирующего робота, это удачная находка, я уже использовал их в 3D модели нового робота. Масса мотора около 100 гр.

Измеренные значения составили: индуктивность

0.9мГн, активное сопротивление

25 Ом. Индуктивность двигателя невелика, что возможно позволит довольно значительно его разгонять.

Управлять шаговиком я буду при помощи хорошо зарекомендовавшего себя драйвера DRV8825 на плате китайского производства. Особенностью данного драйвера является поддержка тока до 2,5A, при этом до 1.5A даже не требуется радиатор (в схеме драйвера используются полевые транзисторы).

При использовании платы изображенной ниже, максимальный ток регулируется при помощи подстроечного резистора. Головка вращения резистора металлическая и находится под напряжением (0-1.5V), измерив данное напряжение при помощи мультиметра (Головка резистора — GND) и умножив полученное значение на два, получаем максимальный ток фазы двигателя, т.е. драйвер ограничит ток каждой фазы нашего двигателя именно этим значением.

Читать еще:  Блокировка запуска двигателя кодом
Выводы на плате драйвера подписаны, но я приведу рисунок и поясню значения тех выводов, которые мы будем использовать.
  • ENABLE — ноль на данной ноге включает двигатель, т.е. если других сигналов не поступило, то вал двигателя будет жестко зафиксирован в положении близком к текущему.
  • M0,M1,M2 — настройка микрошагового режима, драйвер может работать с микрошагом до 1/32 значения от полного шага. По умолчанию, когда данные выводы не подключены, используется полный шаг, для нашего мотора это 0.9 градусов (400 шагов на оботор).
  • RESET — сброс драйвера, вместе с сигналом SLEEP будет подтянут к логической 1 — (5В).
  • SLEEP — сон драйвера, вместе с сигналом RESET будет подтянут к логической 1 — (5В).
  • STEP — по положительному фронту на данном входе (сигнал меняется с 0 на 1) двигатель начинает делать один следующий шаг.
  • DIR — направление вращения, в зависимости от того, какой логический сигнал пришел от контроллера 0 или 1 изменяется направление вращения вала шагового двигателя.
  • VMOT — напряжение питания двигателя.
  • GND — земля.
  • B2-B1, A2-A1 — согласно названию можно, да и нужно сделать вывод, что это выводы на обмотки фаз шаговика.
  • FAULT — сигнал аварии — не используется в нашем случае.
  • GND — еще один вывод земли.

Я применю китайский клон платы Arduino nANO, но не обычный клон, а довольно качественный и брутальный от robotdyn.com. Его особенность в том, что подключается он по кабелю microUSB, а не mini, как подобные. Других отличий, кроме качества изготовления платы, нет.

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

Такой стабилизатор стоит недорого, и поддеживает до 3А ток. Благодаря своей импульсной природе он слабо греется и имеет хороший до 98% коэффициент полезнго действия (КПД).

В данном экземпляре используется микросхема XL6009.

Замечу, что выходное напряжение регулируется переменным резистором, который иногда требуется довольно долго вращать для достижения результата. Я настроил выходное напряжение на значение 10.5Вольт, это значение получено экспериментально исходя из требований к работе мотора.

Схема, которую я собрал, изображена ниже. Так как запитываю всю схему от одного источника питания, соединять земли Arduino и DRV8825 не пришлось, но если источники питания разные, то следует соединить GND Arduino и GND DRV8825 отдельным проводником. На питание моторов установлен дополнительный конденсатор, его я поставил по практическим рекомендациям.

Также стоит отметить наличие диода Шоттки на положительном входе питания Arduino NANO, наличие диода защищает схему от провисания питания контроллера Arduino, когда он запитан от USB, а основная схема обесточена.

Для управления используется три сигнала: ENABLE, STEP и DIR. Они подключены к пинам D4, D3, D2 контроллера Arduino. Далее я приведу несколько программы, которые я использовал при тестировании. Пойдем от простого к сложному.

Пример test_step1 позволяет запустить мотор, он будет делать 4 оборота в одну, затем в другую сторону. Программа состоит из 2-х файлов test_step1.ino и step_motor1.h, оба должны быть расположены в каталоге test_step1.

Движение происходит равномерно, без ускорения как отрицательного так и положительного.

test_step1.ino основной файл, а step_motor1.h содержит функции по работе с шаговым мотором и константы описывающие шаговый двигатель (управление и скорость).

Файл «test_step1.ino»

Файл «step_motor1.h»

Пример test_step2 позволяет запустить мотор, он будет делать 40 оборота в одну, затем в другую сторону. Программа состоит из 2-х файлов test_step2.ino и step_motor2.h, оба должны быть расположены в каталоге test_step2.

В программе реализован разгон двигателя, но ускорение не постоянное. Торможение снижением скорости не реализовано.

Отличие от test_step1 в том, что двигатель разгоняется до определенной максимальной скорости постепенно, при остановке мотор обесточивается, что позволяет свободно вращать вал.

Файл «test_step2.ino»

Файл «step_motor2.h»

Пример test_step3 позволяет управлять величиной начального шага мотора. Программа состоит из 2-х файлов test_step3.ino и step_motor3.h, оба должны быть расположены в каталоге test_step3.

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

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

Плавное торможение в программе не реализовано.

Файл «test_step3.ino»

Файл «step_motor3.h»

Пример test_step4 позволяет управлять величиной минимального шага мотора, т.е. фактически регулировать максимальный разгон. Программа состоит из 2-х файлов test_step4.ino и step_motor4.h, оба должны быть расположены в каталоге test_step4.

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

Следует подключить контроллер arduino к компьютеру, загрузить программу, открыть монитор порта, установить в мониторе порта скорость 115200, в верхней строке для ввода данных ввести число и нажать ввод, это число будет воспринято программой как величина минимального шага. Программа запустит двигатель с величины шага 1500 микросек. (меняется в #define START_STEP_TIME 1500L ), а затем начнет пытаться наростить скорость до введенного значения, если двигатель не застопориться, значит исследуемая скорость подходит, в противном случае шаг стоит увеличить и попробовать вновью.

Плавное торможение в программе не реализовано, по этой причине двигатель может делать лишние шаги при торможении.

Файл «test_step4.ino»

Файл «step_motor4.h»

Пример test_step5 позволяет управлять величиной минимального шага мотора, т.е. фактически регулировать максимальный разгон. Программа состоит из 2-х файлов test_step5.ino и step_motor5.h, оба должны быть расположены в каталоге test_step5.

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

Следует подключить контроллер arduino к компьютеру, загрузить программу, открыть монитор порта, установить в мониторе порта скорость 115200, в верхней строке для ввода данных ввести число и нажать ввод, это число будет воспринято программой как величина минимального шага. Программа запустит двигатель с величины шага 1500 микросек. (меняется в #define START_STEP_TIME 1500L ), а затем начнет пытаться наростить скорость до введенного значения, если двигатель не застопориться, значит исследуемая скорость подходит, в противном случае шаг стоит увеличить и попробовать вновью.

Читать еще:  402 двигатель стук в моторе

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

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

Файл «test_step5.ino»

Файл «step_motor5.h»

Ниже приведена диаграмма разгона торможения шагового двигателя по программе test_step5.

После анализа test_step5, я решил попробовать реализовать программу, которая разгоняет двигатель равноускоренно. Это было реализовано в программе test_step6, а вернее в step_motor6.h.

Файл test_step6.ino существенных изменений не получил.

Значительных улучшений при равноускоренном вращении я не получил, усложнился алгоритм расчета, пришлось в связи с влиянием времени расчета на шаг, включить расчет внутрь шага, т.е. расчеты производятся во время шага, а не после. Ускорение можно менять изменяя константу #define ACCELERATION_START 6000 // Стартовое ускорение шаг/Сек2.

Управление и подключение шагового двигателя к Ардуино (Arduino)

Когда нам нужны точность и стабильность, мы выбираем шаговый двигатель — степпер. То, как спроектировано это устройство позволяет ему двигаться лишь от одного шага к следующему и фиксироваться в этом положении. Обычный степпер имеет 200 шагов на один полный переворот; если мы при этом укажем моторчику передвинуться на 100 шагов в одном направлении, то он повернётся ровно на 180 градусов. Когда мы даём команду пройти 1 шаг, степпер поворачивается ровно на 1.8 градуса.

Степперы есть в принтерах, сканерах, промышленных роботах, 3Д-принтерах и во многих устройствах, где нужна точность в движении.

Существует два типа шаговых двигателей: униполярные и биполярные.
Униполярные двигатели легко контролировать за счет низкой производительности и мощности. У биполярных шаговых двигателей намного более высокие производительность и крутящий момент, тем не менее, ими при этом и сложнее управлять. Чтобы полностью контролировать один такой движок, требуется два Н-моста. К счастью есть множество биполярных степперов, совместимых с Ардуино (Arduino) и в этой статье мы узнаем о некоторых способах управления ими.

Мы можем управлять биполярным мотором при помощи платы Arduino Motor Shield. Вот, что нам для этого потребуется:

  • Плата Ардуино, подключенная к компьютеру посредством USB
  • Модуль Arduino Motor Shield
  • Биполярный шаговый двигатель, вы можете посмотреть их на сайтах Sparkfun, Pololu, Adafruit или выдернуть из старого принтера

Вот простой метод определить тип двигателя. Четырёхкабельный степпер обычно биполярный. Если вы видите 6 кабелей, то он скорее всего униполярный, а два центральных катушечных кабеля должны быть соединены друг с другом. Есть версии с пятью проводами, что тоже говорит о том, что моторчик униполярный и два центральных катушечных кабеля уже внутренне соединены. Есть также шаговые двигатели с 8 кабелями, но они встречаются крайне редко. Они также униполярные и четыре их центральных кабеля соединены вместе.

Шаг 1: Как подключать степперы

Подключение шагового двигателя к ардуино организуется следующим образом:

  • Аккуратно установите Arduino Motor Shield поверх Ардуино, не погните пины.
  • Найдите катушки. При помощи мультиметра определите сопротивление между всеми проводами. Провода с низким сопротивлением между ними будут катушками.
  • Соедините 4 провода степпера с основным выходом клемм на Shield. Одна катушка идёт на один выход двигателя, а вторая на другой выход.

На картинке изображено как всё должно выглядеть.

Шаг 2: Код

Следующий код повернёт двигатель на 100 шагов в одном направлении и на 100 шагов в обратном.

Шаг 3: Разбор кода

В коде объявляется использование степпера, устанавливается его скорость и мотор поворачивается по команде в обоих направлениях.

На этом этапе объявляется использование степпера. Синтаксис требует указать в качестве первого параметра количество шагов двигателя, а затем пины, к которым он подключен. Нам нужно указать два пина направлений Arduino Motor Shield, они указывают, в котором направлении будут возбуждаться катушки:

В обычном управлении шаговым двигателем постоянного тока в Motor Shield, два пина PWM определяют, какую мощность мы направляем на каждый моторчик. Тем не менее, так как мы работаем со степпером, мы хотим использовать его на полную мощность, поэтому мы упростим задачу и напрямую зададим пинам PWM постоянное состояние HIGH:

Еще одним важным шагом является определение скорости, на которой мы хотим, чтобы мотор вращался. Если, например, мы устанавливаем скорость на 60 оборотов в минуту, как в нашем случае, а у мотора 200 шагов, то у него займёт около 5 миллисекунд для того, чтобы пройти 1 шаг. Скорость моторчика можно поменять в любое время:

И, наконец, чтобы заставить моторчик двигаться, мы должны отправить команду с количеством шагов, которое он должен пройти. Если мы отправим отрицательное число шагов, он будет двигаться в обратном направлении. Заметьте, что функция step() остановит выполнение программы, пока моторчик не повернётся до конца. Если, к примеру, мы задали 200 шагов на скорости 1 оборот в минуту, то пройдёт ровно 1 минута перед тем, как Ардуино продолжит выполнять код программы.

Ардуино ожидает, что степпер движется, в то время как он отдаёт ему эту команду. У степпера нет обратной связи, поэтому если мы зажмём штифт моторчика, Ардуино всё же будет думать, что он вращается, в то время как на самом деле моторчик стоит на месте.

Шаг 4: Больше информации о степперах

Шаговые двигатели отличаются от обычных двигателей постоянного тока тем, что вместо того, чтобы просто вращаться, они двигаются маленькими интервалами в определённом направлении. Эти маленькие интервалы называются шагами. Мы можем приказать степперу продвинуться на 1 или более шагов в конкретном направлении. Они не всегда быстры, но зато очень точны и имеют определённый крутящий момент. Например, блок подачи бумаги в принтере содержит степпер. 3Д-принтеры и ЧПУ также содержат степперы ввиду их высокой точности и стабильности.

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

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты