Управление электромоторами. Основы ПК и программирования.

Управление электромоторами

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

Шаговые электромоторы

Устройством, которое часто подключается к встроенной системе, является шаговый электромотор. Шаговый электромотор обычно рассматривается как дискретный электромотор, потому что он перемещает вал дискретными шагами, переходя через 360°. Обычный шаговый электромотор имеет передаточный механизм, обеспечивающий угол поворота приблизительно от 15° до 1° на шаг в прецизионных шаговых электромоторах. Во всех случаях, эти шаги обеспечиваются через использование нескольких полюсов магнита и (или) использование передаточных механизмов. Обратите внимание, на то, что две противоположные катушки, возбуждаются одновременно. Это называется полношаговым режимом и заставляет ротор поворачиваться на 0 ’, 90 180 ’ и 270 ’. С целью экономии мощности, одновременно может возбуждаться только одна катушка, однако это снижает силу поворота.

Рассмотрим четырехкатушечный шаговый мотор с www.evromash.ru, в котором используется ротор с одним полюсом. Шаговый мотор показан в четырех состояниях с ротором (постоянно намагничен), находящимся в четырех дискретных состояниях. Соответствующий поворот ротора достигается посредством запитывания пары катушек. Это иллюстрирует полношаговый режим. Шаговый мотор управляется с использованием N-канального полевого МОП-транзистора для обеспечения значительного тока на каждую катушку. Усилитель на полевых МОП-транзисторах может быть заменен усилителем на составном транзисторе Дарлингтона. Такой усилитель содержит внутренние демпферные диоды, предназначенные для шунтирования любых выбросов обратного индуктивного напряжения, генерируемых коллапсом магнитного поля вокруг полевого МОП-транзистора.

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

Простая процедура на языке С, которая управляет электромотором (принимая, что порт В запрограммирован как выходной порт). Эта функция вызывается с параметром шага, который содержит число шагов и направления вращения. Если значение параметра шага больше, чем 0x8000, то мотор поворачивается в направлении вращения часовой стрелки; если значение параметра шага меньше, чем 0x8000, то мотор поворачивается в направлении против вращения часовой стрелки. Например, если значение параметра шага равно 0x0003, то мотор поворачивает ротор против часовой стрелки на три шага, а если параметр шага равен 0x8003, то он повернет ротор на три шага в направлении движения часовой стрелки. Крайний левый разряд параметра шага удаляется, при этом остальные 15 разрядов содержат число шагов. Обратите внимание, что в показанной процедуре используется временная задержка, равная 1,0 мс. Эта временная задержка требуется для того, чтобы дать ротору шагового электродвигателя время на выход в следующую позицию.

Текущая позиция ротора сохраняется в ячейке памяти currentPosition, которая должен быть инициализирована значением 0x33, 0x66, ОхЕЕ или 0x99. Это позволяет при помощи простых команд RRNCF (шаг вправо) или RLNCF (шаг влево) формировать двоичные битовые структуры для следующего шага посредством циклического сдвига. При использовании Ассемблера в программе на языке С, должны быть включены все поля команд. Почему использовался Ассемблер для того, чтобы осуществлять циклический сдвиг числа в ячейке памяти currentPosition? В языке С имеется только команда сдвига, поэтому реализация циклического сдвига на С будет намного более сложной - она будет сопряжена с расходованием намного большего объема памяти и времени.

Шаговые электродвигатели также функционируют в режиме половинного шага, который позволяет выполнять восемь шагов на одну последовательность. Это выполняемся при использовании описанной полношаговой последовательности, и формировании половинного шага за счет возбуждения только одной катушки из числа установленных между полными шагами. Режим половинного шага позволяет ротору позиционироваться на 45°, 135°, 225° и 315° в дополнение к позициям режима полного шага. Коды позиций режима половинного шага - это 0x11,0x22, 0x44 и 0x88. Полная последовательность из восьми шагов, включающая половинные и полные шаги, имеет вид: 0x11, 0x33, 0x22, 0x66, 0x44, ОхСС, 0x88, и 0x99. Эта последовательность должна либо извлекаться из поисковой таблицы, либо генерироваться программно.

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

Электромоторы постоянного тока

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

