Шаговый двигатель C Реализация

Не удалось найти этот ответ в другом месте.

Есть ли типичный способ реализации шагового двигателя, ускорения, скорости и управления скоростью в C?

Тактовая частота кажется недостаточно быстрой, чтобы переключать шаговый штифт в каждом цикле. Люди обычно используют прерывание CTC и изменяют значение сравнения таймера? Я хочу переместить определенное количество шагов на определенные значения Vel и Accel.

Любая помощь будет принята с благодарностью!

Оппи


person Oppy    schedule 21.03.2021    source источник
comment
Если частота процессора недостаточно высока, вам придется использовать внешний таймер, который не управляется часами. Но есть максимальная скорость, на которой вы можете управлять двигателем - если вы едете слишком быстро, вы просто слышите жужжание. Поэтому сначала попробуйте то, что проще всего - это то же самое, что и любое другое программирование: заставьте его работать, а затем оптимизируйте его, только если это необходимо.   -  person Jerry Jeremiah    schedule 21.03.2021
comment
Спасибо за вклад! Я только что взглянул на плату управления шаговым двигателем Melzi, которую можно найти во многих 3D-принтерах. Штырь шага от контроллера прикреплен непосредственно к Atmega1284P. Думаю, мне нужно попробовать посмотреть, что делает программа ...   -  person Oppy    schedule 22.03.2021
comment
Разница между скоростью процессора и реакцией механического оборудования, такого как степперы, настолько односторонняя, что трудно представить, чтобы какой-либо микроконтроллер когда-либо мог работать слишком медленно.   -  person Martin James    schedule 22.03.2021
comment
Я не совсем это имел в виду. Мой основной цикл составляет 2 мс, если бы я должен был переключать штифт с этой скоростью, и шаговый двигатель имеет 200 шагов на оборот, шаговый двигатель может делать только 2,5 оборота в секунду. Если бы я внезапно добавил микрошаговый режим, он стал бы довольно медленным.   -  person Oppy    schedule 22.03.2021


Ответы (1)


Некоторое время назад я написал драйвер устройства C на микроконтроллере STM8S для шагового двигателя Sonceboz 24 В постоянного тока.

Между процессором и двигателем я поставил драйвер шагового двигателя L6219.

Тактовая частота процессора составила 8 МГц.

Я использовал аппаратный таймер, который каждые 10 мс запускал прерывание.

В функции прерывания был мой код, который запускал драйвер L6219.

Процессорное время, затраченное на функцию прерывания, было менее 20 микросекунд.

person Enrico Migliore    schedule 21.03.2021