Управление шаговым двигателем с использованием микроконтроллера ATmega16 и LabVIEW | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Технические науки

Опубликовано в Молодой учёный №9 (113) май-1 2016 г.

Дата публикации: 14.04.2016

Статья просмотрена: 4330 раз

Библиографическое описание:

Шибеко, Р. В. Управление шаговым двигателем с использованием микроконтроллера ATmega16 и LabVIEW / Р. В. Шибеко, А. В. Ульянов. — Текст : непосредственный // Молодой ученый. — 2016. — № 9 (113). — С. 341-346. — URL: https://moluch.ru/archive/113/27780/ (дата обращения: 16.12.2024).



Управление шаговым двигателем сиспользованием микроконтроллера ATmega16 иLabVIEW

Шибеко Роман Владимирович, старший преподаватель;

Ульянов Александр Владимирович, старший преподаватель

Комсомольский-на-Амуре государственный технический университет

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

Ключевые слова: шаговый двигатель, управление, драйвер шагового двигателя, микроконтроллер, Atmel, AVR, ATmega 16, L297, L298N, LabVIEW.

В современной технике, в качестве исполнительного устройства для различных систем управления часто используют ШД. В качестве примера будет рассмотрен восьми- проводной ШД модели Nanotec ST5918M1008. Данный ШД будем подключать по схеме подключения 8-ми проводного ШД с последовательным соединением обмоток (см. рисунок 1).

Рис. 1. Схема подключения ШДNanotec ST5918M1008

В качестве драйвера ШД будем использовать распространенную связку микросхем L297 + L298N схема включения, которых взята с технической документации показана на рисунке 2.

Рис. 2. Драйвер для управления ШД на базе связки микросхем L297 + L298N

Причина выбора такой комбинации драйвера (рисунок 2) послужила повсеместное широкое распространение данной связки для задачи с вязанной с управлением ШД.

 CLOCK (CLK, pin 18): тактовая частота вращения ротора ШД;

 CW/CCW (DIR, pin 17): задается направление вращения ротора ШД (условно — при лог. «1», присутствующей на данном входе, ротор ШД будет вращаться по часовой стрелке, при лог. «0» — против часовой стрелки);

 Vref (pin 15): управление максимальным током обмотки ШД. Если напряжение на токосчитывающих резисторах R15 и R16 превысит напряжение на входе Vref, соответствующая обмотка отключается до того момента, пока напряжение на R15/R16 не станет меньше Vref;

 HALF/FULL (H/F, pin 19): выбор между полношаговым и полушаговым режимами вращения ротора ШД. Если на этом входе логический 0 — выбран полношаговый режим работы, если единица-полушаговый;

 CONTROL (CTRL, pin 11): по этой линии можно выбрать группу сигналов управления ШД, которые будут промодулированы («изрезаны») сигналом от внутренних «токовых» компараторов (это которые осуществляют контроль тока обмотки). Если на данной линии логический нуль — модулируются сигналы INH1 и INH2, если единица — сигналы A, B, C, D.

На имеющимся отладочном стенде для изучения основ микропроцессорной техники установлен 8 — разрядный микроконтроллер семейства Atmel AVR модель ATmega 16A, его мы и будем использовать в качестве микроконтроллера для рассматриваемой задачи управления ШД.

Отладочный стенд подключен к ПК, на ПК написана программа управления ШД, программа посылает команды на наш МК, а тот в подает нужные управляющие сигналы на драйвер ШД такой подход применялся за частою во всех проектах где требуется участие ПК [1–3].

Функция приема команд от ПК:

// USART Receiver buffer

#define RX_BUFFER_SIZE 2

char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE <= 256

unsigned char rx_wr_index,rx_rd_index,rx_counter;

#else

unsigned int rx_wr_index,rx_rd_index,rx_counter;

#endif

// This flag is set on USART Receiver buffer overflow

bit rx_buffer_overflow;

// USART Receiver interrupt service routine

interrupt [USART_RXC] void usart_rx_isr(void)

{

char status,data;

status=UCSRA;

data=UDR;

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

{

rx_buffer[rx_wr_index++]=data;

#if RX_BUFFER_SIZE == 256

// special case for receiver buffer size=256

if (++rx_counter == 0) rx_buffer_overflow=1;

#else

if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;

if (++rx_counter == RX_BUFFER_SIZE)

{

rx_counter=0;

rx_buffer_overflow=1;

}

#endif

}

}

