Главная » Статьи » Как подключить |
Шаговые двигатели достаточны распространены в устройствах, в которых необходимо добиться точного перемещения механизмов. Существует много типов шаговых двигателей, но самыми дружелюбными в плане управления являются 2-х фазные униполярные двигатели. Этот тип двигателей имеет две независимые обмотки с выводами от середины. Их можно встретить преимущественно в старой технике: принтерах, копирах, дисководах (5-и дюймовых) и еще много где. В зависимости от от того как соединены средние обмотки внутри, из двигателя могут выходить 5 или 6 проводов. Разницы никакой нет, все равно средние выводы обмоток соединяются вместе. Характерной особенностью шаговых двигателей является дискретность поворота ротора, тоесть если взять и покрутить вал двигателя можно ощутить как он фиксируется в определенных моментах. Это и есть шаги двигателя. При запитывании одной из половины обмоток происходит фиксирование вала двигателя в определенном положении. Если снять напряжение с этой обмотки и запитать другую, ротор повернется и зафиксируется в другом положении. Таким образом, если запитывать обмотки в определенной последовательности можно добиться вращения вала двигателя.
Существует несколько алгоритмов управления питанием обмоток двигателя. Самым простым является полношаговое управление, когда в любой момент времени запитана только одна из половинок обмоток. Для наглядности накидал табличку показывающую последовательность включения обмоток:
Ротор при таком управлении принимает естественное положение относительно статора. Есть еще способ управления шаговиком в полношаговом режиме, когда одновременно запитываются две фазы, таким образом удается увеличить момент на валу на 40%.
Главным недостатком полношагового управления являются аццкие вибрации двигателя и малая дискретность шага, равная паспортному значению.
Для того чтобы уменьшить вибрации и добится более плавного и точного вращения вала существует более продвинутый способ - управление в полушаговом режиме, алгоритм включения половинок обмоток приведен ниже:
При такой работе вал двигателя за один цикл совершает половину шага и фиксируется между двумя естественными состояниями равновесия. Таким образом дискретность поворота вала увеличивается в 2 раза.
Есть еще способ увеличить дробленеи шага ротора двигателя - микрошаговое управление - когда обмотка не просто запитывается, а запитывается определенным током. И от отношения тока в соседних обмотках зависит положение ротора - чем больший ток течет в обмотке по отношению к соседней, тем ближе к ней смещается ротор и наоборот. Это позволяет увеличить дробление шага в десятки и сотни (!) раз.
С теорией немного разобрались, теперь нужно выбрать в каком режиме будет управляться двигатель. Полный шаг слишком убог и не эффективен, микрошаг сложен, да и нужен он в основном в управлении приводом высокоточного ЧПУ станка. Поэтому крутить будем в полушаге :)
Схема базируется на микроконтроллере attiny2313 и имеет две кнопки. При нажатии на одну вал двигателя будет крутиться в одну сторону, при нажатии другой - в другую. В качестве ключевых транзисторов выбраны КТ829, способные протащить через себя до 8 Ампер.
К клемме Udvig подключаются выводы от середин обмоток и туда же подводится напряжение для питания обмоток. Величина напряжения зависит от самого двигателя, для моего например по документации максимальный ток в обмотках 1,5 Ампера, измерив сопротивление обмоток получил 2 Ома, отсюда вывод что напряжение питания не должно превышать 3 В ну или немного больше, учитывая что запитываться будет индуктивная нагрузка. Кстати диоды D2-D5 стоят для того, чтобы гасить скачки обратного напряжения после закрытия транзистора. Иначе есть вероятность что ЭДС самоиндукции возникающая во время выключения питания обмотки пробъет транзистор. Плата управления в сборе:
Красный светодиод загорается при нажатии одной из кнопок. Разъем подключения контроллера по UART сделал опционально, на случай если нужно будет приделать управление шаговиком с компа.
$regfile = "2313def.dat"
$crystal = 4000000 Dim S As Byte 'эта переменная следит за номером шага двигателя S = 1 On Int0 Knopka1 'даем имена обработчикам внешних прерываний On Int1 Knopka2 Config Portb = Output 'конфигурируем порт на выход Config Portd.5 = Output 'конфигурируем ногу для подключения светодиода Led Alias Portd.5 'присваиваем имя LED выводу 5 порта D 'прерывания будут генерироваться пока на ноге низкий уровень, то есть пока кнопка будет нажата Config Int0 = Low Level Config Int1 = Low Level 'разрешаем прерывания Enable Interrupts Enable Int0 Enable Int1 'основной цикл программы, просто ждем прерывания Do Loop Knopka1: 'обработчик прерывания первой кнопки Led = 1 'зажигаем светодиод Incr S 'увеличим номер шага If S = 9 Then 'максимально возможный номер шага = 8 S = 1 End If Select Case S 'выбираем какие обмотки включать в зависимости от номера шага Case 1 : Portb = &B00000001 Case 2 : Portb = &B00000011 Case 3 : Portb = &B00000010 Case 4 : Portb = &B00000110 Case 5 : Portb = &B00000100 Case 6 : Portb = &B00001100 Case 7 : Portb = &B00001000 Case 8 : Portb = &B00001001 End Select Waitus 1000 'задержка между шагами Led = 0 'гасим светодиод Return Knopka2: 'обработчик прерывания второй кнопки Led = 1 'зажигаем светодиод Decr S 'тут все тоже самое, только в обратном направлении If S = 0 Then 'минимально возможный номер шага = 1 S = 8 End If Select Case S Case 1 : Portb = &B00000001 Case 2 : Portb = &B00000011 Case 3 : Portb = &B00000010 Case 4 : Portb = &B00000110 Case 5 : Portb = &B00000100 Case 6 : Portb = &B00001100 Case 7 : Portb = &B00001000 Case 8 : Portb = &B00001001 End Select Waitus 1000 Led = 0 'гасим светодиод Return End
Изменяя величину задержки между шагами, можно в больших пределах регулировать скорость вращения вала. При выбранной мной задержке в 1000 мкс с шаговиком имеющем 200 шагов на оборот (400 полушагов) скорость вращения получается примерно 2,5 оборота в секунду
Скачать файлы к проекту
UPD: Здесь допилил программу, теперь стало возможным управление шаговым двигателем с компьютера.
| |
Просмотров: 128803 | Комментарии: 77
| Теги: |
Всего комментариев: 77 | 1 2 3 » | |||||||||||||||||||||||||
| ||||||||||||||||||||||||||
1-30 31-60 61-77 | ||||||||||||||||||||||||||
Проекты [46] |
Как подключить [32] |
Инструменты [3] |
Полезная информация [18] |
Объявления [3] |