При обновлении дисплея подтормаживает шаговый двигатель

wano555

✩✩✩✩✩✩✩
13 Сен 2025
0
0
Всем привет! Сразу на берегу, я не программист! И писать программы для ардуино (по крайней мере пока) не умею. Данная задача скорее эксперимент. Пишет программу deepseek. Общие принципы написания программ я понимаю и практика показала, что подсказки и задачи для ии я ставлю верные.
Железо: ArduinoUno, Драйвер ШД TMC2208 (просто был под рукой и он тихий), ШД Nema17. ШД подключен напрямую через зубчатый шкив 20 зубов к круговому ремню GT2.
Теперь задача: Нужно написать программу работы шагового двигателя: Парковка по концевому датчику. Далее, при нажатии на кнопку старт переход в точку старта в координату +20мм со скоростью (условно) 40мм/мин, далее движение по циклу в координатах +20мм +75мм (амплитуда движения 55мм) с частотой 30 циклов в минуту. Движение синусоидальное. Имитация кривошипно-шатунного механизма. Работа по таймеру 1 минута (Потом таймер будет настраиваемым) по окончании таймера либо прерывании программы по 3му нажатию на кнопку старт программа должна припарковаться по датчику парковки в положение 0.
Показания выводятся на дисплей (по крайней мере пока) LCD2004 +I2C.
Что в итоге имеем. Как я не бился с этим ИИ))), не получается избавится от подтормаживаний ШД во время обновления показаний экрана (тот же обратный отсчет таймера).
Обновлять только изменяемые показания пробовал, кроме отсутствия моргания дисплея ничего не дало. Пробовал обновлять дисплей при смене направления движения тоже пробовал. При любом внесении правок в программу это момент сбивается начинаются подтормаживания.
Собственно в чем вопрос: Как это реализовано в той же прошивке Марлин для 3д принтеров? Ведь там все и перемещается и обновляется без проблем и подтормаживаний ШД. Может кто сталкивался с подобной проблемой и нашел ее решение.