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

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

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 можно приобрести здесь:

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

Шаговый электродвигатель

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

Содержание

  • 1 Описание
  • 2 Использование
    • 2.1 Датчик поворота
  • 3 Преимущества и недостатки
  • 4 См. также
  • 5 Примечания
  • 6 Литература
  • 7 Ссылки

Описание [ править | править код ]

Первые шаговые двигатели появились в 1830-х годах и представляли собой электромагнит, приводящий в движение храповое колесо. За одно включение электромагнита храповое колесо перемещается на величину зубцового шага храпового колеса. Храповые шаговые двигатели и в настоящее время находят довольно широкое применение [1] .

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

Таким образом по конструкции ротора выделяют следующие разновидности шагового двигателя [2] :

  • с постоянными магнитами (ротор из магнитотвёрдого материала);
  • реактивный (ротор из магнитомягкого материала);
  • гибридный.

Гибридные двигатели сочетают в себе лучшие черты двигателей с переменным магнитным сопротивлением и двигателей с постоянными магнитами.

Статор гибридного двигателя также имеет зубцы, обеспечивая большое количество эквивалентных полюсов, в отличие от основных полюсов, на которых расположены обмотки. Обычно используются 4 основных полюса для 3,6-градусных двигателей и 8 основных полюсов для 1,8—0,9-градусных двигателей. Зубцы ротора обеспечивают меньшее сопротивление магнитной цепи в определённых положениях ротора, что улучшает статический и динамический момент. Это обеспечивается соответствующим расположением зубцов, когда часть зубцов ротора находится строго напротив зубцов статора, а часть — между ними.

Ротор гибридного двигателя имеет зубцы, расположенные в осевом направлении. Ротор разделён на две части, между которыми расположен цилиндрический постоянный магнит. Таким образом, зубцы верхней половинки ротора являются северными полюсами, а зубцы нижней половинки — южными. Кроме того, верхняя и нижняя половинки ротора повёрнуты друг относительно друга на половину угла шага зубцов. Число пар полюсов ротора равно количеству зубцов на одной из его половинок. Зубчатые полюсные наконечники ротора, как и статор, набраны из отдельных пластин для уменьшения потерь на вихревые токи.

Использование [ править | править код ]

В машиностроении наибольшее распространение получили высокомоментные двухфазные гибридные шаговые электродвигатели с угловым перемещением 1,8°/шаг (200 шагов/оборот) или 0,9°/шаг (400 шаг/об). Точность выставления шага определяется качеством механической обработки ротора и статора электродвигателя. Производители современных шаговых электродвигателей гарантируют точность выставления шага без нагрузки до 5 % от величины шага.

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

Режим дробления шага (микрошаг) реализуется при независимом управлении током обмоток шагового электродвигателя. Управляя соотношением токов в обмотках, можно зафиксировать ротор в промежуточном положении между шагами. Таким образом можно повысить плавность вращения ротора и добиться высокой точности позиционирования. Качество изготовления современных шаговых двигателей позволяет повысить точность позиционирования в 10—20 раз.

Шаговые двигатели стандартизованы национальной ассоциацией производителей электрооборудования [en] (NEMA) по посадочным размерам и размеру фланца: NEMA 17, NEMA 23, NEMA 34 и др. — размер фланца 42, 57, 86 и 110 мм соответственно. Шаговые электродвигатели NEMA 23 могут создавать крутящий момент до 30 кгс⋅см, NEMA 34 — до 120 кгс⋅см и до 210 кгс⋅см для двигателей с фланцем 110 мм.

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

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

Шаговые двигатели применяются в устройствах компьютерной памяти — НГМД, НЖМД, устройствах чтения оптических дисков.

Датчик поворота [ править | править код ]

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

  • без вращения вала нет ЭДС; определить положение стоящего вала нельзя;
  • возможна остановка вала в зоне неустойчивого равновесия (промежуточно между полюсами) ШД. Последующий пуск вала приведёт к тому, что, в зависимости от чувствительности компаратора, будет пропуск этого полюса, или два импульса вместо одного. В обоих случаях все дальнейшие отсчёты будут с ошибкой на один шаг. Для практически полного, но не 100%-го, устранения такого поведения необходимо применить муфту с соответствующим гистерезисом (угловым люфтом).

Преимущества и недостатки [ править | править код ]

Главное преимущество шаговых приводов — точность. При подаче потенциалов на обмотки шаговый двигатель повернётся строго на определённый угол. Стоимость шаговых приводов в среднем в 1,5—2 раза ниже сервоприводов. Шаговый привод, как недорогая альтернатива сервоприводу, наилучшим образом подходит для автоматизации отдельных узлов и систем, где не требуется высокая динамика. Можно отметить также длительный срок службы, порой сравнимый со временем морального устаревания или выработки ресурса всего станка; точность работы ШД за это время падает незначительно. Нетребовательны к техобслуживанию.

