Простой тестер униполярных шаговых двигателей на attiny2313 и uln2004

Содержание

AVR Урок 18. Подключаем шаговый двигатель. Часть 1

Урок 18

Подключаем шаговый двигатель

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

Шаговые двигатели – это такие двигатели, которые посредством подачи напряжения на определённую обмотку переводят свой ротор в определённое место, тем самым достигается более точное управление угловой скоростью. Можно также, в принципе, управлять и положением ротора, но это уже как-то больше сервоприводы, с которыми, мы, возможно, тоже, когда-то столкнёмся.

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

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

Мне в руки попался именно вот такой вот шаговый двигатель 28-BJ48 компании Kiatronics

Питается данный двигатель от 5 вольт, питание подается попеременно на различные обмотки, которых 4, и если питание снимается с одной обмотки и подается на другую, то ротор. соответственно. устраемляется к ней.

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

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

Данный модуль представляем собой микросхему ULN2003. Можно использовать ее не только для двигателей. Но мы будем использовать здесь 4 входа и 4 выхода, так как у нашего двигателя 4 провода. каждый из которых подключен к определённой обмотке, а пятый провод является общим. Подключенный таким образом мотор уже не влияет на ножки портов, у которых ограничен максимальный ток и можно уже ничего не бояться на этот счёт. При подключении к ножкам контроллера мы используем входы модуля IN1, IN2, IN3 и IN4, а разъём двигателя просто соединим с разъёмом модуля.

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

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

Данные обмотки потом по кругу так циклически и повторяются.

Теперь рассмотрим возможные режимы управления с помощью логических уровней.

1 режим – этот простейший режим, при котором мы по очереди подаём логические единицы или высокие логические уровни на каждую обмотку. Называется он также полношаговый режим или One Phase Step Mode.

Схематично данный режим можно изобразить таким образом

Существует также ещё один интересный режим – это режим когда ротор будет шагать между обмотками, то есть мы единички будем подавать на 2 соседние обмотки

А также есть ещё и третий решим – это полушаговый режим, когда мы уже чередуем комбинации, сначала ротор будет находиться у обмотки, потом наполовину переместится к соседней обмотке, потом совсем к соседней обмотке и т.д. Это полушаговый режим или one and two-phase-on

Вот таких вот три режима существуют. мы остановимся на 3 режиме, так как он будет самый плавный и самый интересный.

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

Программатор и шаговый двигатель 28YBJ-48 с драйвером ULN2003 можно приобрести здесь:

Смотреть ВИДЕОУРОК (нажмите на картинку)

Электроника для всех

Блог о электронике

Контроллер маломощного униполярного шагового двигателя

Предыстория
Понадобилось мне прошлой осенью восстановить измерительный стенд. Одна из главных частей стенда — система протяжки лески с закрепленной на ней трубочке сквозь СВЧ-резонатор (это такая медная банка весом 20-30 кг). Причем протяжка должна осуществляться периодически с фиксацией положения (на 1мм подвинул, остановился, подождал секунду, ещё на 1мм подвинул, и так далее). Естественно сразу возникла мысль о шаговом двигателе (ШД). Но как им управлять? Разобрался. Начал искать схемные решения — биполярными двигателями сложно управлять, поэтому выбор пал на униполярный. Был приобретён кЫтайский моторчик под названием
MOTS1 (ST28), который в России продаётся Velleman`ом

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

Пришёл черёд разработки контроллера управления. Разработкой движили несколько целей:

  • Покупать «чужой» контроллер за 5 т.р. совесть не позволяла
  • Стоимость разработанного контроллера не должна превышать 500-700 р.
  • Простота конструкции для а) повторяемости устройства, б) проще отладка, в) неблагоприятная электромагнитная обстановка, г) чтобы те, кто найдут контроллер через 20 лет смогли разобраться как его «завести», т.к. я подобным образом разбирался с СВЧ-резонатором, пролежавшим в шкафу с конца 90х…
  • Управление с компьютера. Всяких FT232RL в Москве я не нашёл на тот момент, поэтому без всяких раздумий решил использовать интерфейс RS-232.
  • Питание от компьютерного разъёма (который питает харды, приводы и т.д.). Комп всё равно рядом, 2 напряжения: +5 для питания микросхем, +12 для ШД.

Хронология событий
Набросал схему.

Набросал плату в Sprint Layout.

Прошивка для ATmega8L.
Опыта было мало, время поджимало — решил не возиться с ассемблером и написал на каком-то из Basic`ов. Весила она около 25% флеша ATmega8L.

Перешёл на «железо»: нашёл лист шестилетней фотобумаги от уже убитого струйника Epson. Распечатал, заЛУТил (не с первого раза — бумага фигово липнет, старая наверно), спаял.

Для связи с COM-портом изпользуется разъём IDC-10 (изготовлен кабель IDC-10 — DB-9F), для соединения с пятью проводами ШД — штыри PLS-8 (3 штыря из 8 отломаны).

