Работа энкодера в следящей системе

Здравствуйте, уважаемы знатоки!

Подскажите мне, пожалуйста, если сами знаете и готовы поделиться информацией, следующий момент: у меня имеется энкодер KY-040 15 шагов за оборот (24 градуса), использую библиотеку GyverEncoder, “сажаю” CLK на 3 пин, DT на 4 пин, SW на 5 пин. Этот энкодер связан муфтой с двигателем. Вторым энкодером задаю количество шагов. Когда нажимаю кнопку, двигатель должен провернуть первый энкодер на количество шагов, указанных вторым энкодером. Заметил следующее: при вращении в одном направлении, все отлично. Как только направление меняю, в первом цикле сохраняется ошибка, равная 12-15 градусов (точно не могу определить). Решил посмотреть на осциллографе, что там происходит, подключил к ножкам и обнаружил, что при вращении в одном направлении (когда всё хорошо) оба импульсных сигнала (А и В) проходят одинаковый период, однако один относительно другого сдвинут не на половину, как везде рисуют, а, вроде как, на четверть. Причем наглядно это так выглядит примерно так, как показано на рисунке. Таким образом, на рисунке можно отметить 4 изменения с сиганалами: сначала красный изменяется, потом зеленый, потом вновь красный, и снова зеленый. После этого двигатель останавливается, поскольку количество шагов обоих энкодеров сравнялись. В случае с обратным вращением, происходит сначала 3 изменения с сигналами, причем по осциллограмме видно, что проходят они в сумме больше, чем полупериод, после чего система считает, чтоб произошел поворот на 24 градуса (1 шаг). Затем, если еще раз в этом же направлении начать вращать, все становится на свои места и система действительно начинает “шагать” по 24 градуса.

Подскажите, это где то я ошибаюсь или проблема в библиотеке? Или это вовсе не проблема, а принцип работы энкодера. Можно ли как то точно посчитать, какая ошибка при первой смене направления? Заранее благодарю.

При чём библиотека если у тебя энкодер кривой

Да, они разные. Особо везучим достаются с точкой фиксации прямо на переходе. Попробуйте выбрать настройку для первого типа.

P.S. Использовать такой(механический) энкодер на валу двигателя - плохая идея! Тут нужна оптика или какой специальный.

нет дружище, это ОЧЕНЬ плохая идея, зачем ты ТСу льстишь ;-)))

Ошибаешься именно ты, коль считаешь, что можно добиться точности большей, чем шаг энкодера.
Если нужна ошибка не более 10 градусов, то и энкодер нужно брать минимум на 70 шагов на оборот.

https://aliexpress.ru/item/1005007369790987.html

1 лайк

Благодарю за ответ, в коде и так стоит TYPE1

Ну так а люфт внутри шага?
Согласен с #5

1 лайк

А может с двигателем использовать два датчика Холла и один магнит на валу. Правда, точность будет пол - оборота.

Люди же просто так придумали энкодеры 24-битные. Они не понимают просто ничего.

Тс сейчас нам расскажет как добиться прецизионной точностью на китайской крутилке на 20позиций…

Вы, господин, читать умеете? Я же написал: если сами знаете и готовы поделиться информацией. Зачем вы тратите время, чтобы написать непонятно что?

К сожалению, задача стоит именно разобраться с этой проблемой. Добавлять или убирать что-то не могу. Требуется определить угловую ошибку)

Известно, что она равна примерно 24 градуса.

Бывают такие энкодеры, у которых в исходном состоянии один контакт замкнут, а другой разомкнут.

Да, кэп!
А также бывают энкодеры, у которых один контакт разомкнут, а другой - замкнут. А также такие, у которых оба контакта замкнуты, и такие, у которых оба контакта разомкнуты.

Вам уже несколько человек разъяснили в чём дело. Если не поняли – зачем на зеркало пенять?

Вероятно, вы тоже не прочитали моего вопроса. Увы.

Если здесь никто не знает, иди на форум гайвера, доставай всех там.

2 лайка

Я вижу, что никто не знает. Но я не доставал никого, вы же сами мне написали)

тебе же ответили, меняй энкодер, если ты хороший слесарь - разбери и выстави угол по фэншую