Возможность «проскальзывания» ротора — наиболее известная проблема этих двигателей. Это может произойти при превышении нагрузки на валу, при неверной настройке управляющей программы (например, ускорение старта или торможения не адекватно перемещаемой массе), при приближении скорости вращения к резонансной. Наличие датчика позволяет обнаружить проблему, но автоматически скомпенсировать её без остановки производственной программы возможно только в очень редких случаях [ источник не указан 2990 дней ] . Чтобы избежать проскальзывания ротора, как один из способов, можно увеличить мощность двигателя.

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

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

в двигателе содержится две обмотки, которые в свою очередь разделены на четыре, из-за этого и название 4-х фазный. Центральные отводы катушек подключены вместе и служат для питания двигателя, так-как каждая обмотка подключена к питанию, такие двигатели называют униполярный. На валу 28BYJ-48 расположено 8 магнитов, с чередующими полюсами (то есть, четыре магнита с двумя полюсами). Внутри расположен редуктор, с примерным передаточным числом в 1:63,68395. Это означает, что двигатель за один оборот осуществляет 4075.7728395 шага. Данный двигатель поддерживает полушаговый режим и за один полный оборот может совершать 4076 шага, а точнее за 1° делает примерно 11,32 шага. (4076 / 360 = 11,32).

Режим работы:
Чаще всего, при использовании шагового двигателя 28BYJ 48, используют два режима подключения.
Полношаговый режим — за 1 такт, ротор делает 1 шаг.
Полушаговый режим — за 1 такт, ротор делает ½ шага.

Когда используется полношаговый метод управления, две из четырех обмоток запитываются на каждом шаге. Идущая вместе с Arduino IDE библиотека Stepper использует такой способ. В техническом руководстве к 28BYJ-48 сказано, что предпочтительным является использование метода полушага, при котором сначала запитывается только 1 обмотка, затем вместе первая и вторая обмотки, затем только вторая обмотка и так далее. С 4 обмотками это дает 8 различных сигналов, как показано в таблице ниже.

Модуль шагового двигателя ULN2003:
Цифровой вывод микроконтроллера может выдать ток

40 мА, а одна обмотка 28BYJ-48 в пике потребляем

320 мА, следовательно если подключить двигатель напрямую, микроконтроллер сгорит. Для защиты был разработан «Модуль шагового двигателя ULN2003″, в котором используется микросхема ULN2003A (по сути, состоящая из 7 ключей), позволяющая управлять нагрузкой до 500 мА (один ключ). Данный модуль может работать с 5В и 12В двигателем 28BYJ-48, для переключения необходимо установить или убрать перемычку (по умолчанию перемычка установлена, питание 5В).

Принципиальную схему модуля ULN2003 можно посмотреть на рисунке ниже

Назначение X1
IN1 . . . IN7: Вход 1 … 7

Назначение X2
► 1 — GND: «-» питание модуля
► 2 — Vcc: «+» питание модуля (5В или 12В)
► 3 — Vcc: «+» питание модуля (перемычка, только при 5В)
► 4 — Vcc: «+» питание модуля (перемычка, только при 5В)

Назначение X3
► A: Выход 1
► B: Выход 2
► C: Выход 3
► D: Выход 4
► E: Выход 5
► F: Выход 6
► G: Выход 7

Назначение X3
► 1 — Питание
► 2 — A
► 3 — B
► 4 — C
► 5 — D

Внешний вид платы модуля

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

Также сбоку расположен джампер (два вывода под четырьмя резисторами), установка которого позволяет подавать питание на шаговый двигатель. Замечу, что питать мотор от 5 В Arduino не рекомендуется, так как мотор может потреблять ток, превышающий возможности Arduino. Лучше использовать внешний 5-12 В источник питания, выдающий ток не менее 1 А. Четыре управляющих входа помечены как IN1-IN4 и должны быть подключены к четырем цифровым выводам Arduino.

Подключите выводы IN1, IN2, IN3 и IN4 к пинам 3, 4, 5 и 6 Arduino Uno. Положительный контакт источника питания необходимо подключить к выводу, помеченному как «+», а землю источника питания к выводу «-» на плате контроллера. Если для питания Arduino и мотора используются различные источники питания, то необходимо объединить выводы «земля» источников вместе.

Подключение:
В данном примере буду использовать модуль ULN2003, Arduino UNO R3 и двигатель 28BYJ-48-5V. Схема не сложная, необходимо всего шесть провода, сначала подключаем интерфейсные провода, IN1 (ULN2003) в 11 (Arduino UNO), IN2 (ULN2003) в 10 (Arduino UNO), IN3 (ULN2003) в 9 (Arduino UNO) и IN4 (ULN2003) в 8 (Arduino UNO), осталось подключить питание GND к GND и VCC к VIN (не для постоянного использовании), подключаем разъем двигателя в модуль ULN2003.