При макетировании из-за того, что ни осциллограф, ни комп не были заземлены, и особенностей БП компьютера, я спалил оба COM-порта. С тех пор использую переходник USB-COM на основе PL2303.

Во время тестирования и отладки понял, что зря я не предусмотрел кнопку сброса МК и разъём внутрисхемного программирования…Пришлось «подвесить» его на проводах =)

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

Зимой я решил переписать прошивку для МК.
Естественно уже на ассемблере. За неделю осилил, и вот что получилось

Краткое описание алгоритма программы:

  • 1. Инициализации и конфигурирование регистров, макросы, таблица векторов прерываний
  • 2. Оправляем пользователю приглашение «hello», что контроллер готов.
  • 3. Ждём, когда же пользователь проснётся и пришлёт МК команду.
  • Команда представляет собой 3 байта. Первый и второй байт — число периодов управляющих сигналов, третий байт — направление вращения.
  • Формирование пакетов управляющих сигналов возложено на программу на компьютере.
  • Передача осуществляется на скорости 38400бит/с.
  • 4. Принимаем команду, сохраняем в RAM. Читаем из RAM в РОН.
  • 5. Запускаем таймер.
  • 6. Переходим к пункту 3.

А тем временем таймер по прерыванию совпадения:

  • 1. Уменьшаем счётчик сигналов на единицу. Если не дошли до нуля, то
  • 1.1. Определяет направление вращения
  • 1.2. Выбирает следующую управляющую комбинацию сигналов из памяти программ
  • 1.3. Выводим соответствующую управляющую комбинацию в PORTB.
  • 2. Если счётчик сигналов равен нулю — тормозим таймер.

Такой алгоритм позволяет «пополнять» содержимое счётчика сигналов во время работы таймера (естественно не в момент прерывания) и добиться «непрерывной» работы ШД. Но этим уже занимается программа написанная на VisualBasic 6.0 (нравится он мне, как бы его не обижали любители С# и Delphi).

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

Оценка стоимости всего этого безобразия:

Как видно, уложился в 600р. Может конечно что-то и подзабыл, но одна из поставленных задач выполнена.

Выводы
Получился довольно «узконаправленный» контроллер. Но задачи создать универсальное устройство не было. Изготавливается довольно быстро, всё в DIPах и выводным монтажом. Размеры — наверно чуть больше 2х спичечных коробков. Возможность модернизации: Легко задать необходимую управляющую последовательность в коде прошивки, ассемблировать, зашить в МК и пользоваться, код занимает около 3% памяти — места хватит ещё светомузыку приделать 🙂

  • детская игрушка башенный кран =)))
  • системы протяга всевозможных нитей, лески, например, занавески открывать по команде с компа
  • маломощные приводы (до 6Вт, т.к. ULN2003AN больше 500мА не терпит, если конечно ШД столько сам потянет)
  • системы, требующие точного позиционирования (число управляющих импульсов на 1 оборот ШД равно 2048. жаль мощность очень невелика)
Читайте также:  Дигитайзер на arduino uno

