Автономный контроллер шагового двигателя схема

  • Шаг 1.
  • Нам потребуется…
  • От старого сканера:

Автономный контроллер шагового двигателя схема

  • 1 шаговый двигатель
  • 1 микросхема ULN2003
  • 2 стальных прута

Для корпуса: — 1 картонная коробка

Инструменты:

  • Клеевой пистолет
  • Кусачки
  • Ножницы
  • Принадлежности для пайки
  • Краска

Для контроллера:

  • 1 разъем DB-25 — провод
  • 1 цилиндрическое гнездо для питания постоянного тока Для испытательного стенда
  • 1 стержень с резьбой
  • 1 подходящая под стержень гайка — разные шайбы и шурупы — куски древесины

Для управляющего компьютера:

  • 1 старый компьютер (или ноутбук)
  • 1 копия TurboCNC (отсюда)

Шаг 2.

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

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

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

Шаг 3.

Извлекаем микросхему из платы управления Теперь нужно найти на плате управления шаговым двигателем микросхему ULN2003. Если вы не смогли обнаружить ее на своем устройстве, ULN2003 можно купить отдельно. Если она есть, ее нужно выпаять.

Это потребует некоторого умения, но не так уж сложно. Сначала при помощи отсоса удалите как можно больше припоя. После этого осторожно просуньте под микросхему конец отвертки.

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

Автономный контроллер шагового двигателя схема

Шаг 4.

Пайка Теперь нам нужно припаять микросхему на макетную плату. Припаяйте к плате все выводы микросхемы.

На показанной здесь макетной плате имеется две шины электропитания, поэтому положительный вывод ULN2003 (смотрите схему здесь и на рисунке ниже) припаивается к одной из них, а отрицательный — к другой. Теперь, нужно соединить вывод 2 коннектора параллельного порта с выводом 1 ULN2003.

Вывод 3 коннектора параллельного порта соединяется с выводом 2 ULN2003, вывод 4 — с выводом 3 ULN2003 и вывод 5 — с выводом 4 ULN2003. Теперь вывод 25 параллельного порта припаивается к отрицательной шине питания. Далее к управляющему устройству припаивается мотор.

Делать это придется путем проб и ошибок. Можно просто припаять провода так, чтобы потом цеплять на них крокодилы. Еще можно использовать клеммы с винтовым креплением или что-нибудь подобное. Просто припаяйте провода к выводам 16, 15, 14 и 13 микросхемы ULN2003.

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

Автономный контроллер шагового двигателя схема Автономный контроллер шагового двигателя схема Автономный контроллер шагового двигателя схема Автономный контроллер шагового двигателя схема Автономный контроллер шагового двигателя схема Автономный контроллер шагового двигателя схема Автономный контроллер шагового двигателя схема

Шаг 5.

Установка программного обеспечения Теперь о программном обеспечении. Единственная вещь, которая точно будет работать с вашим новым устройством — это Turbo CNC. Скачайте его здесь. Распакуйте архив и запишите на CD.

Теперь, на компьютере, который вы собираетесь использовать для управления, перейдите на диск C:// и создайте в корне папку «tcnc». Затем, скопируйте файлы с CD в новую папку. Закройте все окна.

Вы только что установили Turbo CNC.

Автономный контроллер шагового двигателя схема

  1. Шаг 6.

Настройка программного обеспечения Перезагрузите компьютер чтобы перейти к работе в MS-DOS. В командной строке наберите «C: cncTURBOCNC». Иногда лучше использовать загрузочный диск, тогда копия TURBOCNC помещается на него и нужно набирать, соответственно «A: cncTURBOCNC». Возникнет экран, похожий на изображенный на рис. 3. Нажмите пробел.

Теперь вы находитесь в главном меню программы. Нажмите F1, и при помощи клавиш со стрелками выберите меню «Configure». При помощи клавиш со стрелками выберите «number of axis». Нажмите Enter. Введите количество осей, которые будут использоваться. Поскольку у нас только один мотор, выбираем «1». Нажмите Enter чтобы продолжить.

Снова нажмите F1 и в меню «Configure» выберите пункт «Configure axes», затем дважды нажмите Enter.

