Шаговый двигатель ардуино как работает - Авто журнал kupim-avto57.ru
26 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Драйвер шагового двигателя A4988. Распиновка, подключение к Ардуино

в Ардуино 0 2,006 Просмотров

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

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

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

Как работает шаговый двигатель?

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

Шаговые двигатели могут поворачиваться на определенное количество градусов (или шагов) по вашему желанию. Это дает вам полный контроль над двигателем, позволяя перемещать его в точное место и сохранять это положение. Это достигается за счет питания катушек внутри двигателя на очень короткие периоды времени. Обратной стороной является то, что вы должны приводить двигатель в действие во время его работы.держите его в желаемом положении.

На данный момент все, что вам нужно знать, это то, что для того, чтобы двигать шаговый двигатель, вы говорите ему сделать определенное количество шагов в одном или другом направлении и сообщаете ему скорость, с которой он должен идти. в этом направлении. Есть много разновидностей шаговых двигателей. Описанные здесь методы можно использовать для вывода о том, как использовать другие движки и драйверы, не упомянутые в этом руководстве. Тем не менее, всегда рекомендуется обращаться к спецификациям и руководствам для двигателей и драйверов, специфичных для ваших моделей.

Работа схемы

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

Мы использовали шаговый двигатель 28BYJ-48 и драйвер мотора ULN2003. Для подачи питания на 4 катушки шагового двигателя мы будем использовать контакты платы Arduino 8, 9, 10 и 11. Драйвер мотора запитывается от контакта 5V платы Arduino.

Но если вы будете подсоединять какую-нибудь нагрузку к шаговому двигателю, то вам потребуется внешний источник питания для драйвера мотора. Мы в нашем примере эксплуатируем шаговый двигатель без нагрузки, поэтому нам и хватило питания от платы Arduino. И не забудьте соединить землю платы Arduino с землей драйвера мотора.

Работа шагового двигателя и описание драйвера

Как работает шаговик?

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

Мы же с вами рассмотрим конкретный двигатель 28BYj-48 с драйвером управления ULN2003 . Он достаточно дешёвый, прост в сборке и легко писать программу.

В 4-шаговом режиме он может совершать 2048 шагов, в 8-шаговом 4096 шагов. Питание 5 В, ток потребления 160 мА. Передаточное число 1:64 , то есть один шаг он совершит на 5,625 градусов. Крутящий момент составляет 34 мН.м. Средняя скорость 15 об/мин, с помощью программного кода можно ускорить до 35 об/мин, но вы должны понимать, что мы при этом теряем мощность и точность.

Размеры двигателя указаны из первоисточника — даташита производителя Kiatronics.

А вот таким образом он выглядит изнутри:

Для небольших технических проектов — 28BYj-48 идеальный вариант. Его главным преимуществом является дешевизна и простота. Прилагаю спецификацию:

8-шаговая управляющая сигнальная последовательность 5.625º/шаг

ШД имеет четыре обмотки, которые запитываются последовательно:

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

1.Шаговый режим — это когда две из четырех обмоток запитываются на каждом шаге. Смотрите карту включения обмоток: Для этого способа используется библиотека my Stepper.h.

ПроводФазы для шагового режима
1234
4 оранжевый
3 желтый
2 розовый
1 синий

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

ПроводФазы для полушагового режима
12345678
4 оранжевый
3 желтый
2 розовый
1 синий

Описание драйвера ULN2003

Плата представляет собой силовой модуль, который содержит в себе семь независимых транзисторов Дарлингтона. Каждая пара представляет собой каскад из двух биполярных транзисторов. ULN2003 является неким усилителем с током нагрузки 500 мА и напряжением 50 В. На изображении отображена сама плата и описание выводов к ней.

Читать еще:  Давление масла в двигателе филдер

Управляющие входы IN1,IN2,IN3,IN4 подключаются к любым дискретным выводам Arduino Uno. Если кому интересно, можете прочитать статью здесь . Светодиоды отображают, какой шаг совершил двигатель. Выводы для подключения внешнего источника питания. Рекомендую запитывать отдельной батареей, так как нагрузка может возрастать до 1 А. Только не забудьте переставить джампер на внешнее питание двигателя.

Процесс подключения

Сборка схемы сложностей не представляет, поэтому доступна любителю. Необходимы базовые знания в области электротехники, умение работать с ПК на пользовательском уровне и внимательность при написании скетчей. Макетная плата позволит обойтись без паяльника, припоя и канифоли.

Что понадобится

Для сборки схемы требуются следующие компоненты:

  1. Шаговый коллекторный двигатель.
  2. Плата Arduino. Начинающим подойдет модель UNO.
  3. Макетная плата.
  4. Диоды, транзисторы, резисторы, потенциометр.
  5. Перемычки и провода.
  6. «Мотор шилд» (Motor Shield) — дополнительная плата расширения для управления двигателем постоянного тока, она же регулятор оборотов.
  7. Вместо Motor Shield можно применить драйверы L298N, ULN2003 или L293D.
  8. Блок питания постоянного тока.
  9. Кабель USB для соединения с компьютером и загрузки скетчей.

