Views: 1053
В этой части только итог и версия 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
* Библиотека управления шаговым двигателем *...Это может быть интересно
BMP280 – температура и атмосферное давление – учебный проектViews: 2292 Учебный проект на PIC32 и светодиодной панели P5 (2121)-168-6432-80 (32*64). Проект позволяет ознакомиться с простой графикой и с чтением давления и температуры с датчика BMP280. Для тестирования необходимо …
Универсальный терморегулятор ch-c3000Views: 3236 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …
Униполярный шаговый двигательViews: 2479 В приводах различных устройств часто применяются шаговые двигатели, Шаговый двигатели различают двух типов униполярные – когда обмотки коммутируются током текущим только в одну сторону, например при …
Customs codes for exportViews: 385 Митні коди (HS Code) для надсилання посилок за кордон. Для відправки товару за кордон на сьогодні необхідно зазначати митні коди. Часто визначення коду займає багато часу. Для …
VU Meter Tower ARTViews: 1759 Стерео индикатор уровня аудио сигнала. Компактность и удобство проектирования устройств на светодиодах WS2812B, а также легкость реализации алгоритма родило идею созданию своей конструкции. В этом проекте я предоставлю …
USB K-L-line адаптерViews: 4775 USB K-L-line адаптер предназначен для связи персонального компьютера с диагностической шиной автомобиля – интерфейс ISO-9141. Этот проект предназначен для сборки недорого устройства с использованием специально для этой цели …
Real-time music visualization technologyViews: 373 Music visualization technology in real time (RTMV-technology). Я не музикант і я не маю спеціальної музичної освіти, я інженер розробник вбудованих систем. Але моє хобі розроблення технології візуалізації …
Altium Designer my Libraries, Project templates, System settings by Catcatcat V24.0 PROViews: 554 Назвемо цей варіант поновлення для професіоналів і не тільки. Що нового? 1. Повністю змінено структуру параметрів бази даних компонента. Це дозволило повноцінної роботи Актив ВОМ. Ви відразу отримуєте …
Просто о структурах и объединениях в СиViews: 2391 Какие задачи нам позволяют решать структуры и объединения? Для разработчика встроенных систем эффективность и компактность кода всегда на первом месте. Если программировании на Ассемблере ты сам определяешь как …
УКВ – радиоприем, часть 2Views: 6445 Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка… Для понимания функций интегрального …