P.S. Автор выражает благодарность своему научному руководителю Сергею Марковичу за спонсорство, коллегам по лаборатории Тарасу и Лёшке, подруге Юле за помощь в тестировании и отладке, и конечно же DI HALT`у за предоставленную возможность быть опубликованным на easyelectronics.ru!

DI HALT
Меня не теряте 😉 Я сейчас очень много пишу, но пока не буду уточнять что. Хотя, некоторые уже спалили. Как доделаю хотя бы половину задуманного, естественно, сообщу 🙂 А пока буду выкладывать присланные статьи. Их тут довольно много накопилось.

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

98 thoughts on “Контроллер маломощного униполярного шагового двигателя”

Ой, какая красота. На чём софт для компьютера делали? Одним глазочком в исходник посмотреть мона?

Мир микроконтроллеров

Популярное

  • Устройство и программирование микроконтроллеров AVR для начинающих – 143
  • Трехканальный термостат, терморегулятор, таймер на ATmega8 – 71
  • Двухканальный термостат, терморегулятор на ATmega8 – 67

Подключение шагового двигателя к микроконтроллеру AVR ATmega16

Шаговые двигатели – это бесщеточные двигатели постоянного тока, которую могут вращаться от 00 до 3600 дискретными шагами. С каждым управляющим сигналом ось такого двигателя поворачивается на фиксированное значение (шаг). Управление вращением подобных двигателей осуществляется последовательностью специальных сигналов. В отличие от серводвигателей шаговые двигатели могут управляться контактами ввода-вывода общего назначения, а не только контактами ШИМ модуляции, и могут вращаться на (+3600) и (-3600). Последовательность следования управляющих сигналов определяет будет ли шаговый двигатель вращаться по часовой или против часовой стрелки. Для управления скоростью вращения такого двигателя необходимо просто изменять уровень управляющих сигналов. У шаговых двигателей есть несколько режимов шагового (дискретного) вращения – на полный шаг, на половину шага и на микрошаг.

В этом проекте мы будем подключать шаговый двигатель 28BYJ-48 к микроконтроллеру ATmega16 (семейство AVR), используя программу Atmel Studio 7.0. Шаговый двигатель будет работать при напряжении питания 5В. Мы будем подключать шаговый двигатель к микроконтроллеру с помощью драйверов электродвигателей ULN2003 и L293 (по отдельности). Оба будут запитываться напряжением 5В.

Примеры шаговых двигателей

Как следует из их названия, вращение шаговых электродвигателей представляет собой серию коротких шагов. В этом и состоит их отличие от двигателей свободного вращения — шаговый двигатель сделает столько шагов, сколько ему будет задано, и вы будете точно знать, сколько он их сделал. Это одна из причин, почему шаговые двигатели широко применяются как в обычных, так и в ЗD-принтерах. В обычных принтерах они точно позиционируют бумагу, а в ЗD — рабочий столик и сопло.

На представленном рисунке представлены три образца шаговых электродвигателей. Миниатюрные электродвигатели типа тех, что показан слева, служат для перемещения элементов объектива в компактной фотокамере или смартфоне. В центре находится шаговый мотор-редуктор с питанием 5В — в его корпусе заключен и шаговый электродвигатель, и редуктор. Справа изображен шаговый электродвигатель, типичный дл я принтеров.

Принцип работы биполярного шагового электродвигателя

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

Ротор шагового электродвигателя выполнен в форме намагниченных зубцов с чередующимися северным (С) и южным (Ю) полюсами (зубцов на роторе обычно гораздо больше, чем показано на представленном рисунке). Каждую катушку можно подключить так, что она будет намагничена или как северный полюс, или как южный, — в зависимости от направления тока в катушке. Катушки 1 и 3 работают совместно так, что когда катушка 1 будет южным полюсом, катушка 3 также будет южным полюсом. То же самое относится и к катушкам 2 и 4.

Начнем с варианта рисунка под буквой «а» — когда катушка 1 , а значит, и катушка 3 запитаны так, что становятся южными полюсами (Ю), вследствие того, что разноименные полюса притягиваются, а одноименные отталкиваются, ротор поворачивается против часовой стрелки до тех пор, пока ближайшие зубцы ротора с намагниченностью северного полюса (С) не поравняются с катушками 1 и 3 (как показано на «б»).
Чтобы продолжить вращение против часовой стрелки, на следующем шаге (рисунок «в») необходимо подать ток в катушки 2 и 4 так, чтобы они стали северными полюсами (С). Тогда ближайшие зубцы ротора с намагниченностью Ю подтянутся к катушкам 2 и 4 (рисунок «г»).

Каждое такое действие проворачивает ротор электродвигателя на один шаг. Для продолжения вращения против часовой стрелки в катушке 1 снова нужно создать намагниченность С (см. представленную таблицу).

Таблица 1. Последовательность действий при вращении шагового двигателя против часовой стрелки

Катушки 1 и 3Катушки 2 и 4
Ю
С
С
Ю

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

Таблица 2. Уточненная последовательность переключения катушек при вращении шагового двигателя

Катушки 1 и 3Катушки 2 и 4
ЮС
СС
СЮ
ЮЮ

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

Необходимые компоненты

Микроконтроллер ATmega16
Источник питания с напряжением 5 Вольт
Программатор AVR-ISP, USBASP или другой подобный
Кварцевый генератор 16 МГц
Шаговый двигатель 28BYJ-48
Драйвер двигателя ULN2003/ L293D
Конденсатор 100 нФ (2 шт.)
Конденсатор 22 пФ (2 шт.)
Кнопка
Соединительные провода
Макетная плата
Светодиод

Маркировка контактов шагового двигателя

Представлена на следующем рисунке.

Как видим, схема контактов шагового двигателя как будто специально «заточена» под то, чтобы подключать его к соответствующим драйверам (ULN2003 или L293D).

Назначение контактов микросхемы ULN2003 (драйвера мотора) приведено на следующем рисунке.

Внешний вид этого драйвера мотора выглядит следующим образом:

Внешний вид драйвера мотора L293D приведен на следующем рисунке:

Работа схемы

В следующих двух таблицах представлены схемы соединений входных и выходных контактов драйверов моторов ULN2003 или L293D с микроконтроллером AVR ATmega16 и шаговым электродвигателем.

Atmega16ULN2003L293D
A0IN1(PIN1)IN1(PIN2)
A1IN2(PIN2)IN2(PIN7)
A2IN3(PIN3)IN3(PIN10)
A3IN4(PIN4)IN4(PIN15)
Шаговый двигательULN2003L293D
OrangeOUT1(PIN16)OUT1(PIN3)
YellowOUT2(PIN15)OUT2(PIN6)
PinkOUT3(PIN14)OUT3(PIN11)
BlueOUT4(PIN13)OUT4(PIN14)

Схема устройства с драйвером мотора ULN2003 приведена на следующем рисунке.

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

Внешний вид устройства с использованием ULN2003 приведен в начале статьи, а с использованием L293D он будет выглядеть следующим образом:

Соедините все компоненты устройства в соответствии с приведенной схемой соединений (одной из двух). Для управления шаговым двигателем мы будем использовать PORTA микроконтроллера Atmega16. К контактам шагового двигателя нет необходимости подключать питание – для управления им нам понадобятся только контакты его катушек (coil pins) – верно для ULN2003, для L293D немного по другому. Очень важен порядок контактов для того чтобы шаговый двигатель работал корректно. Для микросхемы ULN2003 используются четыре ее входа и четыре ее выхода – входы соединяются с контактами PORTA микроконтроллера, а выходы – с сигнальными контактами шагового двигателя. Также подсоедините кнопку к контакту сброса (Reset pin) чтобы иметь возможность осуществлять сброс микроконтроллера Atmega16 всегда, когда нам это понадобится. Подсоедините к микроконтроллеру кварцевый генератор. Все устройство должно быть запитано напряжением 5В.

Исходный код программы на языке С (Си) с пояснениями

Приведенный в этом разделе код программы демонстрирует вращение шагового двигателя под управлением микроконтроллера AVR в обе стороны: по часовой стрелке и против часовой стрелки. Если вы хотите вращать шаговый двигатель только в одну сторону – просто закомментируйте ненужную часть кода.

int main(void)
<
DDRA = 0x0F; /* конфигурируем PORTA на выход */
int period = 6; /* устанавливаем период (задержку) между двумя шагами */
while (1)
<
/* вращаем шаговый двигатель по часовой стрелке */
for(int i=0;i

Видео, демонстрирующее работу схемы

ОБОРУДОВАНИЕ
ТЕХНОЛОГИИ
РАЗРАБОТКИ

Блог технической поддержки моих разработок

Простой контроллер шагового двигателя на PIC12F629

В статье приводятся принципиальные схемы вариантов простого, недорогого контроллера шагового двигателя и резидентное программное обеспечение (прошивка) для него.

Общее описание.

Контроллер шагового двигателя разработан на PIC контроллере PIC12F629. Это 8 выводной микроконтроллер стоимостью всего 0,5 $. Несмотря на простую схему и низкую стоимость комплектующих, контроллер обеспечивает довольно высокие характеристики и широкие функциональные возможности.

  • Контроллер имеет варианты схем для управления как униполярным, так и биполярным шаговым двигателем.
  • Обеспечивает регулировку скорости вращения двигателя в широких пределах.
  • Имеет два режима управления шаговым двигателем:
    • полношаговый;
    • полушаговый.
  • Обеспечивает вращение в прямом и реверсивном направлениях.
  • Задание режимов, параметров, управление контроллером осуществляется двумя кнопками и сигналом ВКЛ (включение).
  • При выключении питания все режимы и параметры сохраняются в энергонезависимой памяти контроллера и не требуют переустановки при включении.

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

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

Схема контроллера униполярного шагового двигателя с драйвером на биполярных транзисторах.

Объяснять в схеме особенно нечего. К PIC контроллеру подключены:

  • кнопки “+” и “–” (через аналоговый вход компаратора);
  • сигнал ВКЛ (включение двигателя);
  • драйвер ( транзисторы VT1-Vt4 , защитные диоды VD2-VD9).
Читайте также:  Компания cree представила самый яркий светодиодный модуль lmh2

PIC использует внутренний генератор тактирования. Режимы и параметры хранятся во внутреннем EEPROM.

Схема драйвера на биполярных транзисторах КТ972 обеспечивает ток коммутации до 2 А, напряжение обмоток до 24 В.

Я спаял контроллер на макетной плате размерами 45 x 20 мм.

Если ток коммутации не превышает 0,5 А, можно использовать транзисторы серии BC817 в корпусах SOT-23. Устройство получится совсем миниатюрным.

Программное обеспечение и управление контроллером.

Резидентное программное обеспечение написано на ассемблере с циклической переустановкой всех регистров. Программа зависнуть в принципе не может. Загрузить программное обеспечение (прошивку) для PIC12F629 можно здесь.

Управление контроллером достаточно простое.

  • При активном сигнале “ВКЛ” (замкнут на землю) двигатель крутится, при неактивном (оторван от земли) – остановлен.
  • При работающем двигателе ( сигнал ВКЛ активен) кнопки “+” и “–” меняют скорость вращения.
    • Каждое нажатие на кнопку “+” увеличивает скорость на минимальную дискретность.
    • Нажатие кнопки “–” – уменьшает скорость.
    • При удержании кнопок “+” или “–” скорость вращения плавно увеличивается или уменьшается, на 15 значений дискретности в сек.
  • При остановленном двигателе ( сигнал ВКЛ не активен).
    • Нажатие кнопки “+” задает режим вращения в прямом направлении.
    • Нажатие кнопки “–” переводит контроллер в режим реверсивного вращения.
  • Для выбора режима – полношаговый или полушаговый необходимо при подаче питания на контроллер удерживать кнопку “–” в нажатом состоянии. Режим управления двигателем будет изменен на другой (проинвертирован). Достаточно выдержать кнопку – нажатой в течение 0,5 сек.

Схема контроллера униполярного шагового двигателя с драйвером на MOSFET транзисторах.

Низкопороговые MOSFET транзисторы позволяют создать драйвер с более высоким параметрами. Применение в драйвере MOSFET транзисторов, например, IRF7341 дает следующие преимущества.

  • Сопротивление транзисторов в открытом состоянии не более 0,05 Ом. Значит малое падение напряжения (0,1 В при токе 2 А), транзисторы не греются, не требуют радиаторов охлаждения.
  • Ток транзисторов до 4 А.
  • Напряжение до 55 В.
  • В одном 8 выводном корпусе SOIC-8 размещены 2 транзистора. Т.е. на реализацию драйвера потребуется 2 миниатюрных корпуса.

Таких параметров невозможно достичь на биполярных транзисторах. При токе коммутации свыше 1 А настоятельно рекомендую вариант утройства на MOSFET транзисторах.

Подключение к контроллеру униполярных шаговых двигателей.

В униполярном режиме могут работать двигатели с конфигурациями обмоток 5, 6 и 8 проводов.

Схема подключения униполярного шагового двигателя с 5 и 6 проводами (выводами).

Для двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57ST, FL57STH с конфигурацией обмоток 6 проводов выводы промаркированы следующим цветами.

Обозначение вывода на схемеЦвет провода
Aчерный
желтый
Cзеленый
Bкрасный
0*белый
Dсиний

Конфигурация с 5 проводами это вариант, в котором общие провода обмоток соединены внутри двигателя. Такие двигатели бывают. Например, PM35S-048.

Документацию по шаговому двигателю PM35S-048 в PDF формате можно загрузить здесь.

Схема подключения униполярного шагового двигателя с 8 проводами (выводами).

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

Как выбирать напряжение для шагового двигателя.

По закону Ома через сопротивление обмотки и допустимый ток фазы.

U = Iфазы * Rобмотки

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

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

Как определить обмотки шаговых двигателей, если нет справочных данных.

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

Дальше любой из фазных выводов можно назначить фазой A. Останется 8 вариантов коммутаций выводов. Можно их перебрать. Если учесть, что обмотка фазы B имеет другой средний провод, то вариантов становится еще меньше. Попутка обмоток фаз не ведет к выходу из строя драйвера или двигателя. Двигатель дребезжит и не крутится.

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

Схема контроллера биполярного шагового двигателя с интегральным драйвером L298N.

Биполярный режим дает два преимущества:

  • может быть использован двигатель с почти любой конфигурацией обмоток;
  • примерно на 40% повышается крутящий момент.

Создавать схему биполярного драйвера на дискретных элементах – дело неблагодарное. Проще использовать интегральный драйвер L298N. Описание на русском языке есть здесь.

Схема контроллера с биполярным драйвером L298N выглядит так.

Драйвер L298N включен по стандартной схеме. Такой вариант контроллера обеспечивает фазные токи до 2 А, напряжение до 30 В.

Подключение к контроллеру биполярных шаговых двигателей.

В этом режиме может быть подключен двигатель с любой конфигурацией обмоток 4, 6, 8 проводов.

Схема подключения биполярного шагового двигателя с 4 проводами (выводами).

Для двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57ST, FL57STH с конфигурацией обмоток 4 провода выводы промаркированы следующим цветами.

Обозначение вывода на схемеЦвет провода
Aчерный
Cзеленый
Bкрасный
Dсиний

Схема подключения биполярного шагового двигателя с 6 проводами (выводами).

Для двигателей FL20STH, FL28STH, FL35ST, FL39ST, FL42STH, FL57ST, FL57STH с такой конфигурацией обмоток выводы промаркированы следующим цветами.

Обозначение вывода на схемеЦвет провода
Aчерный
Cзеленый
Bкрасный
Dсиний

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

Схема подключения биполярного шагового двигателя с 8 проводами (выводами).

Может быть два варианта:

  • с последовательным включением
  • с параллельным включением.

Схема последовательного включения обмоток.

Схема с последовательным включением обмоток требует в два раза большего напряжения обмоток. Зато не увеличивается ток фазы.

Схема параллельного включения обмоток.

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

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

  • максимальный ток драйвера;
  • максимальное напряжение драйвера;
  • скорость вращения двигателя.

Программное обеспечение (прошивка) для PIC12F629 можно загрузить здесь.

Тестер Униполярных Шаговых Двигателей На Attiny2313 И Uln2004

Название: Тестер Униполярных Шаговых Двигателей На Attiny2313 И Uln2004

Загрузил: Паяльник TV

Длительность: 2 мин и 1 сек

Битрейт: 192 Kbps

2.65 MB и длительностью 2 мин и 1 сек в формате mp3.

Как Соединить Обмотки Шагового Двигателя Параллельное Подключение Stepper Motor Winding

Using The Uln2003A Transistor Array With Arduino

Stepper Motor Run Without Driver Шаговый Двигатель Без Драйвера

20 Small Cnc Using Attiny2313

Переделка Униполярного Двигателя 28Byj 48 В Биполярный

Простая Схема Запуска Шагового Двигателя С Реверсом

Забавные Эксперименты С Шаговым Двигателем

Управление Шаговыми Двигателями

Контроллер Шагового Двигателя С Аналоговым Регулятором Скорости

Контроллер Шагового Двигателя Униполярного На Attiny2313

Ручной Запуск Шагового Двигателя

Stepper Motor Control With An Arduino And A Uln2004 Ic

Управление Шаговым Двигателем Через Lpt Attiny2313 И Самодельный Драйвер

Новый Ветряк В Работе

Микросхема Драйвер Шагового Двигателя L6208

Как Соединить Обмотки Шагового Двигателя Последовательное Подключение Stepper Motor Winding

Полевое Зу Для Мобильного Телефона

Motor Shield V3 Управление Шаговым Двигателем

Микрошаговый Контроллер Биполярного Шагового Двигателя V5 1

Простой Тестер Шаговых Двигателей И Драйверов

Uln2004 Test Proteus

Как Подобрать Шаговый Двигатель Для Станка Чпу Шд Из Принтера Какой Подойдет Для Чпу

Тестер Шаговых Двигателей И Драйверов A4988 Как Проверить Шаговый Двигатель

Шаговый Двигатель Простой Драйвер Для Него

Arduino L293D Шаговый Двигатель От Cd Rom

Шаговый Двигатель 28Byj 48 5V Arduino Stepper Motor Button Potentiometer Variable Resistor

Моя Мастерская 3 Делаем Программатор Lpt Для Прошивки Bios Своими Руками

Как Управлять Шаговыми Двигателями 28Byj 48 Uln2003 Nema17 A4988

Controlling An Old Prineter Using Arduino And Uln2004

Генератор Сигналов Android

Драйвер Шагового Двигателя На Микросхеме Cd4017 Таймер 555

Управление Униполярным Шаговым Двигателем

Простой Тестер Стабилитронов

315Мгц Pt2294 L4 Обзор И Нюансы Tdl T70 Sc2260 R4 Attiny2313

Traktorino Собираем Сами

Не Лабораторный Бп На Juntek Dpm8608

Самодельный Ветрогенератор Http Svoy Vetrogenerator Ru

Деаутентификатор Wi Fi Dstike Deauther Watch

Обзор Мультиметра Aneng An113D

Азбука Электронщика Конструкторы Цифровая Лаборатория И Классика Схемотехники

Светодиодная Rgb Панель От Dfrobot

Осциллограф Fnirsi 1C15

Логический Анализатор Beaglelogic 14 Каналов 100 Мгц Своими Руками

Ремонт Мультиметра Dt890B

Компактный Паяльник Sh72

Делаем Usb Звуковую Карту На Pcm2900

Цифровой Микроскоп G600 От Banggood

Конструктор Практическая Электроника Для Начинающих Первые Шаги

Зацепила Меня Feat Stalker

Fnaf Глитчтрап Попал В Реальный Мир Секретный Финал Игры Фнаф И Меню Экстра

Запорожец Против Жигули Zaz 968M Vs Vaz 2105 Заз 968 М Против Ваз 2105 V Образник Vs Рядника

Отель Хазбин Пилот На Русском Hazbin Hotel Pilot Rus

Лучшие Моменты Стрима Евпатии Кнур Евпата Кнур Live

Тестер Униполярных Шаговых Двигателей На Attiny2313 И Uln2004

Teen Wolf Stiles Und Derek German S01E04 Scott

Tik Tok Блогер Karna Val Знакомьтесь

Выпал Цвет Стандартной Наруками В Ро Гуль

Florin Apostol Strainul

Онлайн Консультация По Хроникам Хаоса 19 04 2020 Мобильная Версия

Dj Rafo Armenian Dance Mix 2020

Моя Сестра Думает Что Я Её Мама 12 Серия Gacha Life

Фаридуни Хуршед Маи Гандара

Пираты В Адопт Ми Трейд На Набор Roblox Adopt Me

Сергей Захаров Мужики

Музыка Меняющая Реальность Мощные И Красивые Треки Для Души Relax Погружение В Сознание

Фильм 2020 Победитель Войны Могущество Исторические Фильмы 2020 Новинки Hd 1080P

Я Целую Твои Слова Clipmaker Igor Kistin

Куча Лег Подарки Симулятор Жвачки В Роблокс Bubble Gum Simulator

Дом Детства Евтодьевой Аллы

Мой Папа Потрясающий Президент 20 Глава

Tips And Tricks For Cycling With Baby

Мультфильм Для Детей Про Паровозики Роботы Поезда Все Серии Подряд Сборник 26 32

Субботний Вечер 21 05 2011 Год

Читайте также:  Viper design software

Проверка Старых Багов И Дюпов Terraria 1 4

Зал Суда Битва За Деньги Расчетливый Сосед

Que Pasaria Si El Cono Sur Se Vuelve Un Pais

Aimgod 1Wall6Targets Te 2497 7

Замена Прокладки Гбц И Проверка Вмт

Super Monkeys L Amour Tendre Online Video

Prepar3D V4 3 Dynamic Lights Performance Improvements 4K

Celebrity Review Ragala 24 Gantallo Movie Ragala 24 Gantallo Movie Public Talk

Cell Expansion Wars 791 Walkthrough

Тварьское Поведение Друзей Влада Бахова

Попробуй Не Подпевать Челлендж Не Петь Try Don T Remain Challenge Лучшие Хиты 2020

Ислам Идигов Годы Прошли Разбор На Гитаре Автор Байсангур Дербишов

Ссоры Между Мужем И Женой Как Примириться

Шикарный Мод На Сталкер Stalker Dead Air Подробности Нового Патча

Аномалии Развития Почек

Как Восстановить Щитовидную Железу Островский Live Зоб Гипертиреоз Бессонница Невроз Щитовидка

Новый Год 2019 Ожидание Vs Реальность Украшаю Комнату К Новому Году Наша Маша

Как Багать Текстуры На Vimeworld Prison И Залезать За Карту

Увлекательный Фильм Про Мента В Отставке Вернуться На Службу Русские Боевики 2020 Новинки

Полька Korg Pa 500

Avg Internet Security 2020 2021 With Key How To Install Activate Get 1 Year Free License Key

Пресс Сепаратор Фарш Из Куриного Каркаса Как Получить Добавленную Стоимость При Переработке Курицы

С Добрым Утром Очень Красивая Музыкальная Видео Открытка Для Вас

Лайфхаки В Cs Go Которые Упростят Вашу Игру Фишки И Секреты Ксго

Доминирующий Меч Глава 32 Ранобэ И Новелла Озвучка От Maxvel

Домашний CNC. Часть 1. Драйвер шагового двигателя для мини-станка с ЧПУ

Содержание / Contents

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

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

↑ Привод

Нужно двигать собственно фрезер в 3-х направлениях — XYZ, значит нужно 3 привода — 3 мотора с передачей вращения вала двигателя в линейное перемещение.
О передаче…
Для фрезерного станка, где есть боковые усилия резания материала, желательно не применять ременные передачи, очень популярные в 3D принтерах. Буду применять передачу «винт-гайка». Самая бюджетная передача — обычный стальной винт и безлюфтовая, желательно бронзовая, гайка. Более правильная — винт с трапециевидной резьбой и гайка из капролона. Самая хорошая (и, увы, самая дорогая) шарико-винтовая пара, или ШВП. Об этом подробнее я еще расскажу далее…
У каждой передачи есть свой коэффициент, свой шаг — то есть насколько линейно по оси переместится фрезер за один оборот двигателя, например, на 4 мм.

↑ Двигатель (мотор)

В качестве двигателя для привода определил шаговый двигатель (ШД)
Почему шаговый? Что это вообще такое?
Двигатели есть переменного и постоянного тока, коллекторные и бесколлекторные, и так называемые «шаговые». В любом случае нам надо обеспечить какую-то точность позиционирования, например 0,01 мм. Как это сделать? Если двигатель имеет прямой привод — вал двигателя соединяют напрямую с винтом, то для обеспечения такой точности нужно повернуть его на некоторый угол. В данном случае, при шаге передачи 4 мм и желаемой точности перемещения 0,01 мм это… всего 1/400 оборота, или 360/400=0,9 градуса! Ерунда, возьмем обычный моторчик…

С «обычным» моторчиком без обратной связи никак не получится. Не вдаваясь в подробности, схема управления двигателем должна «знать», на какой угол повернулась ось. Можно конечно поставить редуктор — потеряем в скорости, и все равно без гарантии, без обратной связи вообще никак! На ось ставится датчик угла поворота. Такое решение надежное, но дорогое.

Альтернатива — шаговый двигатель (как он работает, почитайте сами). Можно считать, что за одну «команду» он повернет свою ось на определенный градус, обычно это 1,8 или 0,9 градуса (точность обычно не хуже 5%) — как раз то, что нужно. Недостаток такого решения — при большой нагрузке двигатель будет пропускать команды — «шаги» и может вообще остановиться. Вопрос решается установкой заведомо мощного двигателя. На шаговых двигателях и делается большинство любительских станочков.

↑ Выбираем шаговый двигатель

2 обмотки, с минимальным током, минимальной индуктивностью и максимальным моментом — то есть максимально мощный и экономичный двигатель.

Противоречивые требования. Малый ток — значит большое сопротивление, значит много витков провода обмотки двигателя, значит большая индуктивность. А большой момент — это большой ток и много витков. Выбираем в пользу большего тока и меньшей индуктивности. А момент надо выбирать исходя из нагрузки, но об этом потом.

Характеристики некоторых двигателей приведены в таблице:

Для небольшого станка с рабочим пространством размером 300×300х100 мм и легким фрезером вполне сгодятся двигатели с крутящим моментом 0,3Нм и выше. Оптимальным является ток от 1,5 до 2,5 Ампер , вполне подойдет FL42STH38-1684

↑ Драйвер шагового двигателя

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

Самое простое решение — источник заданного тока и две пары транзисторных ключей на каждую обмотку. И четыре защитных диода. И логическая схема чтобы менять направление. И… Такое решение обычно делают на микросхеме ULN2003A для двигателей с малым током, имеет много недостатков, не буду на них останавливаться.

Альтернатива — специализированные микросхемы «всё в одном» — с логикой, транзисторами и диодами защиты внутри (или снаружи). А еще такие микросхемы контролируют ток обмоток и регулируют его с помощью ШИМ-а, а так же могут реализовывать режим «полушаг», а некоторые режимы 1/4 шага, и 1/8 шага и т. д. Эти режимы позволяют повысить точность позиционирования, повысить плавность движения и снизить резонанс. Обычно достаточно режима «полушаг», что позволит повысить теоретическую точность линейного позиционирования (в моем примере до 0,005 мм).

Что внутри микросхемы драйвера шагового двигателя? Блок логики и управления, источники питания, ШИМ со схемами формирования момента и времени коммутации обмоток, выходные ключи на полевых транзисторах, компараторы обратной связи — ток контролируется по падению напряжения на резисторах (Rs) в цепи питания обмоток. Ток двигателя задается опорным напряжением.

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

↑ Богатство выбора

Из готовых — наиболее распространённые и недорогие драйверы на микросхемах Allegro A4988 (до 2А), Texas Instruments DRV8825 (до 2,5А).
Поскольку модули изначально разрабатывались для использования в 3D принтерах типа Rep-rap проекта Arduino, они не являются законченными модулями (например, им нужно еще питание логики (+5V), которое подается с так называемой рампы (Ramp).

Еще есть решения на DRV8811 (до 1,9 А), A3982 (до 2 А), A3977 (до 2,5 А), DRV8818 (до 2,5 А) DRV8825 (до 2,5 А), Toshiba TB6560 (до 3 А) и другие.

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

Готовые решения на A4988 не понравились, прежде всего, из-за миниатюризации размеров печатной платы в ущерб хорошему охлаждению. Типовое сопротивление открытых транзисторов у A4388 при токе 1,5А 0,32+0,43 Ом, плюс 0,1-0,22 Ома «измерительный» резистор — получается около 0,85 Ом. А таких каналов два, и хотя и работают они импульсно, но 2-3 Ватта тепла надо рассеивать. Ну не верю я в многослойную плату и малюсенький радиатор охлаждения — в даташите нарисована плата гораздо больших размеров.

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

Управляющие сигналы — «шаг» (step), «направление» (dir), «включение» (enable), индикация состояния сигналов управления. Некоторые схемы не используют сигнал «Enable», но это приводит в режиме простоя к ненужному нагреву и микросхемы и двигателя.

Одно питание 12-24 вольта, источник питания логики (+5B) — на плате. Размеры платы — достаточные для хорошего охлаждения, двухсторонняя печать с большой областью «меди», возможность приклеить на микросхему радиатор (применяемой для охлаждения памяти видеокарт).

↑ Драйвер ШД на микросхеме Allegro A3982

Напряжение питание силовое: 8…35 В Напряжение питание логики: 3,3…5 В Выходной ток (максимальный, зависит от режима и охлаждения): ±2 А Типовое сопротивление открытых транзисторов (при токе 1,5А): 0,33+0,37 Ом

↑ Драйвер ШД на микросхеме Allegro A3977

Напряжение питание силовое: 8…35 В Напряжение питание логики: 3,3…5 В Выходной ток (максимальный, зависит от режима и охлаждения): ±2,5 А Типовое сопротивление открытых транзисторов (при токе 2,5А): 0,33+0,45 Ом

↑ Схема и прототип


Проектировал в среде DipTrace. Драйвер A3982 включен по схеме из документации производителя. Включен режим «полушаг». Дополнительно для надежной работы сигналов управления и индикации применил микросхему логики 74НС14 (с триггерами Шмитта). Можно было сделать гальвано-развязку на оптронах, но для маленького станка я решил ее не делать. Схема на A3977 отличается только дополнительными джамперами режима шага и более мощным разъемом питания, пока в «железе» не реализована.

↑ Печатная плата

↑ Работа

Температуру корпуса микросхемы мерил пирометром — без радиатора она достигала 90-95 градусов (при токе обмоток 1,6А) — мне это не понравилось. С радиатором — 55-60 градусов — куда лучше! Вообще плата вся теплая — около 35 градусов.

Спасибо за внимание!
Продолжение следует…

↑ Файлы

В архиве схема и плата в формате DipTrace
▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

Даташит на микросхему Allegro A3982
▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

Рейтинг
( Пока оценок нет )
Загрузка ...
Adblock
detector