Появится следующий экран. Нажимайте Tab пока не перейдете к ячейке «Drive Type». При помощи стрелки вниз выберите пункт «Phase». Снова при помощи Tab выберите ячейку «Scale». Чтобы использовать калькулятор, нам нужно найти число шагов, которые двигатель делает за один оборот.

Зная номер модели двигателя, можно установить на сколько градусов он поворачивается за один шаг. Чтобы найти число шагов, которые двигатель делает за один оборот, теперь нужно поделить 360 на число градусов за один шаг. Например, если мотор поворачивается за один шаг на 7,5 градусов, 360 поделить на 7,5 получится 48.

Число, которое получится у вас, забейте в калькулятор шкалы (scale calculator).

Остальные настройки оставьте как есть. Нажмите OK, и скопируйте число в ячейке Scale в такую же ячейку на другом компьютере.

В ячейке Acceleration установите значение 20, поскольку установленных по умолчанию 2000 слишком много для нашей системы. Начальную скорость установите равной 20, а максимальную — 175.

Нажимайте Tab пока не дойдете до пункта «Last Phase». Установите в нем значение 4. Нажимайте Tab пока не дойдете до первого ряда иксов.

  • Скопируйте следующее в четыре первых ячейки:
  • 1000XXXXXXXX 0100XXXXXXXX 0010XXXXXXXX
  • 0001XXXXXXXX

Остальные ячейки оставьте без изменений. Выберите OK. Теперь вы настроили программное обеспечение.

  1. Шаг 7.

Строим тестовый вал Следующим этапом работы будет сборка простого вала для тестовой системы. Отрежьте 3 бруска дерева и скрепите их друг с другом. Чтобы получить ровные отверстия проведите на поверхности дерева ровную линию. Просверлите на линии два отверстия.

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

Не имеет значения, как вы это сделаете, будьте изобретательны.

Чтобы закрепить двигатель, имевшийся в наличии, использовали два отрезка стержня с резьбой 1/8. Брусок с прикрепленным двигателем надевается на свободный конец стальных прутов. Снова закрепите их шурупами. Сквозь третье отверстие на первом бруске проденьте стержень с резьбой.

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

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

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

  • Шаг 8.

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

Соедините их все, и затем меняйте порядок соединения, если ваш двигатель делает два шага вперед и один назад или что-либо подобное. Для проведения тестирования подключите 12 В 350 мА источник питания постоянного тока в цилиндрическое гнездо. Затем соедините разъем DB25 c компьютером. В TurboCNC проверьте как соединен двигатель.

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

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

  1. TEST.CNC
  2. Шаг 9.
  3. Изготовление корпуса
  4. Часть 1

Изготовление корпуса — это завершительный этап. Присоединимся к защитникам природы и сделаем его из вторсырья. Тем более, что контроллер у нас тоже не с магазинных полок. У представленного вашему вниманию образца плата имеет размер 5 на 7,5 см, поэтому корпус будет размером 7,5 на 10 на 5 см, чтобы оставить достаточно места для проводов.

Читайте также:  Высокие обороты двигателя малая скорость

Из картонной коробки вырезаем стенки. Вырезаем 2 прямоугольника размером 7,5 на 10 см, еще 2 размером 5 на 10 см и еще 2 размером 7,5 на 5 см (см. рисунки). В них нужно вырезать отверстия для разъемов. Обведите контуры разъема параллельного порта на одной из 5 х 10 стенок. На этой же стенке обведите контуры цилиндрического гнезда для питания постоянного тока.

Вырежьте по контурам оба отверстия. То, что вы будете делать дальше, зависит от того, припаивали ли вы к проводам двигателя разъемы. Если да, то закрепите их снаружи второй пока пустой стенки размером 5 х 10. Если нет, проткните в стенке 5 отверстий для проводов. При помощи клеевого пистолета соедините все стенки вместе (кроме верхней, см. рисунки).

Корпус можно покрасить.

  • Шаг 10.
  • Изготовление корпуса
  • Часть 2

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

