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

Просмотров: 732


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

* Revision history: v 2.0 * работает совместно с таймером...

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


Компактная версия библиотеки V3.0 – в которой используется только пошаговый режим в этом режиме есть преимущество не только в мощности, но и в скорости управления режим работы. А чем выше скорость тем тише работает двигатель (ниже вибрационный шум) и естественно падает суммарная потребляемая мощность.

Файлы для загрузки V3.0

Значок

Униполярный шаговый двигатель - часть 2 (v3.0) 598.64 KB 46 downloads

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


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


  • MCC PIC24 – модуль REAL-TIME CLOCK AND CALENDAR (RTCC)MCC PIC24 – модуль REAL-TIME CLOCK AND CALENDAR (RTCC)
    Просмотров: 394 RTCC предоставляет пользователю часы реального времени и функция календаря (RTCC), точность “хода” может быть откалибрована. Основные особенности модуля RTCC: • Работает в режиме глубокого сна. • Возможность выбора источника …
  • ch-4050 – дифференциальный терморегуляторch-4050 – дифференциальный терморегулятор
    Просмотров: 1753 ch-4050 – это не новая модель, это расширенная версия универсального терморегулятора ch-4000. Различия коснулись в появлении новой функции дифференциального регулирования. Это вид регулирования по разности температур измеренного двумя …
  • Гаджеты для домашней автоматики – Датчик приближенияГаджеты для домашней автоматики – Датчик приближения
    Просмотров: 1862 Управление светодиодным освещением – Датчик приближения. Данный гаджет предназначен для управления внутренним освещением мебели. Датчик позволяет определить закрытие или открытие дверцы или ящика и при этом включать или …
  • BMP280 – температура и атмосферное давление – учебный проектBMP280 – температура и атмосферное давление – учебный проект
    Просмотров: 1957 Учебный проект на PIC32 и светодиодной панели P5 (2121)-168-6432-80 (32*64). Проект позволяет ознакомиться с простой графикой и с чтением давления и температуры с датчика BMP280. Для тестирования необходимо …
  • MPLAB X IDE – управление проектамиMPLAB X IDE – управление проектами
    Просмотров: 855 Среда  MPLAB X IDE позволяет оперативно работать с несколькими проектами, например, если у вас в работе несколько проектов: Для того чтобы переключиться достаточно выбрать другой проект: Для выбора …
  • MPLAB® Harmony – или как это просто! Часть 1.MPLAB® Harmony – или как это просто! Часть 1.
    Просмотров: 3436 Часть первая – Установка Гармонии. Музыкальная тема к статье, слушаем: В начале запуска нового проекта и выбора микроконтроллера стоит задача правильно его сконфигурировать, прежде чем перейти к реализации …
  • Ultrasonic Level Meters – ULM –53LUltrasonic Level Meters – ULM –53L
    Просмотров: 684 Измерение расстояния при помощи ультра звукового датчика ULM–53L–10. Диапазон измерения от 0,5 м до 10 м, полностью пластмассовый излучатель PVDF, механическое соединение фланцем из полиэтилена HDPE (исполнение “N”) Характеристики …
  • ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302ch-4060 – регулятор температуры и влажности на датчике DHT11/DHT22/AM2302
    Просмотров: 2333 На плате ch-4000 очень легко собрать устройство регулятора температуры и влажности. Датчик DHT11  самый недорогой вариант для создания такого устройства, правда точность его не велика, но для бытовых устройств …
  • NS108-5050-16bit от NewstarNS108-5050-16bit от Newstar
    Просмотров: 525 Кто уже использует в своих проектах адресуемые светодиоды хорошо знакомы с такими как WS2812 и им подобные. Эти светодиоды для управления используют однопроводную шину. Из-за этого пропускная способность …
  • ch-светомузыка от теории до реализацииch-светомузыка от теории до реализации
    Просмотров: 653 Сразу оговоримся технология или теория ch-светомузыки, это постоянно развивающийся процесс и то что будет сказано сегодня завтра может быть опровергнуто и считаться ошибочным. Назовем само решение проблемы автоматического …



 

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

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.