В сети, в свободном доступе, можно найти схемы управления, требуемые для того, чтобы управлять электромотором постоянного тока как однонаправленным, так и двунаправленным устройством. Разберем схемы управления на полевых МОП-транзисторах, потому что в этом случае стоимость схем подобна стоимости схем на биполярных переключательных транзисторах, кроме того в случае использования интерфейса на полевых МОП-транзисторах требуется меньше деталей. Двунаправленная схема управления оптически изолирована от схемы управления электромотором на Н-образном мосте. Это распространенная практика, имеющая целью предотвращение проблем и изоляцию микроконтроллера от схемы управления электромотором. С целью управления электромотором управляющий вход Н-образного моста включает пару противоположно включенных полевых МОП-транзисторов. Пороговое напряжение большинства мощных полевых МОП-транзисторов является приблизительно равным 3,0 В. Для включения полевого МОП-транзистора на вход подается положительное напряжение, превышающее порог, а для его выключения - напряжение, являющееся более низким, чем пороговое. Поскольку полевые МОП-транзисторы - это устройства, управляемые по напряжению, то можно было бы предположить, что ток затвора является очень небольшим. Это истинно в случае мощного полевого МОП-транзистора, рассматриваемого как отдельное устройство, однако не показано то, что тысячи полевых МОП-транзисторов включены в параллель внутри корпуса микросхемы с целью управления большими токами. Так как затвор полевого МОП-транзистора представляет собой конденсатор, а когда конденсаторы включаются параллельно, то их емкости складываются, то вход имеет довольно большую емкость. Заряд или разряд емкости затвора может потребовать значительного тока. Например, довольно типично, что переключение тока в 1 А при помощи мощного полевого МОП-транзистора требует тока затвора, равного 1,5 мА. Однако, переключение тока в 12А потребует уже 150 мА тока затвора. Таким образом, схемы управления для сильноточных применений требуются ДЛЯ организации интерфейса микроконтроллера с мощными полевыми МОП-транзисторами.

Чтобы изменить скорость вращения электромотора используется ШИМ-модулятор микроконтроллера с тем, чтобы обеспечить схеме управления сигнал с переменной шириной импульса. ШИМ использует таймер 2 и функционирует как схема управления с одним выходом, или как схема управления с двумя выходами для половины Н-образного моста, или же как схема управления с четырьмя выходами для управления полным Н-образным мостом. Различные члены семейства имеют один или большее количество ШИМ-модуляторов с целью управления более, чем одним электромотором. Сигнал, подаваемый на электромотор, должен быть выше диапазона слышимых частот, ибо в противном случае электромотор будет “петь" на частоте модуляции. Основная частота ШИМ должна быть по крайней мере равной 5 кГц. (Большинство электромоторов механически не смогут вибрировать на частоте в 10 кГц, которая является слышимой). Она должна также быть меньше, чем приблизительно 30 кГц, иначе могут возникнуть проблемы, если для изделия потребуется одобрение FCC. В большинстве случаев 8-разридная ШИМ будет достаточна для управления большинством однонаправленных электромоторов постоянного тока. Она обеспечивает 256 разных значений скорости. Если будет производиться управление двунаправленны электромотором, то такая ШИМ обеспечит 128 значений скорости для каждого направления, что может быть, а может и не быть достаточным скоростей для полноценного управления. Чтобы генерировать большее количество приращений скорости, требуется использование ШИМ большей разрядности. К счастью, ШИМ в микроконтроллере имеет разрядность в 10 битов, что позволяет использовать вплоть до 1024 значений скорости. Вероятно, что это более, чем достаточно для большинства применений.

Входом модуля таймера является системная тактовая частота, разделенная 4, - она может дополнительно делиться предварительным делителем на 1,4 или 16, как это программируется битами T2CKPS1 и T2CKPS0 регистра управления (T2CON) таймера 2. Например, если система использует тактовый генератор на 4 МГц, а предварительный делитель установлен на коэффициент деления 4, то таймер будет активироваться один раз каждые 4 мкс (4 мГц/16 = 250 кГц). Регистр периода (PR2) определяет значение отсчета, которое сбросит TMR2. Таймер 2 инкрементируется по каждому входному тактовому импульсу, а затем, если PR2 равен TMR2, выполняется сброс таймера по приходу следующего импульса тактовой частоты. Вход TMR2 делится на PR2 + 1. Например, если предварительный делитель установлен на коэффициент деления, равный 4, входная таковая частота равна 4 МГц, a PR2 запрограммирован на 9, то выходная частота таймера 2 частота будет равна 25 кГ ц.

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

