Views: 995
В этой части только итог и версия 2.0 универсальной, которая позволяет управлять шаговым двигателем во всех трех режимах и 3.0 специальной библиотеки только для одного полушагового режима.
В этих библиотеках приметен метод когда данные управления шаговым двигателем собраны в массивы и в зависимости от требуемого режима используется тот или иной массив данных.
Последний режим который бы хотелось рассмотреть это полушаговый режим. В этом режиме потребление максимальное, но и мощность которую способен отдать ШД на вал также максимальна, но в нем можно использовать максимальную скорость вращения двигателем которая в предыдущих режимах недостижима. В суммарном значении из-за скорости работы общее потребление энергии может быть значительно ниже. По этой причине его рекомендуется применять на практике.
Из сканирования работы фаз шагового двигателя видно, то цикл управления фазы “как-бы” разбит на 3 части, при этом постоянно напряжение подается на один или два полюса. Это обеспечивать в такой схемотехники максимальный вращающийся момент.
Визуально управление ШД можно представить так:
Функция работы шагового двигателя для версии 2 будет выглядеть так:
void TMR2_ISR(void)
{
uint8_t maska;
static uint8_t stepp;
//------------------------------------------------------------------------------
maska = (uint8_t)(LATC&0xF0); // загрузить текущее значение регистра и очистить биты для шагового
if(!steps)
{
LATC = maska; //
PIE4bits.TMR2IE = 0;
}
else
{
if(uprlfaz==2)
{
if(direction)
{
LATC = (uint8_t)(one_and_two_phase[stepp--]|maska); // загрузить текущее значение для управления шаговым двигателем
if(stepp==255)stepp=7;
}
else
{
LATC = (uint8_t)(one_and_two_phase[stepp++]|maska); // загрузить текущее значение для управления шаговым двигателем
if(stepp>7)stepp=0;
}
}
else if(uprlfaz==1)
{
if(direction)
{
LATC = (uint8_t)(two_phase[stepp--]|maska); // загрузить текущее значение для управления шаговым двигателем
if(stepp==255)stepp=3;
}
else
{
LATC = (uint8_t)(two_phase[stepp++]|maska); // загрузить текущее значение для управления шаговым двигателем
if(stepp>3)stepp=0;
}
}
else
{
if(direction)
{
LATC = (uint8_t)(one_phase[stepp--]|maska); // загрузить текущее значение для управления шаговым двигателем
if(stepp==255)stepp=3;
}
else
{
LATC = (uint8_t)(one_phase[stepp++]|maska); // загрузить текущее значение для управления шаговым двигателем
if(stepp>3)stepp=0;
}
}
//------------------------------------------------------------------------------
steps--; // уменьшить шаг
}
//------------------------------------------------------------------------------
// clear the TMR2 interrupt flag
PIR4bits.TMR2IF = 0;
if(TMR2_InterruptHandler)
{
TMR2_InterruptHandler();
}
}
Файлы для загрузки V2.0
Униполярный шаговый двигатель - часть 2 (v2.0) 601.69 KB 54 downloads
* Revision history: v 2.0 * работает совместно с таймером...Для компактности и эффективности все таки стоит отказаться от универсальности и использовать только алгоритм который нужен в конкретном изделии.
Компактная версия библиотеки V3.0 – в которой используется только пошаговый режим в этом режиме есть преимущество не только в мощности, но и в скорости управления режим работы. А чем выше скорость тем тише работает двигатель (ниже вибрационный шум) и естественно падает суммарная потребляемая мощность.
Файлы для загрузки V3.0
Униполярный шаговый двигатель - часть 2 (v3.0) 598.64 KB 75 downloads
* Библиотека управления шаговым двигателем *...Это может быть интересно
MPLAB® Harmony – или как это просто! Часть 3.Views: 2229 Часть третья – копнём немного глубже. Вы наверное заметили, что во второй главе, вроде сначала все шло как по маслу, а потом, что бы заморгали светики, я вставил …
Проект с использованием MCC часть 03Views: 1706 Первым делом перенастроим регистры конфигурации, следующим образом: Отключим выход генератора (CLKOUT function is disabled. I/O function on the CLKOUT pin) Включим сторожевой таймер (WDT enabled) После этой настройки …
Простой цифровой милливольтметр постоянного токаViews: 4220 Простой цифровой вольтметр постоянного тока. Три диапазона измерений с автоматическим переключением 1 – 0,001 – 0,999 V, 2 – 0,01-9,99 V, 3 – 0,1-99,9. Четыре управляемых выхода с возможностью задания функции контроля …
APA102 – светодиоды со встроенным драйвером и SPI интерфейсомViews: 3526 APA102 В 2014 году фирма Shenzhen Led Color Optoelectronic Co., Ltd http://www.szledcolor.com/ начала производство светодиодов на драйвере APA102. Это серия так называемых светодиодов со встроенным драйвером. Основной особенностью этих …
WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1)Views: 5381 AT команды связанные с функцией TCP/IP В этом разделе описаны команды которые позволяют устанавливать соединения между серверами и клиентами в сети. Приведено описание команд и примеры их выполнения. …
LATINO – открытый проект ch-светомузыкиViews: 1733 Проект построенный на некоторых принципах ch-светомузыка. Проект ознакомительный предназначен, для самостоятельного построения простого и эффективного светосинтезатора. Вывод осуществляется на ВОУ собранной на драйверах HL1606. Для этого была …
Самый простой диммер для светодиодного освещенияViews: 3197 Светодиоды все больше входят в нашу жизнь как источники освещения и как само собой разумеющееся, это вопрос регулировки яркости. Существует множество схемных решений, но в нашем варианте мы …
LED драйвер TM1639Views: 2470 TМ1639 позволяет работать на матрицу 8*8 или 8 семисегметных индикаторов. Может работать как на индикаторы с общим катодом, но и есть возможность подключать общим анодом. Для управления драйвером …
Altium Designer my Libraries, Project templates, System settings by Catcatcat V24.0 PROViews: 533 Назвемо цей варіант поновлення для професіоналів і не тільки. Що нового? 1. Повністю змінено структуру параметрів бази даних компонента. Це дозволило повноцінної роботи Актив ВОМ. Ви відразу отримуєте …
Moving average – скользящее среднееViews: 2440 Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания …


