Views: 811
В этой части только итог и версия 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 42 downloads
* Revision history: v 2.0 * работает совместно с таймером...Для компактности и эффективности все таки стоит отказаться от универсальности и использовать только алгоритм который нужен в конкретном изделии.
Компактная версия библиотеки V3.0 – в которой используется только пошаговый режим в этом режиме есть преимущество не только в мощности, но и в скорости управления режим работы. А чем выше скорость тем тише работает двигатель (ниже вибрационный шум) и естественно падает суммарная потребляемая мощность.
Файлы для загрузки V3.0
Униполярный шаговый двигатель - часть 2 (v3.0) 598.64 KB 59 downloads
* Библиотека управления шаговым двигателем *...Это может быть интересно
- Acquaintance with audio-bluetooth modules F-6888 (BK3254).Views: 2167 Для проектов появилось необходимость познакомиться с недорогими модулями китайского производства, которые можно приобрести у нас в Украине и у китацев, на алиэкспрессе. Так как меня интересует не просто, …
- AD9833 – Programmable Waveform Generator – part twoViews: 1766 Прошло время и появилась тема, что-бы закончить проект AD9833 – Programmable Waveform Generator. Приехали печатные платы. В этот раз я печатные платы заказывал в https://jlcpcb.com/ делал это в …
- LCD индикаторы на драйвере ML1001Views: 1877 ML1001 – статический LCD GOG (чип в стекле) драйвер для 40-сегментного LCD в позолоченном противоударном исполнении. На них можно каскадно строить цельные из 80 или 120 сегментов LCD индикаторы. …
- Одноканальный емкостной сенсор – AT42QT1012Views: 2331 Описание сенсора [wpdm_file id=242] Незаконченный проект, так-как сенсор не оправдал своего назначения, не рекомендую, просто выброшенные деньги. Особенности. • Количество сенсоров – один, режим переключения ( touch-on/touch-off ), а также программируемая …
- WiFi ESP8266 – AT команды связанные с функцией TCP/IP (v.1.6.1)Views: 5034 AT команды связанные с функцией TCP/IP В этом разделе описаны команды которые позволяют устанавливать соединения между серверами и клиентами в сети. Приведено описание команд и примеры их выполнения. …
- ch-светомузыка и AK4113Views: 1285 Пришло время вернуться к светомузыке. На сегодня использование аналогового входа стало непрактичным, на сегодня необходимо использовать S/PDIF и Toslink. С этим надо было как то разобрать, что это …
- Audio-bluetooth modules BK8000L (noname)Views: 662 Еще один вариант, так сказать недоразумения Audio-bluetooth modules BK8000L (noname). Его отличительной маркировкой служат два отверстия в плате и надпись R2. Отличают его от модулей на чипе BK8000L, …
- CLUBBEST-50-LightViews: 256 CLUBBEST-50-LIGHT Зміст Короткий опис проекту. 1 Опис схемотехніки візуалізатора музики. 2 Аудіо вхід. 3 MCU. 4 Цифровий вихід. 5 Схема живлення MCU. 6 Складання пристрою. 7 Список …
- MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМViews: 1124 Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые …
- Moving average – скользящее среднееViews: 2240 Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания …