самопроизвольно дергается шаговик

pinigin4

✩✩✩✩✩✩✩
6 Сен 2023
12
0
работает TM1637 на gyverTM1637.h и nema17 на а4988.Шаговик периодически хаотично дергается ,когда нет сигнала.Обычно грешат на таймер,но здесь просто хаотично идут импульсы со степ пина,он должен в нуле
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,706
474
Вот интересно, кто-нибудь без наличия кода и полной схемы устройства сможет ответить на этот вопрос? Здесь гадалок, телепатов и прочих ясновидящих пока не наблюдалось.
 
Изменено:

pinigin4

✩✩✩✩✩✩✩
6 Сен 2023
12
0
Вот интересно, кто-нибудь без наличия кода и полной схемы устройства сможет ответить на этот вопрос? Здесь гадалок, телепатов и прочих ясновидящих пока не наблюдалось.
зачем вам сотни строк кода? Устройство считывает показания цифрового штангенциркуля и выводит его на табло функцией disp.displayInt().Отработка перемещения начинается при разности текущей координаты и заданной,считывание штангена в это время не идет.Глюки происходят когда идет считывание и шаговик должен стоять на месте.Выдергиваю step вход из драйвера - стоит на месте.Наводятся нкпонятные импульсы на пине
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,706
474
Изменено:

pinigin4

✩✩✩✩✩✩✩
6 Сен 2023
12
0
@pinigin4,
А почему вы решили, что именно наводятся, а не контроллер их выдаёт?
у меня такого не было никогда чтобы на пине,который должен активироваться только после команды по serial,появлялись импульсы.Пробовал притягивать к нулю резистором 200 Ом - без толку
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,706
474
должен активироваться только после команды по serial
Непонятно, как связаны шаговик и serial. Впрочем, раз решили идти путём гадания, а не анализа, то вперёд.
Пробовал притягивать к нулю резистором 200 Ом - без толку
Понятно, что без толку. Это не наводка, это неправильная работа кода.
 

pinigin4

✩✩✩✩✩✩✩
6 Сен 2023
12
0
void otrH(){if(h!=H){......}}
отработка перемещения начинается только после задания целевой координаты H,не совпадающей с текущей координатой h.В скетче может задаваться только через Serial
 

poty

★★★★★★✩
19 Фев 2020
3,237
942
@pinigin4, как определяется "текущая координата"? Абсолютно уверены, что отсутствует дребезг в этой переменной? Либо нужно делать дельту, в пределах которой уход h не приводит к обнаружению ошибки, либо при достижении целевого значения прекращать сравнивать текущее положение с целевым, а просто взводить флаг и ждать нового целевого значения.
 

poty

★★★★★★✩
19 Фев 2020
3,237
942

@pinigin4, Вы не ответили на вопрос. В "обкатанной" конфигурации могло быть что-то по-другому. И с Serial это мало связано. Раз уж Вы программируете сами, сделайте выключение соответствующего пина после достижения целевого положения и посмотрите, будет ли дёргаться двигатель.