Прием команды происходит по прерыванию от USART.

Основная функция управления ШД :

void FSM_MOTOR (void)

{

typedef enum {StInit,Steps,Full,Frr} State_Type;

static State_Type state = StInit;

switch(state){

case StInit:

if (rx_buffer[0]==0x41)

{

PORTA.1=0;

state = Steps;

break;

}

else

if (rx_buffer[0]==0x42)

{

PORTA.1=1;

state = Steps;

break;

}

else

if (rx_buffer[0]==0x46)

{

PORTA.1=1;

state = Full;

break;

}

else

if (rx_buffer[0]==0x52)

{

state = Frr;

break;

}

state = StInit;

break;

case Steps:

for (i = 0; i < rx_buffer[1]; i++)

{

PORTA.0 = 0;

delay_us (1000);

PORTA.0 = 1;

delay_us (1000);

}

rx_buffer[0]=0;

state = StInit;

break;

case Full:

FULL ();

state = StInit;

break;

case Frr:

FRR ();

state = StInit;

break;

default: StInit;

break;

}

}

Функция void FSM_MOTOR (void) работает следующим образом, у нее есть четыре состояния StInit — инициализация, Steps — шаг, Full — вращение, Frr — поворот на угол. По приходу кодового сигнала работы, например 0x41 (ASCII код буквы А) состояние функции void FSM_MOTOR (void) переключается на case Steps и т. д.

Пример программы оправки кода 0x41 приведен в среде графического программирования LabVIEW и показан на рисунке 3.

Рис. 3. Блок диаграмма программы оправки кода 0x41

Для удобства работы с ШД был разработан дружественный интерфейс программы управления ШД в LabVIEW рисунок 4.

Рис. 4. Интерфейс программы управления ШД в LabVIEW

Разработанный программно аппаратный комплекс позволяет непосредственно управлять работой ШД с ПК. Пользователь без особых усилий сможет разобраться с дружественным интерфейсом.

Подведя итог можно сделать следующие выводы:

 Использую связку L297 + L298N можно разработать не дорогой драйвер управления ШД.

 Если требуется быстрая разработка программного обеспечения под ПК можно использовать распространенный язык графического программирования в LabVIEW.

 Использования микроконтроллеров позволяет разнообразить алгоритмы управления ШД причем для связи с ПК требуется один USART.

Литература:

  1. Ульянов, А.В., Коваленко М. В. Использование СПК207 для управления привода ОВЕН ПЧВ3 по протоколу Modbus RTU / А. В. Ульянов // Молодой ученый. — 2016. — № 5. — С. 86–91.
  2. Ульянов, А. В. Совершенствование электромеханических систем газомагнитных опор высокоскоростных роторов для повышения эффективности их работы / А. В. Ульянов // Молодые ученые — Хабаровскому краю материалы ХVII краевого конкурса молодых ученых и аспирантов. — Хабаровск: 2015. — С. 254–257.
  3. Ульянов, А. В. Система управления активно управляемой газомагнитной опорой / А. В. Ульянов // Современные тенденции технических наук Материалы III Международной научной конференции. — Казань: Молодой ученый, 2014. — С. 49–52.
  4. Ульянов, А. В. Математическая модель управляемой газомагнитной опоры / А. В. Ульянов, С. М. Копытов, С. В. Стельмащук // Электротехнические комплексы и системы управления. — 2014. — № 3. — С. 16–20.
Основные термины (генерируются автоматически): управления ШД, вращения ротора ШД, программы управления ШД, Молодой ученый, программы оправки кода, драйвер управления ШД, задачи управления ШД, сигналов управления ШД, программа управления ШД, алгоритмы управления ШД, Nanotec ST5918M1008, ШД модели nanotec, 8-ми проводного ШД, качестве драйвера ШД, током обмотки ШД, управления шаговым двигателем, микросхем l297, драйвер ШД, направление вращения ротора, ротор ШД.


Ключевые слова

управление, микроконтроллер, LabVIEW, шаговый двигатель, драйвер шагового двигателя, Atmel, AVR, ATmega 16, L297, L298N

Похожие статьи

Требования к разработке специализированных меток для функционирования маркерных приложений с AR-технологией на базе платформы Vuforia

