Закрыть ... [X]

Микроконтроллер управление биполярным шаговым двигателем


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

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

  • С переменным магнитным сопротивлением (высокая точность, низкий крутящий момент, низкая цена)

  • С постоянным магнитом (низкая точность, высокий крутящий момент, низкая цена)

  • Гибридный (высокая точность, высокий крутящий момент, высокая цена)

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

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

 

Униполярный шаговый двигатель

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

Униполярный шаговый двигатель имеет пять или шесть проводов. В соответствии со схемой привода запускается разом только одна четвертая обмоток. Линии Vcc обычно соединяются с положительным питающим напряжением двигателя. Концы обмоток 1a, 1b, 2a, и 2b соединяются при коммутации через транзисторы только с землей, в связи, с чем их управляющая электроника довольно простая.

Биполярный шаговый двигатель

Обмотки биполярного шагового двигателя

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

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

Униполярный Биполярный Шаг 1A 2A 1B 2B 1A 2A 1B 2B Полный шаг 1 1 0 0 0 + - - - 2 0 1 0 0 - + - - 3 0 0 1 0 - - + - 4 0 0 0 1 - - - + Полушаг 1 1 0 0 0 + - - - 2 1 1 0 0 + + - - 3 0 1 0 0 - + - - 4 0 1 1 0 - + + - 5 0 0 1 0 - - + - 6 0 0 1 1 - - + + 7 0 0 0 1 - - - + 8 1 0 0 1 + - - +

Цель упражнения запустить биполярный шаговый двигатель, вместо чего можно использовать по приведенному выше методу и униполярный двигатель. На плате модуля «Двигателя» имеются два драйвера L293D, которые управляются четырьмя входными выводами микроконтроллера. Каждый вывод обозначает один конец полярности обмотки. Напряжение конца обмотки положительное, если вывод высокий, и отрицательное, если вывод низкий. Концам 1A, 1B, 2A и 2B соответствуют выводы микроконтроллера PB0, PB1, PB2 и PB3.

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

// // Подготовка управления биполярного шагового двигателя // void bipolar_init(void) { DDRB |= 0x0F; PORTB &= 0xF0; } // // Передвижение биполярного шагового двигателя полушагами // void bipolar_halfstep(signed char dir, unsigned short num_steps, unsigned char speed) { unsigned short i; unsigned char pattern, state1 = 0, state2 = 1; // Утверждение направления +- 1 dir = ((dir < 0) ? -1 : +1); // Осуществление полушагов for (i = 0; i < num_steps; i++) { state1 += dir; state2 += dir; // Создание шаблона pattern = (1 << ((state1 % 8) >> 1)) | (1 << ((state2 % 8) >> 1)); // Обозначение выхода PORTB = (PORTB & 0xF0) | (pattern & 0x0F); // Создание паузы для ожидания выполнения шага sw_delay_ms(speed); } // Остановка двигателя PORTB &= 0xF0; }

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

// // Тест-программа биполярного шагового двигателя // модуля «Двигатели» Домашней Лаборатории // #include <homelab/module/motors.h> // // Основная программа // int main(void) { // Настройка двигателя bipolar_init(); // Бесконечный цикл while (true) { // Вращение в одну сторону 200 полушагов со скоростью 30 мс/шаг bipolar_halfstep(+1, 200, 30); // Вращение в другую сторону 200 полушагов со скоростью 30 мс/шаг bipolar_halfstep(-1, 200, 30); } }
Источник: http://home.roboticlab.eu/ru/examples/motor/stepper


Поделись с друзьями



Рекомендуем посмотреть ещё:



Управление биполярным шаговым двигателем без использования драйвера Отношения непосредственно связанные с трудовыми статьи


Микроконтроллер управление биполярным шаговым двигателем Управление шаговым двигателем с помощью микроконтроллера. » Хабстаб
Микроконтроллер управление биполярным шаговым двигателем Драйвер шагового двигателя USB на микроконтроллере AVR своими руками
Микроконтроллер управление биполярным шаговым двигателем Контроллер для управления биполярным шаговым двигателем на PIC12F629
Микроконтроллер управление биполярным шаговым двигателем Шаговые двигатели и их микропроцессорные системы управления
Микроконтроллер управление биполярным шаговым двигателем Контроллер шагового двигателя Биполярный или униполярный?
Микроконтроллер управление биполярным шаговым двигателем Подключение к контроллеру биполярных шаговых двигателей
Микроконтроллер управление биполярным шаговым двигателем Шаговый двигатель Robotic Microcontroller Educational Knowledgepage
Микроконтроллер управление биполярным шаговым двигателем Контроллер биполярного шагового двигателя
Урок 25. Управление шаговым двигателем Аппаратная коррекция фигуры - центр косметологии Камертон День молодежи 2016 - международный праздника в России Как часто можно делать маски для лица? Можно ли красить нарощенные ресницы? Начните вязать спицами разнообразные цветы и вы Порно пирсинг - 2031 видео. Смотреть порно онлайн! Рыболовные базы на Волге - в дельте и на нижней Волге


ШОКИРУЮЩИЕ НОВОСТИ