Стандартная библиотека Stepper, идущая с Arduino IDE, поддерживает только полношаговый метод управления и имеет сильно ограниченные возможности. Использовать ее можно только в очень простых приложениях, в которых используется только один мотор. Применение библиотеки Stepper для управления 28BYJ-48 является не самым эффективным решением.

Библиотека CustomStepper

Для вращения двигателя по часовой и против часовой стрелки, используем библиотеку «CustomStepper«. Данная библиотека не входит в стандартную среду разработки Arduino IDE, так что скачиваем и добавляем ее.

#include // Подключаем библиотеку CustomStepper

CustomStepper stepper(8, 9, 10, 11); // Указываем пины, к которым подключен драйвер шагового двигателя

boolean rotate1 = false; // Переменная для смены режимов

boolean rotatedeg = false; // Переменная для смены режимов

boolean crotate = false; // Переменная для смены режимов

stepper.setRPM(12); // Устанавливаем количество оборотов в минуту

stepper.setSPR(4075.7728395); // Устанавливаем колочество шагов на полный оборот. Максимальное значение 4075.7728395

if (stepper.isDone() && rotate1 == false)

stepper.setDirection(CCW); // Устанавливает направление вращения (по часовой)

stepper.rotate(2); // Устанавливает вращение на заданное количество оборотов

if (stepper.isDone() && rotate1 == true && rotatedeg == false)

stepper.setDirection(CW); // Устанавливает направление вращения (против часовой)

stepper.rotateDegrees(90); // Поворачивает вал на заданное кол-во градусов

if (stepper.isDone() && rotatedeg == true && crotate == false)

stepper.setDirection(CCW); // Устанавливает направление вращения (по часовой)

stepper.rotate(); // Будет вращать пока не получит команду о смене направления или STOP

stepper.run(); // Этот метод обязателен в блоке loop. Он инициирует работу двигателя, когда это необходимо

Скачать библиотеку можно здесь

Библиотека AccelStepper

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

  • Объектно-ориентированный интерфейс для 2, 3 или 4-выводных шаговых двигателей
  • Поддержка ускорения и замедления
  • Поддержка одновременно нескольких шаговых двигателей с независимой работой для каждого мотора
  • Функции API не используют функцию delay и не прерывают работу
  • Поддержка контроллеров шаговых двигателей таких как Sparkfun EasyDriver (основанных на микросхеме драйвера 3967)
  • Поддержка низких скоростей
  • Расширяемый API
  • Поддержка подклассов

Представленный ниже код медленно ускоряет мотор 28BYJ-28 в одном направлении, затем замедляется до остановки и вновь ускоряется, но уже вращаясь в противоположном направлении.

#define HALFSTEP 8

// Определение пинов для управления двигателем

#define motorPin1 3 // IN1 на 1-м драйвере ULN2003

#define motorPin2 4 // IN2 на 1-м драйвере ULN2003

#define motorPin3 5 // IN3 на 1-м драйвере ULN2003

#define motorPin4 6 // IN4 на 1-м драйвере ULN2003

// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4

// для использования AccelStepper с 28BYJ-48

AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);

Контроллер микрошагового управления двухфазным шаговым двигателем с электрическим дроблением основного шага

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

Известны следующие способы электрического дробления основного (конструктивного) шага при управлении фазами шагового двигателя (ШД) [1, 4, 5]:

  • естественное дробление: полношаговый и полушаговый режимы;
  • искусственное дробление: микрошаговый режим.

Изменение цены шага при естественном дроблении достигается исключительно за счет изменения комбинации включения обмоток ШД. На рис. 1 приведены номограммы векторов статического (вращающего) момента в соответствующих режимах.

Рис. 1. Естественные режимы коммутации фаз двухфазного ШД:
а) полношаговый с включением одной фазы;
б) полношаговый с включением двух фаз;
в) полушаговый

По сравнению с полношаговым режимом полушаговый имеет следующие преимущества:

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

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

Искусственное дробление шага предполагает одновременное управление током не менее чем в двух фазах ШД [1, 5]. Чтобы получить нужное направление магнитного поля, необходимо выбрать не только правильное направление токов в катушках, но и правильное соотношение этих токов.

Если одновременно запитаны две обмотки двигателя, но токи в этих обмотках не равны (рис. 2), то результирующий момент M = (MA 2 +MB 2 ) 0,5 , а точка равновесия ротора сместится в точку х = (S/(π/2)) × arctan(MB/MA), где MA и MB — момент, создаваемый первой и второй фазой соответственно, M — результирующий момент удержания, x — положение равновесия ротора в радианах, S — угол шага в радианах.