Из пенопласта вырежьте пару ушек. Затем вырежьте пару полос и четыре небольших квадратика. Приклейте по два квадратика к каждой из полос как показано на рисунке. Приклейте ушки по обеим сторонам корпуса. Сверху коробки приклейте полосы.

Этим завершается изготовление корпуса.

Шаг 11.

Возможные применения и заключение Этот контроллер можно применять как: — ЧПУ устройство — плоттер — или любую другую вещь, которой нужно точное управление движением. — добавление- Здесь приведены схема и инструкции по изготовлению контроллера с тремя осями. Чтобы настроить программное обеспечение, следуйте вышеуказанным шагам, но в поле «number of axis» введите 3.

  1. Для настройки первой оси делайте все как было сказано выше, для второй оси тоже, но в строках первых четырех фаз введите следующее:
  2. «XXXX1000XXXX XXXX0100XXXX XXXX0010XXXX
  3. XXXX0001XXXX»
  4. Для третьей оси в строках первых четырех фаз введите:
  5. «XXXXXXXX1000 XXXXXXXX0100 XXXXXXXX0010
  6. XXXXXXXX0001″

Управление шаговым двигателем через контроллер Canny

Наткнулся недавно на статью камрада BosonBeard про новые контроллеры и решил попробовать на зуб что это такое. Недолго думая были раздобыты 3 типа контроллеров: Canny 3 Tiny, Canny 5 Nano, Canny 7.

Автономный контроллер шагового двигателя схема Рис. 1. Внешний вид упаковки контроллеров Canny 7 (слева), Canny 5 Nano (в центре), Canny 3 Tiny (справа), шариковая ручка для масштаба

Автономный контроллер шагового двигателя схема Рис. 2. Внешний вид контроллеров Canny 7 (слева), Canny 5 Nano (в центре), Canny 3 Tiny (справа), шариковая ручка для масштаба На что стоит обратить внимание… сердцем контроллеров являются чипы семейства PIC — PIC18F25K50-I/ML, PIC18F25K80, PIC24HJ128GP506A-I/PT — соответственно. Про возможности каждого чипа можно прочитать из даташитов производителя, так что не будем заострять на этом внимание. Из особенностей могу добавить только, что у модели Canny 5 Nano есть внешний TTL-USB драйвер на чипе CP2102. На счет подключения и впаянных разъемов на моделях Canny 7 и Canny 3 переживать не стоит, т.к. производитель укомплектовывает поставку солидным пучком проводов с запаянными разъемами.

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

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

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

Внимание! Собственный бутлоадер и графическая среда программирования накладывают определенные ограничения — невозможность использования стандартных библиотек. Но когда это нас останавливало?)

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

От старого проекта у меня лежал неиспользованный старенький ДШИ-200 и самодельный драйвер к нему.

Автономный контроллер шагового двигателя схема Рис.3. Мой старый драйвер шагового двигателя, на рисунке можно увидеть 3 канала управления

Это делает задачу немного интересней, так как готовые примеры рассчитаны на использование обычных сейчас 2-х обмоточных двигателей, в то время как ДШИ-200 — четырехобмоточный с двумя выводами с каждой обмотки.

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

Автономный контроллер шагового двигателя схема

А то что изобразил я, для управления своим двигателем выглядело так:

Автономный контроллер шагового двигателя схема

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

Автономный контроллер шагового двигателя схема

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

Автономный контроллер шагового двигателя схема

Достоинства и недостатки. По традиции начнем с недостатков: Закрытый бутлоадер

Отсутствие возможности подключения внешних библиотек

Сигналы управления драйвера ШД: PUL/DIR, STEP/DIR, CW/CCW. Управление шаговыми драйверами DM860H, DM556, TB6600…. с Arduino

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

Например, ротор шагового двигателя 17HS1352-P4130, за один полный шаг, поворачивается на 1,8°. Значит для поворота ротора на 360° двигатель должен совершить 200 полных шагов.

Для совершения одного полного шага на обмотки двигателя поступает серия сигналов от драйвера (как в полношаговом «1», так и в микрошаговых режимах «2», «4», «8», «16»).

Автономный контроллер шагового двигателя схема