Данная статья посвящена теме разработки и корректуры маркеров для AR-приложений. В настоящей работе отображается процесс взаимодействия с алгоритмом анализа маркеров Vuforia, демонстрируется перечень требований к разработке, а также реализация коррек...

Разработка концепции автоматизированной системы безопасности на микроконтроллере Arduino

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

Особенности распознавания объектов на базе Movidius Neural Computer Stick

В данной статье описываются особенности запуска моделей искусственных нейронных сетей с использованием сопроцессора Movidius Neural Computer Stick совместно с Raspberry pi для задач распознавания объектов, в том числе и на архитектуре AArch64. Помимо...

Ўрнатилган тизимларни бошқариш дастурий таъминотини SN ATMega128A платасида созлаш

В данной статье рассмотрены настройки и установка программного обеспечения на плату SN ATMega 128A. В работе применено программное обеспечение AVR Studio 4, а так же дано описание работы с этой программой.

Создание клиент-серверного приложения на основе restful api архитектуры

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

Разработка робота для транспортировки малогабаритных объектов на базе микроконтроллера AVR

В работе описывается методология разработки, реализации и отладки, а также технические решения при создании робота для транспортировки малогабаритных объектов на базе микроконтроллера AVR. Данная работа может быть рекомендована студентам старших кур...

Разработка и тестирование функционального блока ПИД-регулятора ПЛК ACE3600 Motorolla

В данной статье представлена разработка прототипа функционального блока ПИД-регулятора контроллера ACE3600 Motorolla и его тестирование посредством вспомогательных приложений C#. Проводится анализ переходных процессов, а также оценка качественного по...

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

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

Обзор проекта автоматической сигнализации на МК Arduino c применением модуля гироскопа-акселерометра

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

Настройка параметров Unified Bed Leveling и построение полигональной модели печатной области с последующей линейной интерполяцией для 3D-принтеров на базе Marlin

Данная статья посвящена теме взаимодействия с надстройкой автоуровня UBL в 3D-принтерах. В настоящей работе отображается процесс адаптации прошивки Marlin к работе с датчиком уровня и построению калибровочной сетки. Демонстрируется обучение системы у...

Похожие статьи

Требования к разработке специализированных меток для функционирования маркерных приложений с AR-технологией на базе платформы Vuforia

Данная статья посвящена теме разработки и корректуры маркеров для AR-приложений. В настоящей работе отображается процесс взаимодействия с алгоритмом анализа маркеров Vuforia, демонстрируется перечень требований к разработке, а также реализация коррек...

Разработка концепции автоматизированной системы безопасности на микроконтроллере Arduino

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

Особенности распознавания объектов на базе Movidius Neural Computer Stick

В данной статье описываются особенности запуска моделей искусственных нейронных сетей с использованием сопроцессора Movidius Neural Computer Stick совместно с Raspberry pi для задач распознавания объектов, в том числе и на архитектуре AArch64. Помимо...

Ўрнатилган тизимларни бошқариш дастурий таъминотини SN ATMega128A платасида созлаш

В данной статье рассмотрены настройки и установка программного обеспечения на плату SN ATMega 128A. В работе применено программное обеспечение AVR Studio 4, а так же дано описание работы с этой программой.

Создание клиент-серверного приложения на основе restful api архитектуры

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

Разработка робота для транспортировки малогабаритных объектов на базе микроконтроллера AVR

В работе описывается методология разработки, реализации и отладки, а также технические решения при создании робота для транспортировки малогабаритных объектов на базе микроконтроллера AVR. Данная работа может быть рекомендована студентам старших кур...

Разработка и тестирование функционального блока ПИД-регулятора ПЛК ACE3600 Motorolla

В данной статье представлена разработка прототипа функционального блока ПИД-регулятора контроллера ACE3600 Motorolla и его тестирование посредством вспомогательных приложений C#. Проводится анализ переходных процессов, а также оценка качественного по...

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

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

Обзор проекта автоматической сигнализации на МК Arduino c применением модуля гироскопа-акселерометра

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

Настройка параметров Unified Bed Leveling и построение полигональной модели печатной области с последующей линейной интерполяцией для 3D-принтеров на базе Marlin

Данная статья посвящена теме взаимодействия с надстройкой автоуровня UBL в 3D-принтерах. В настоящей работе отображается процесс адаптации прошивки Marlin к работе с датчиком уровня и построению калибровочной сетки. Демонстрируется обучение системы у...

Задать вопрос