Рис. 2. Зависимость момента от угла поворота ротора в случае разных значений тока фаз

Смещение точки равновесия ротора говорит о том, что ротор можно зафиксировать в любой произвольной позиции. Для этого нужно лишь правильно установить отношение токов в фазах. Именно этот факт используется при реализации микрошагового режима. К тому же меньший угол шага способен обеспечить более точное позиционирование.

Существует много различных микрошаговых режимов, с величиной шага от 1/3 полного шага до 1/32 и даже меньше.

Рис. 3. Номограмма статического момента

Функции изменения токов в фазах выбирается при этом таким образом, чтобы исходные статические характеристики в совокупности обеспечивали постоянство амплитуды и формы статического (вращающего) момента ШД (рис. 3). Это возможно только если кривые статического момента, создаваемые отдельными фазами ШД, и суммарная статическая характеристика будут синусоидальными функциями угла рассогласования (рис. 4) между осями полюсов магнитных полей статора и ротора [1, 2].

Рис. 4. Микрошаговый режим управления двухфазным ШД

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

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

Структурная блок-схема устройства микрошагового управления двухфазным ШД приведена на рис. 5. Входной контроллер вырабатывает определенную последовательность импульсов, которую логический блок использует для формирования адресов ячеек постоянного запоминающего устройства (ПЗУ), в которых хранятся коды фазных токов ШД текущего шага. С выхода ПЗУ эти коды загружаются в цифро-аналоговые преобразователи (ЦАП), на выходах которых формируются напряжения, пропорциональные токам фаз ШД. Эти напряжения усиливаются линейными усилителями мощности (ЛУМ) и через коммутаторы подаются на обмотки ШД. Одновременно логический блок вырабатывает коды управления коммутаторами, обеспечивая правильность подключения обмоток ШД к выходам ЛУМ.

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

В современных системах управления ШД управляющий контроллер (часть блок-схемы, выделенная серым цветом) выполняется либо в виде дорогостоящей специализированной микросхемы, возможности которой ограничены (в смысле изменения коэффициента дробления), либо используются микроконтроллеры (МК). Современные МК имеют встроенные таймеры, ЦАП и т. д., которые можно использовать для реализации микрошагового режима практически с любым коэффициентом дробления (программными средствами без усложнения аппаратурного содержания) взамен специальных контроллеров [2, 4].

Функциональная схема устройства микрошагового управления двухфазным ШД

Функциональная схема устройства микрошагового управления двухфазным ШД, контроллер которого реализован на МК, приведена на рис. 6. В устройстве использован микроконвертер ADuC812 [3, 7].

Рис. 6. Функциональная схема микроконтроллерного устройства микрошагового управления двухфазным ШД:
МК — микроконтроллер;
ЛУМ — линейный усилитель мощности;
АК — аналоговый ключ;
ФА, ФВ — обмотки фаз ШД

Выбор АК и ЛУМ определяется типом ШД (значениями фазных токов и напряжения питания).

Использование ресурсов микроконвертера:

P3.0 — уменьшение частоты вращения;

P3.1 — увеличение частоты вращения;

P3.2 — запрос внешнего прерывания (INTO) — установка частоты вращения ШД;

P3.3 — запрос внешнего прерывания (INT1) — установка направления вращения;

P3.5 — «0» — точно, «1» — грубо;

P3.7 — «0» — STOP, «1» — START;

DAC0 — выход первого ЦАП;

DAC1 — выход второго ЦАП;

P2.3-P1.0 — порт вывода кода управления аналоговыми коммутаторами (АК);

Т2 — таймер — формирователь длительности дробного шага;

F0 — пользовательский флаг направления;

FI — флаг останова таймера 2.

В таблице приведены коды управления АК, выходные значения напряжений ЦАП1 и ЦАП2 для каждого шага дробления, а также последовательность переключения фаз.

Алгоритм программы управления

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

Рис. 7. Алгоритм управления ШД в микрошаговом режиме

Программа управления

Программа управления написана на языке Assembler для Intel-МСS51-совместимых микроконтроллеров [5] и отлажена в интегрированной среде разработки приложений Keil-μVision3, основное окно которой с результатами отладки программы показано на рис. 8.

Рис. 8. Окно среды программирования Keil-μVision3 с результатами отладки программы управления

При тактовой частоте микроконтроллера 11,0592 МГц частота вращения ШД находится в диапазоне:

а) в режиме «Точно» 0-100 об/мин;
б) в режиме «Грубо» 100-1000 об/мин.

Программа защищена от зацикливания встроенным сторожевым таймером, настроенным на период сброса, равный 2047,973 мс.

Выводы

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

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

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

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