С принципом работы шаговых двигателей можно ознакомиться в разделе Wiki — ШД.

Микрошаг:

Большинство драйверов позволяют разделить полный шаг двигателя на несколько микрошагов. Выбор микрошага устанавливается согласно таблице в инструкции к драйверу. В таблице указывается количество микрошагов на полный шаг «Microstep» (1/2/4/8/16/32/…) и/или количество тактов на полный оборот вала «Pulse/rev» (200/400/800/1600/3200/6400/…).

Если для целого поворота ротора двигателя в режиме 1 микрошаг на полный шаг требуется 200 тактов, то в режиме 4 микрошага на полный шаг, потребуется уже 800 тактов.

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

Ограничение тока фазы:

Большинство драйверов позволяют ограничить ток фазы (ток протекающий через обмотки двигателя). Выбор тока фазы осуществляется согласно таблице в инструкции к драйверу. В таблице указывается действующий ток «Current» и/или пиковый ток «PK Current». Чем выше ток, тем выше отдаваемый момент (сила двигателя).

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

У некоторых драйверов ограничение тока осуществляется поворотом потенциометра.

Ток удержания:

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

Снижение тока удержания приводит к снижению нагрева двигателя при его удержании.

Силовые выводы драйвера:

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

  • Входы «VCC», «GND» / «+V», «GND» / «AC+», «AC-» — предназначены для получения напряжения питания шагового двигателя.
  • Выводы «A+» и «A-» — предназначены для подключения первой обмотки шагового двигателя.
  • Выводы «B+» и «B-» — предназначены для подключения второй обмотки шагового двигателя.

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

Автономный контроллер шагового двигателя схема

Драйверы DM860H, DM556, TB6600 позволяют работать только с биполярными двигателями. Двигатели с 4 выводами подключаются по схеме А. Двигатели с 6 выводами подключаются по схеме Б или В. Двигатели с 8 выводами подключаются по схеме Г или Д.

Запрещается подключать или отключать обмотки двигателя на включенном драйвере!

Читайте также:  Ваз 2107 карбюратор как должен работать двигатель

Сигналы управления STEP/DIR (PUL/DIR):

  • Вход драйвера «STEP» (он же «PULSE») — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
  • Вход драйвера «DIR» — предназначен для выбора направления вращения двигателя («0» — в одну сторону, «1» — в другую сторону). Смена состояния вывода «DIR» должна осуществляться при отсутствии импульсов на выводе «STEP».
  • Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.

Автономный контроллер шагового двигателя схема

  • Двигатель отключён если на входе «ENABLE» есть напряжение.Сигналы на входах «STEP» и «DIR» игнорируются драйвером. Вал двигателя освобождён.
  • Вал поворачивается на один микрошаг с каждым импульсом на входе «STEP», при условии что на входе «ENABLE» нет напряжения.Направление поворота вала зависит от состояния на входе «DIR».
  • Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на вход «STEP» не подаются импульсы.
  • t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до изменения уровня на входе «STEP» или «DIR».
  • t2: После изменения состояния на входе «DIR» должно пройти не менее 5мкс до подачи импульса на вход «STEP».
  • t3, t4: Длительность импульса или паузы на входе «STEP» не должна быть меньше 2,5мкс.
  • t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса на вход «STEP». Время зависит от типа драйвера.

Сигналы управления CW/CCW:

(Данные сигналы не поддерживаются драйверами DM860H, DM556, TB6600)

  • Вход драйвера «CW» — предназначен для получения тактовых импульсов. За один импульс ротор двигателя поворачивается на один микрошаг. Вход может работать по фронту или спаду импульса. Чем выше частота импульсов, тем выше скорость вращения ротора.
  • Вход драйвера «CCW» — выполняет те же действия что и вход «CW», но ротор двигателя поворачивается в другую сторону.
  • Вход драйвера «ENABLE» — разрешает работу двигателя. У большинства драйверов данный вход является инверсным, работа двигателя разрешена при отсутствии напряжения на входе. Некоторые драйверы позволяют вообще не подключать этот вход. Если работа двигателя запрещена, то его обмотки электрически отключаются и вал двигателя не удерживается.

