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

Views: 815


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

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

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


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

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

Значок

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

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


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


  • My libraries for Altium DesignerMy libraries for Altium Designer
    Views: 3962 Attention, this version of the database is outdated today. See updates in articles https://catcatcat.d-lan.dp.ua/altium-designer-my-setup-system-and-project-structure  and https://catcatcat.d-lan.dp.ua/altium-designer-my-setup-system-and-project-structure-v23-2/    My libraries for Altium designer  (Updated V – 29/05/2022) (c) 2021 …
  • TM1650 драйвер LED семисегментного индикатораTM1650 драйвер LED семисегментного индикатора
    Views: 17850 Китайский производитель Shenzhen Titan Micro Electronics Co., Ltd.  Выпускает широкую линейку драйверов управления светодиодными дисплеями, которые позволяют разгрузить микроконтроллер для основной работы, главная особенность этих драйверов не только …
  • Часы + Календарь + Термометр + …Часы + Календарь + Термометр + …
    Views: 2710 Часы + Календарь + Термометр + Индикатор влажности + Секундомер + Дистанционное управление на ИК лучах (пульты на RC-5 протоколе) + Автоматическая регулировка яркости + Возможность вывода данных через USB, …
  • Проблемы классической светомузыкиПроблемы классической светомузыки
    Views: 2073 Светомузыка – что это такое? Определение: Светомузыка  (жаргонное: цветомузыка)  — вид искусства, основанный на способности человека ассоциировать звуковые ощущения со световыми восприятиями. Такое явление в неврологии получило название …
  • MPLAB X IDE – управление проектамиMPLAB X IDE – управление проектами
    Views: 962 Среда  MPLAB X IDE позволяет оперативно работать с несколькими проектами, например, если у вас в работе несколько проектов: Для того чтобы переключиться достаточно выбрать другой проект: Для выбора …
  • 12-BIT A/D CONVERTER WITH THRESHOLD DETECT на примере PIC24FJ128GA20412-BIT A/D CONVERTER WITH THRESHOLD DETECT на примере PIC24FJ128GA204
    Views: 830 Введение. 12-битный модуль A/D Converter является усовершенствованной версией 10-битного модуля, предлагаемого на некоторых устройствах PIC24. Оба модуля являются преобразователями, в своих ядрах, с последовательным приближением (SAR), в окружении …
  • ESP32-первое знакомствоESP32-первое знакомство
    Views: 6517 Музыкальная тема к статье, слушаем: Настало время познакомиться c ESP32 и для меня, для этого я приобрел в ГАММЕ отладочную плату с модулем ESP-WROOM-32 (ESP32-DevKitC). Первая задача, как …
  • Инфракрасный датчик движения, PIR-sensorИнфракрасный датчик движения, PIR-sensor
    Views: 3097 Домашняя автоматика предполагает наличие датчиков движения, которые способны контролировать движения человека. Самым простым и доступным устройством позволяющие контролировать изменения ИК-излучения, это ПИР-сенсоры. На текущий момент доступны не дорогие модели D203B, D204B, D205B. Все …
  • MCC PIC24 – модуль REAL-TIME CLOCK AND CALENDAR (RTCC)MCC PIC24 – модуль REAL-TIME CLOCK AND CALENDAR (RTCC)
    Views: 493 RTCC предоставляет пользователю часы реального времени и функция календаря (RTCC), точность “хода” может быть откалибрована. Основные особенности модуля RTCC: • Работает в режиме глубокого сна. • Возможность выбора источника …
  • Цифровой спидометр для автомобиляЦифровой спидометр для автомобиля
    Views: 10160  Универсальность печатной платы ch-c0030pcb позволяет создавать на её основе разнообразные устройства. Одним из таких устройств является электронный спидометр для автомобиля, в котором можно задать два компаратора скорости, например,  для …



 

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

Catcatcat

catcatcat

Development of embedded systems based on Microchip microcontrollers.

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

НазадДалее