На рынке предлагают готовые наборы (включают пп. 2-5).

Пошаговая инструкция

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

  1. Подготовить скетч для управления мотором.
  2. Шилд управления двигателем или драйвер разместить сверху платы Arduino UNO.
  3. Проверить и при необходимости установить перемычки на плате расширения следующим образом: H1 соединяется с 4-м пином, E1 — с 5-м, E2 — с 6-м и H2 — с 7-м пином. Пины 5 и 6 должны поддерживать ШИМ (широтно-импульсную модуляцию).
  4. Подготовить блок для питания шилда постоянным током.
  5. Подать постоянный ток на контакты «+» и «-» платы расширения.
  6. Питание мотора подключить к контактам PWR на плате расширения.
  7. Соединить «Ардуино» кабелем USB с ПК и загрузить скетч.

Скетчи можно писать с применением библиотеки Stepper.h или AccelStepper.h. Плата Arduino UNO подходит для работы в режиме широтно-импульсной модуляции. В этом случае в блоке loop используют команды analogWrite и analogRead.

Управление шаговым двигателем с помощью Arduino

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

Многие из вас знакомы с маленькими моторчиками, из которых исходят всего 2 провода, они часто встречаются в детских игрушках, например, в машинках.

Это коллекторные электродвигатели постоянного тока. Они могут напрямую подключатся к источнику питания и будут всегда вращаться с постоянной скоростью, в зависимости от подаваемого напряжения. Если необходимо изменить направление вращения, то на нашем моторе нужно просто поменять местами «+» и «-» и он сразу начнёт крутиться в другую сторону. За счёт их простой конструкции, они имеют небольшую стоимость и простоту в управлении.

Но есть ещё один из распространенных типов двигателей — это шаговые электродвигатели.

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

Вот так выглядит шаговый электродвигатель с винтовым валом из оптического привода:

Как видно — здесь уже больше, чем 2 провода и напрямую подключить такой мотор к источнику питания просто так не получиться из-за совсем другой конструкции самого двигателя. Если для нашего первого моторчика достаточно было подать «+» и «-» на соответственные клемы и он начинал вращаться, то для шагового электродвигателя нужно подавать цифровые электронные сигналы управления, которые будут сообщать двигателю на сколько и в какую сторону ему необходимо вращаться. Это возможно осуществить с помощью устройства, которое будет генерировать и отправлять эти сигналы на драйвер, а он, в свою очередь, напрямую управлять обмотками двигателя.

Мы рассмотрим пример, как подключить шаговый электродвигатель к Arduino Mega 2560 — именно оно и будет тем устройством, которое генерирует нужные электронные сигналы управления.

Я взял мотор формата Nema 17 — это гибридный шаговый двигатель, который часто встречается в 3Д принтерах, ЧПУ системах, робототехнике и т.д.

Фото двигателя в разрезе:

Драйвер на микросхеме TB6600 — это довольно неплохой контроллер, который можно использовать с двигателями до 4.5 А, 50 В. Для домашних 3Д принтеров и ЧПУ систем его полностью достаточно.

Чтобы драйвер работал, необходим внешний источник питания с напряжением 8-50 В (рекомендуется 36 В). Именно с него наш двигатель будет получать энергию для своей работы. А логические сигналы Dir — направление вращения и Pulse — сигнал шага, драйвер будет получать от ардуино.

Читать еще:  Что такое тпс в двигателях

У данного двигателя 4 обмотки: A+, A-, B+, B-, их нужно соединить с соответствующими выходами на плате драйвера.

Для управления шаговым двигателем можно использовать различные библиотеки, которые упрощают жизнь, если необходимо как-то динамически управлять двигателем, например «AccelStepper» и тому подобные. Также есть различные программные комплексы для управления 3Д принтерами или ЧПУ станками.

Мы же рассмотрим простой пример вращения двигателя с постоянной скоростью, который не сложно будет повторить всем желающим. Также, так ещё удобно проверять общее состояние двигателя.

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

Примерно так всё работает:

P.S. Сильно в теорию я не вдавался, потому что на это нужен не один пост, да и не всем она понравится 🙂

Дубликаты не найдены

Arduino & Pi

1K постов 17.9K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте — используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

P.S. Сильно в теорию я не вдавался, потому что на это нужен не один пост, да и не всем она понравится 🙂

Почему хотя бы не рассказать об отличиях униполярного от биполярного двигателя? Почему не привести схему модуля(хотя бы из даташита на микросхему)?
Ладно упущен режим микрошага, но основу то можно было скопипастить написать.
Зачем было использовать ардуину? Много нагляднее было бы пару кнопок повесить.

Спасибо за совет, в будущем буду стараться поместить всё в один пост.