Автономный контроллер шагового двигателя схема

  • Двигатель отключён если на входе «ENABLE» есть напряжение.Сигналы на входах «CW» и «CCW» игнорируются драйвером. Вал двигателя освобождён.
  • Вал поворачивается на один микрошаг с каждым импульсом на входе «CW» или «CCW», при условии что на входе «ENABLE» нет напряжения.Направление поворота вала зависит от того, на какой вход поступают импульсы.
  • Вал двигателя удерживается в неподвижном состоянии если на входе «ENABLE» нет напряжения и на входы «CW» и «CCW» не подаются импульсы.
  • t1: После снятия напряжения со входа «ENABLE» должно пройти не менее 5мкс до подачи импульса на вход «CW» или «CCW».
  • t2: После последнего импульса на одном входе должно пройти не менее 5мкс до подачи импульса на дрогой вход.
  • t3, t4: Длительность импульса или паузы не должна быть меньше 2,5мкс.
  • t5: Автоматическое снижение тока удержания происходит через 1-2 сек после подачи последнего импульса. Время зависит от типа драйвера.

Подключение управляющих выводов драйвера:

Для подключения управляющих выводов можно использовать одну их следующих схем:

Автономный контроллер шагового двигателя схема

Допускается подключать драйвер к контроллеру без использования сигнала ENABLE, тогда выводы ENA+ и ENA- остаются свободными (не подключёнными).

  • При уровне логической «1» = 5В, все сопротивления R исключаются из схемы.
  • При уровне логической «1» = 12В, все сопротивления R равны 1кОм.
  • При уровне логической «1» = 24В, все сопротивления R равны 2кОм.

Подключение драйвера к Arduino:

Так как логические уровни Arduino UNO равны 5В, то при подключении управляющих выводов к драйверу, ограничивающие сопротивления R не нужны.

Для подключения драйвера к Arduino воспользуемся схемой где выводы PUL-, DIR-, ENA- подключены к GND контроллера (правая схема на картинке выше).

Если подключить драйвер к Arduino без использования сигнала ENABLE, оставив выводы ENA+ и ENA- не подключёнными, то приведённый ниже скетч не сможет освобождать вал. Вал двигателя будет удерживаться всё время, пока он не вращается.

Автономный контроллер шагового двигателя схема

Выводы драйвера ENA+, DIR+ и PUL+ можно подключить к любым выводам Arduino, их номера указываются в начале скетча. В примере это выводы 2, 3 и 4 соответственно.

Если для подключения драйвера воспользоваться схемой где выводы PUL+, DIR+, ENA+ подключены к 5V контроллера (левая схема на картинке выше), то в скетче нужно изменить логические уровни устанавливаемые функциями digitalWrite().

Управление двигателем при помощи Arduino:

Для работы скетча установите микрошаг 1/4, что соответствует 800 тактов на 1 оборот. Микрошаг устанавливается DIP-переключателями драйвера согласно таблице на его корпусе.

Скетч постоянно повторяет 4 действия:

  • Поворот вала на 2 полных оборота в одну сторону.
  • Остановка двигателя на 5 секунд с удержанием вала.
  • Поворот вала на 2 полных оборота в другую сторону.
  • Остановка двигателя на 5 секунд с освобождением вала.

