Управление шаговым двгателем используя STM32 и a4988

Добрый день всем. В недавно завершённом проекте мне потребовалось управлять шаговым двигателем на оборотах, близких к предельно максимальным. Поиск в интернете простого решения не дал, нашлась только куча мудрёных библиотек. Я хочу предложить свой вариант, который может быть использован на практике.
Для управления шаговым двигателем я использовал драйвер A4988, для генерации step-сигналов – аппаратный генератор ШИМ с таймера №1. Для того, чтобы шаговый двигатель разогнать на максимальные обороты, необходимо плавно изменять частоту. Запускаем двигатель на маленькой частоте и постепенно её увеличиваем, тем самым повышая скорость вращения шагового двигателя. Однако, увеличивать частоту до предела не получится, так как шаговый двигатель просто остановится.

Моё решение:
1. Подключаем драйвер A4988 по этой схеме:



Подключаем A4988 к STM32 следующим образом:
STM32[PC13]->A4988[DIR]
STM32[PA8]->A4988[STEP] 
На PC13 будем формировать высокий и низкий уровни, тем самым управляя направлением вращения шагового двигателя.
На PA8 с помощью аппаратного ШИМ будем формировать импульсы (шаги).

Программная реализация:
В главном цикле меняем предделитель частоты через регистр, поскольку это делается быстрее, чем через HAL. Пример кода:



//Запускаем таймер 
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
//Получаем начальный предделитель таймера №1
step = TIM1->PSC;
while (1)
{ 
//Если предделитель больше 200, тогда уменьшаем значение, тем самым увеличивая частоту
 if (step>=200)
 {
 //Получаем содержимое регистра 
 step =TIM1->PSC;
 //Отнимаем от предделителя единицу
 step=step-1;
 //Устанавливаем в регистр предделителя новое значение
 TIM1->PSC=step; 
 }
 //Ждём разгона шаговика на текущую частоту
 HAL_Delay(10);
 }


Ограничение в 200 было найдено экспериментально для моего двигателя, меньше этого значения двигатель уже переставал крутиться. Настройки  STM32CubeMX следующие:


На этом всё, всем всего доброго.  Файл проекта прилагается.
Огромная благодарность  Веимьла А. С. за редактирование статьи. 

скачать dle 11.3
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.