Перед тем, как начать рассмотрение программного обеспечения, предназначенного для управления ШИМ и генерирования широтно-импульсно модулированного сигнала управления электромотором, необходимо понять функционирование ШИМ. Модуль ССР (сбор данных/сравнение/ШИМ) включает широтно-импульсный модулятор, имеющий до четырех выходов. В режиме сбора данных ССР регистрирует содержание таймера 1 или таймера 3, когда на штырьке RB3 происходит событие. Событием может быть нарастающий фронт сигнала, ниспадающий край, каждый четвертый нарастающий фронт сигнала или каждый 16-ый нарастающий фронт. Эти события используются для того, чтобы измерить время между фронтами сигнала, отсчитываемое по таймеру 1 или таймеру 3. В режиме сравнения таймер 1 или таймер 3 сравнивается с CCPR1 (16-разрядный регистр). Если имеет место соответствие, то RB3 устанавливается в состояние логической единицы, нуля, переключается или вырабатывается запрос прерывания. Этот режим полезен для генерирования сигнала по истечении некоторого количества периодов тактовой частоты. Режим ШИМ, который является основной темой данного подраздела, использует таймер 2 и функцию сравнения ССР для того, чтобы генерировать выходной широтно-импульсный модулированный сигнал на штырьке Р1А, который называется RB3 8 большинстве версий микроконтроллеров. Это выходной сигнал, предназначенный для управления однонаправленным электромотором. Если половинный или полный Н-образный мост используется для того, чтобы управлять двунаправленным электромотором, то используются выводы Р1А, Р1В или Р1 А, Р1В, Р1С и P1D. Некоторые версии микроконтроллеров имеют более одного модуля ШИМ.

Рассмотрим блок-схему ШИМ для случая 8-разрядного режима работы и выходной сигнал, демонстрирующий рабочий цикл, равный 50%. (Рабочий цикл - это время высокого состояния сигнала, поделенное на время его низкого состояния.) Таймер 2 определяет период следования сигнала, a CCPR1L выбирает время высокого состояния выходного сигнала, которое определяет рабочий цикл выхода ШИМ. Когда TMR2 (таймер 2) досчитает до отсчета, предварительно запрограммированного PR2, то выходной сигнал устанавливается в единицу и содержимое CCPR1L загружается в CCPR1 н, при этом таймер 2 сбрасывается в ноль. Когда таймер 2 досчитывает до заранее определенного отсчета, запрограммированного CCPR1L, то выходной сигнал сбрасывается. Например, для генерирования рабочего цикла в 50%, если PR2 запрограммирован на 100, в CCPR1L нужно загрузить 50. Это приведет к установке выходного сигнала каждый раз при очистке TMR2, а затем, когда TMR2 досчитает до 50, выходной сигнал сбрасывается и остается в состоянии логического нуля до тех пор, пока отсчет не достигнет 100, где выходной сигнал устанавливается снова. Рабочий цикл в 25% будет получен, например, если PR2 запрограммирован на 100, a CCPR1L - на 25.

Предположим, что электромотор постоянного тока подключен к выводу Р1А (RB3). Электромотор управляется только в одном направлении, так что схема схемы управления электромотором не должна быть сложной. Этот интерфейс использует кварцевый резонатор на 4 МГц для синхронизации и две кнопки, подключенные к РАО и РА1 для управления скоростью. Одна из этих кнопок обозначена как UP (увеличить), а другая - DOWN (уменьшить). Кнопка UP увеличивает скорость вращения электромотора, а кнопка DOWN - уменьшает ее. Если ШИМ генерирует сотни рабочих циклов выходного сигнала, то много работы нужно для того, чтобы изменить скорость вращения от остановки до полной скорости, схема часто использует только 10 различных скоростей. Электромотор в этом примере мог бы быть электромотором потолочного вентилятора.