const uint8_t pin_ENA = 2; // Вывод Arduino подключённый к входу драйвера ENA+.
const uint8_t pin_DIR = 3; // Вывод Arduino подключённый к входу драйвера DIR+.
const uint8_t pin_PUL = 4; // Вывод Arduino подключённый к входу драйвера PUL+.
// Вывод GND Arduino соединён с входами драйвера ENA-, DIR-, PUL-.
uint32_t f = 1000; // Определяем частоту следования микрошагов от 1 до 200'000 Гц.
// Чем выше частота, тем выше скорость вращения вала.
void setup(){ //
pinMode( pin_ENA, OUTPUT ); // Конфигурируем вывод Arduino как выход.
pinMode( pin_DIR, OUTPUT ); // Конфигурируем вывод Arduino как выход.
pinMode( pin_PUL, OUTPUT ); // Конфигурируем вывод Arduino как выход.
} //
//
uint32_t t = 1000000/f/2; // Определяем длительность импульсов t3 и пауз t4 в мкс.
//
void loop(){ //
// Готовимся к движению вала: //
digitalWrite( pin_ENA, 0 ); // Разрешаем работу двигателя.
delayMicroseconds(5); // Выполняем задержку t1 (см. график STEP/DIR).
digitalWrite( pin_DIR, 0 ); // Выбираем направление вращения.
delayMicroseconds(5); // Выполняем задержку t2 (см. график STEP/DIR).
// Поворачиваем вал на 2 оборота: //
for(int i=0; i(F_CPU/255/ 1)){i= 1; j=1;}else
if(f>(F_CPU/255/ 8)){i= 8; j=2;}else
if(f>(F_CPU/255/ 32)){i= 32; j=3;}else
if(f>(F_CPU/255/ 64)){i= 64; j=4;}else
if(f>(F_CPU/255/128)){i= 128; j=5;}else
if(f>(F_CPU/255/256)){i= 256; j=6;}else
{i=1024; j=7;}
// Устанавливаем регистры 2 таймера:
TCCR2A = 0

Контроллер шагового двигателя на ATtiny2313

Автономный контроллер шагового двигателя схемаФункционально устройство состоит из двух частей: «Контроллера» и «Драйвера». «Контроллер» собран на популярном МК Attiny2313, работающим на частоте 1 мГц от внутреннего генератора. «Драйвер» представляет собой набор из 4-х ключей, на транзисторах КТ972.

Конструктивно и «Контроллер» и «Драйвер» собраны на одной печатной плате, но разводка сделана так, что можно собрать на двух отдельных платах, соединив их между собой плоским шлейфом (для этого на плате предусмотрены разъемы) и подав на плату «Контроллера» +5В через разъем Х1, а на плату «Драйвера» от +12 до +35В через разъем Х4 (выв.1).

  • В одноплатном варианте, как на фото, контроллер может использоваться для проверки любого 12-ти вольтового двигателя с питанием от компьютерного блока питания
  • Возможности контролера:- управление шаговым двигателем в 2 стороны (реверсивное вращение);- 9 скоростей вращения двигателя;- вход для проверки контролера, работающий с программой VRI-CNC;- вход для проверки контролера с управляющими сигналами СТЕП-ДИР;- Инверсия сигнала СТЕП;- Пошаговый режим работы;
  • — Полушаговый режим для всех кроме режима СТЕП-ДИР.
  • Автономный контроллер шагового двигателя схема

При включении питания, устройство через 2 секунды стартует в обычном режиме (светодиоды VD1-VD3 не светятся): Крутит двигатель влево (кнопка 1), вправо (кнопка 2), можно изменять скорость (кнопка 3), переключать в режим «ШАГ-ПОЛУШАГ» (кнопка 4), инвертировать сигнал. Если 3-4 секунды удерживать кнопку 3, то по отпускании ее включится максимальная скорость вращения. СТЕП.

Если в момент включения питания удерживать 3 секунды любую кнопку, то устройство стартует в ПОШАГОВОМ режиме (должны зажечься светодиоды VD1-VD3).

Читайте также:  Двигатель perkins не заводится

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

Переход в обычный режим можно осуществить либо отключением и включением питания или джампером «Reset».

Автономный контроллер шагового двигателя схема

  1. Установка FUSE-битов: lfuse:0x64, hfuse:0xdf
  2. Автономный контроллер шагового двигателя схема
Архив для статьи «Контроллер шагового двигателя на Attiny2313»
Описание: Файл прошивки микроконтроллера, макет печатной платы SprintLayout5
Размер файла: 10.14 KB Количество загрузок: 5 055 Скачать

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

Автономный контроллер шагового двигателя схема
Первая модификация силового блока. L293 вытащена.
Автономный контроллер шагового двигателя схема
Вид снизу

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

Шаговый двигатель это, как понятно из его названия, двигатель который вращается дискретными перемещениями. Достигается это за счет хитрой формы ротора и двух (реже четырех) обмоток. В результате чего, путем чередования направления напряжения в обмотках можно добиться того, что ротор будет по очереди занимать фиксированные значения.
В среднем, у шагового двигателя на один оборот вала, приходится около ста шагов. Но это сильно зависит от модели двигателя, а также от его конструкции. Кроме того, существуют полушаговый и микрошаговый режим, когда на обмотки двигателя подают ШИМованное напряжение, заставляющее ротор встать между шагами в равновесном состоянии, которое поддерживается разным уровнем напряжения на обмотках. Эти ухищрения резко улучшают точность, скорость и бесшумность работы, но снижается момент и сильно увеличивается сложность управляющей программы — надо ведь расчитывать напряжения для каждого шага.

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

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

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

Типы шаговых двигателей
Если не углубляться во внутреннюю конструкцию, число шагов и прочие тонкости, то с пользовательской точки зрения существует три типа:

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

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

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

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

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

Схема управления шаговым двигателем
Я разжился контроллерами шаговиков L297 и мощным сдвоенным мостом L298N.

Лирическое отступление, при желании можно его пропустить

Именно на нем был сделан мой первый силовой блок робота. Кроме него там еще два источника питания на 5 и на 3.3 вольта, а также контроллер двух движков на L293 (такой же как и во второй реализации силового блока). В качестве контроллера тогда был выбран АТ89С2051.

Это антикварный контроллер архитектуры MSC-51 в котором из периферии только два таймера, порты да UART, но я его люблю нежно и трепетно, так как первая любовь не проходит никогда =).

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