Зачем было использовать ардуину? Много нагляднее было бы пару кнопок повесить.

Не совсем понял вопрос

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

Точно, две обмотки А и Б, соответственно + и — на каждой обмотке.

Спасибо, что нашёл ошибку, она как-то автоматически получилась — вижу четыре буквы на плате — пишу, что четыре обмотки)

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

Автор показывает, как быстро и равномерно крутится шаговый двигатель. Ясно. Понятно. Тема раскрыта на 10 из 10.

Ребят, вижу тут есть знающие люди.
Собираю фотопиццу (мало ли кто знаком), не крутит шаговый двигатель, бывает после танцев с бубном крутит, но очень странно (не по программе).

Драйвер шагового двигателя менял — не помогло

В чем может быть проблема?

а будет электрическая схема? =) мотор гудит когда не крутится?

Нет, он может включаться раза с 5-6, тогда и гудит и крутит (херово но крутит), как будто где-то плохой контакт, хотя менял провода, прозванивал — все в порядке.
По этой схеме делал, только у меня шиелд а тут просто экран.

@BesttseB, проверь код, а именно повнимательнее, где задается частота импульсов. Возможно слишком большая частота импульсов, движок просто ахреневает. Попробуй отдельно протетстить шаговик+МК+твой код, без обвеса. У меня было, что движок сначала разгонялся, потом из-за большой частоты стопорился и когда уменьшалась, то он снова продолжал крутиться.

а обязательно покупать эту здоровую мандулу? DRV8825 прекрасно справляется с шаговиками до NEMA17 включительно и стоит в несколько раз дешевле + под них на ардуины есть такиеже дешманские шилды — например ардуино 2560 + шилд + 5 драйверов = 1050рублей на али

4988 не то, чтобы хуже, но в DRV8825 можно микрошаг поменьше поставить(актуально для станков с ременнойзубчатой передачей и 3D принтеров) и, как мне кажется, на DRV8825 шаговики звучат благороднее =)

Не конечно, для каждой цели целесообразен тот или иной драйвер. Просто у меня был в наличии только этого формата (остался после ЧПУ системы: https://youtu.be/N3xBpIMORf4 )

а можно статью про то, как с компа управлять этим всем. желательно с кодом.

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

Serial гугли. С компа посылаешь строку на ардуину, она разбирает её и выполняет команду по аргументам.

а с компа в зависимости от языка просто посылаешь в серийный порт строку.

Аргументы придумать не сложно.

Можно заморочиться с wi-fi или ethernet shield, там поднять веб-сервер и из браузера делать запросы. Например, NodeMCU умеет из коробки это, т.к. на ней встроен в-ф

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

Читать еще:  Чем отличаются двигатели вертолетов

хотя бы схему шаговика в пэинте нарисовали, авось сами разобрались бы, как он работает.

Похоже, этим драйвером мотор от сидюка не запустишь — напряжение слишком высокое. У мотора +5в, а питание драйвера от 8 в начинается.

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

. ну т.е. у меня на одном таком движке было по маркировке до 38V и 3А максимальная подача (оптимальное 12V & 1.5A), где то около 30V&3A подавал. Как бы я не крепил это сверло, болтами, суперклеем, и тем и тем, эпоксидкой также вместе взятой и т.д. и т.п. в т.ч. и резал/сверлил это чертову маленькую ось, чтоб хоть как в неё вцепиться (по сути надо было его в таком режиме использовать весьма недолго, так что должно было быть норм), всё срывало! . если застревало хоть в мало-мальски не протачиваемом проёме, т.к. крутилось бешено, то даже небольшое торможение со временем всё равно давало срыв и приходилось монтажить заново. Да конечно я и искал напряжение оптимальное, но это либо получалось дико долгое сверление, которое добивало, либо срывало.

Вот как вы за такую ось цепляетесь нормально? . такая ж мелкая сволочь.

..Эпоксидка блин, ну ты даёшь)

ааа оказывается это цангой называется) а я её получается самодельную делал из болтов, еще и моментов поверх заливал, тоже срывало (

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

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

Есть ещё один вариант — запрессовка шестерней.

Держит намертво, промышленный стандарт

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

2)посадочное место (щлиц на валу)

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

Но это хорошо, когда еще ось хоть как то нормально торчит, а есть у меня еще одно, даже для меня, исключение (вот там прям с кулак моторчики были) мелочь 2,5-3 см с осью на 1,2 в диаметре убийца до 50 вольт можно подрубать — это жесть! Я на обычные по 20 вольт выставляю и потом руки трясутся после них (ну бывает в руках держишь тестируешь, что будет если зажать шестеренку или еще что или тупо смотришь на его работу, зависнешь или любуешься или и то и то:D). А на того зверя дал 50 вольт, да у меня чуть зубы не повыпадали! 😀

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

Сказать, что я офигел, это ничего не сказать. После такого я положил его подальше и решил использовать только в реально экстренных случаях)

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