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

Views: 881


В этой части только итог и версия 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 74 downloads

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


Это может быть интересно


  • Самый простой диммер для светодиодного освещенияСамый простой диммер для светодиодного освещения
    Views: 3107 Светодиоды все больше входят в нашу жизнь как источники освещения и как само собой разумеющееся, это вопрос регулировки яркости. Существует множество схемных решений, но в нашем варианте мы …
  • VU Meter Tower ART – part 2VU Meter Tower ART – part 2
    Views: 1028 Проект – VU Meter Tower ART получил продолжение в своем развитии. Теперь можно заказать набор деталей из акрила для самостоятельной сборки. В проект корпуса внесено целый ряд доработок, …
  • Часы + Календарь + Термометр + …Часы + Календарь + Термометр + …
    Views: 2754 Часы + Календарь + Термометр + Индикатор влажности + Секундомер + Дистанционное управление на ИК лучах (пульты на RC-5 протоколе) + Автоматическая регулировка яркости + Возможность вывода данных через USB, …
  • MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМMCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМ
    Views: 1184 Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые …
  • DIXELL XWEB500D-EVO + RUT900 или как пробить NAT-серверDIXELL XWEB500D-EVO + RUT900 или как пробить NAT-сервер
    Views: 1075 Когда необходимо под какой нибудь контроллер имеющий вэб сервер в инет, то нужен статический IP, что оказалось проблемой при работе с операторами сотовых сетей, конкретно с оператором сети …
  • ESP32-первое знакомствоESP32-первое знакомство
    Views: 6805 Музыкальная тема к статье, слушаем: Настало время познакомиться c ESP32 и для меня, для этого я приобрел в ГАММЕ отладочную плату с модулем ESP-WROOM-32 (ESP32-DevKitC). Первая задача, как …
  • Altium Designer my setup system and project structure V23.3Altium Designer my setup system and project structure V23.3
    Views: 225 Оновлення бази даних та шаблонів від березня 2023 року. Updating the database and templates from March 2023. Altium Designer my Libraries, Project templates, System settings by Catcatcat. Дивись …
  • TDA7294 part 2TDA7294 part 2
    Views: 587 Це друга частина проекту TDA7294, початок дивись тут. Тут ви знайдете повністю проект високоякісного підсилювача на TDA7294, схема, 3D моделі, гербер файли для виготовлення друкованої плати. І звичайно …
  • MPLAB X IDE – управление проектамиMPLAB X IDE – управление проектами
    Views: 1033 Среда  MPLAB X IDE позволяет оперативно работать с несколькими проектами, например, если у вас в работе несколько проектов: Для того чтобы переключиться достаточно выбрать другой проект: Для выбора …
  • CCP – модуль в режиме Compare на примере PIC18CCP – модуль в режиме Compare на примере PIC18
    Views: 3121 CCP – модуль можно использовать в трех режимах: Capture – позволяет захватывать входной сигнал и определять его параметры (длительность или частоту). Дополнительно управлять внутренними модулями. Compare –  позволяет …



 

Поделись этим!

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

Продолжайте читать

НазадДалее