Короче, знатный был проект. Ныне валяется трупом, т.к. все лень запустить Keil uVision и написать новую прошивку. Да и ассемблер С51 я стал уже забывать.

Схема включения L298N+L297 до смешного проста — надо тупо соединить их вместе. Они настолько созданы друг для друга, что в даташите на L298N идет прямой отсыл к L297, а в доке на L297 на L298N.

Автономный контроллер шагового двигателя схема

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

  • На вход CW/CCW подаем направление вращения — 0 в одну сторону, 1 — в другую.
  • на вход CLOCK — импульсы. Один импульс — один шаг.
  • вход HALF/FULL задает режим работы — полный шаг/полушаг
  • RESET сбрасывает драйвер в дефолтное состояние ABCD=0101.
  • CONTROL определяет каким образом задается ШИМ, если он в нуле, то ШИМ образуется посредством выходов разрешения INH1 и INH2, а если 1 то через выходы на драйвер ABCD. Это может пригодится, если вместо L298 у которой есть куда подключать входы разрешения INH1/INH2 будет либо самодельный мост на транзисторах, либо какая-либо другая микросхема.
  • На вход Vref надо подать напряжение с потенциометра, которое будет определять максимальную перегрузочную способность. Подашь 5 вольт — будер работать на пределе, а в случае перегрузки сгорит L298, подашь меньше — при предельном токе просто заглохнет. Я вначале тупо загнал туда питание, но потом передумал и поставил подстроечный резистор — защита все же полезная вещь, плохо будет если драйвер L298 сгорит.
    Если же на защиту пофигу, то можешь заодно и резисторы, висящие на выходе sense выкинуть нафиг. Это токовые шунты, с них L297 узнает какой ток течет через драйвер L298 и решает сдохнет он и пора отрубать или еще протянет. Там нужны резисторы помощней, учитывая что ток через драйвер может достигать 4А, то при рекомендуемом сопротивлении в 0.5 Ом, будет падение напряжения порядка 2 вольт, а значит выделяемая моща будет около 4*2=8 Вт — для резистора огого! Я поставил двухваттные, но у меня и шаговик был мелкий, не способный схавать 4 ампера.

Правда на будущее, когда я буду делать роботу шаговый привод, я возьму не связку L297+L293, а микруху L6208 которая может и чуть слабей по току, но зато два в одном! Сразу подключай двигатель и работай. Если же их покупать, то на L6208 получается даже чуть дешевле.

Документация по микросхемам:

Спасибо!!! Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics!!! Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто!!! Сейчас идет заключение договора и подготовка к строительству!

А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок!!!

Ссылка на основную публикацию
Adblock
detector