В этом примере частота ШИМ равна 22,7 кГц. Тактовая частота таймера 2 - это всегда частота тактового генератора, разделенная на 4. В этом случае тактовая частота таймера 2 равна 1 МГц, потому что в системе используется тактовый генератор на 4 МГц. Вследствие того, что предварительный делитель таймера 2 настроен на коэффициент деления, равный 4, то таймер 2 будет работать на частоте 250 кГц. Таймер 2 запрограммирован на сброс после того, как досчитает от 0 до 10 (PR2). Таймер 2 считает от нуля до 10, а затем сбрасывается, деля вход тактовой частоты в 250 кГц на 11 (250 кГц/11 = 22,7 Гц). Эта частота не является слышимой.

Начальный отсчет CCPR1L равен 11. Это заставляет вывод выходного сигнала ШИМ (RB3) устанавливаться в состояние логической единицы, потому что выходной сигнал компаратора ССР никогда не сбрасывает внутренний RS- триггер. Аналогично, если CCPR1L будет запрограммирован нулем, то выходной сигнал станет постоянным логическим нулем, потому что выходная фиксирующая схема будет постоянно сброшена. Логическая 1, поданная на вход схемы управления электромотором, связанный с RB3, заставляет схему управления КМОП выключиться, потому что нет никакого входного напряжения. Это останавливает электромотор. Если кнопка UP будет нажата, то содержимое CCPR1L декрементируется на 10. Это заставляет выход ШИМ сгенерировать сигнал, который будет в состоянии логической 1 на протяжении 10 отсчетов и в состоянии логического 0 на протяжении 1 отсчета. Схема управления КМОП будет включена для 1 отсчета и выключена для 10 отсчетов. Рис. 7.21 показывает несколько сигналов для нескольких различных установок CCPR1L.

В этой программе CCP1CON (регистр управления ССР) программируется для того, чтобы выбрать режим работы регистра модуля ССР. В этом примере CCP1CON программируется на ОхОС, что обеспечивает выбор одного выход (Р1 А), который является активным по логической единице. Различные режимы работы и сигналы, доступные на Р1А через выводы P1D иллюстрируются на рисунке 7.23. Выходы Р1А и Р1С предназначены для активирования одного из нагрузочных полевых МОП-транзисторов в Н-образном мосте, в то время как сигнал перемещения электромотора поступает на выходные выводы Р1D или Р1В для формирования результирующего выхода моста.

Предположим, что электромотор должен управляться от устройства типа джойстика, которое содержит потенциометр. Потенциометр задает напряжение, по мере того, как ручка джойстика перемещается от одного крайнего положения к другому. Поскольку микроконтроллер содержит АЦП, выход джойстика используется как вход для этого АЦП, генерируя дискретное число, которое соответствует установке ручки джойстика. АЦП генерирует 8-разрядное значение, которое используется как вход для ШИМ с целью управления скоростью и направлением вращения электромотора, связанного с микроконтроллером как Н-образный мост, управляемый полевым МОП-транзистором. В этой схеме четыре IRF540N управляют током, который может достигать вплоть до 33 А, так что этой схемой может управляться довольно большой электромотор. В этой схеме также используются оптические развязки, изолирующие схему управления электромотором от микроконтроллера. Схемы управления для полевых МОП-транзисторов требуются в случае управления электромоторами, потребляющими большие токи.

Полномостовые сигналы используются для того, чтобы управлять электромотором в рассматриваемой схеме. В прямом направлении логическая единица на Р1А (RB3) включает полевой МОП-транзистор Q3. Логический ноль на Р1С (RB6) выключает полевой МОП-транзистор Q1. Прямой сигнал от ШИМ прикладывается к P1D (RB7) и к Q2. В режиме прямого вращения электромотора пара Q2 и SQ3 активна, что позволяет току течь от вывода “+" на электромоторе к выводу вращая ротор электромотора в прямом направлении. В режиме обратного вращения электромотора Q3 выключается, а Q1 - включается, при этом сигнал от ШИМ поступает на Р1В (RB2), управляя Q4. В режиме обратного вращения электромотора Q1 позволяет току течь через электромотор от вывода к выводу "+" через Q4, вращая ротор электромотора в обратном направлении.