Jump to content

Скорость вращения энкодера


Recommended Posts

Всем привет. Нужно реализовать скорость вращения энкодера на stm32. EncoderMode настроен таким образом, что через каждые 32 тика он обнуляется и идет отсчет заново. Я использую разность между текущим и предыдущим значениями тиков для определения скорости. Суть в том, что есть промежутки времени, где происходит обнуление счетчика с 31 до 0. Тогда разность между ними становится максимальной и скорость вращения вычисляется неверно.

Уже пробовал покопаться с настройками в CubeMX, но ничего толкового не вышло (работаю с stm меньше недели). Программно тоже решить не смог. Есть идеи, как считать скорость вращения без таких казусов?

Link to comment
Share on other sites

Нужно сначала сравнить текущее значение с предыдущим. Если новое значение больше, чем предыдущее, то просто вычитаем. Если новое значение меньше, то к нему сначала добавляем 32, а потом вычитаем.

encCount = __HAL_TIM_GET_COUNTER(&htim1);

if(encCount > oldCount)
    result = encCount - oldCount;
else
    result = encCount + 32 - oldCount;

oldCount = encCount;

Но всё равно, надо как-то увеличить максимальное значение тиков с 32 до 256, хотя бы.

Link to comment
Share on other sites

Posted (edited)
10 часов назад, Yurkin2015 сказал:

////////////

Спасибо большое, это помогло избежать проблем с с резким изменением скорости, но добавило еще одну. Если энкодер падает с  31 до 0, то все нормально, но если энкодер будет крутиться в другую сторону, то опять будет срабатывать else, и тогда не будет отрицательного значения, значит настроить ПИД не получится...

Edited by Falconist
Оверквотинг
Link to comment
Share on other sites

ИП MEAN WELL для медицинских и промышленных устройств на складе Компэл

Компэл расширяет складскую программу по специальным ИП для применения в медицинских приборах и промышленных устройствах. Представлены ИП в диапазоне мощности от 5 до 500 Вт, по медицинскому стандарту EN60601-1 с двумя мерами защиты пациента (2хMOPP; тип BF) для устройств, контактирующих с пациентом.  

Все эти надежные источники питания могут применяться не только в медицинских устройствах, но и в промышленных устройствах и информационных системах.  Подробнее>>

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...