Jump to content

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


Recommended Posts

Всем привет. Работаю с stm32 менее недели. Есть задание - оформить ПИД регулятор для мотора, но для этого сначала требуется найти скорость вращения энкодера. Он магнитный, идет в комплекте с мотором. Настроил прерывания по таймеру (TIM2 - каждые 30 мс вызывается прерывание) и EncoderMode.

В теле прерываний EncoderMode есть только count++, который просто считает количество тиков, которые произошли при повороте энкодера. В прерывании по таймеру я хотел бы определять разность между прошлым значением count и текущим, но не могу понять, как реализовать такое.

encCount = __HAL_TIM_GET_COUNTER(&htim1);

oldCount = encCount;
мне нужна задержка или что-то подобное между этими строками, поскольку нужна разность между значениями. Кто-нибудь может помочь?
 

Link to comment
Share on other sites

Что-то вы написали - трудное для понимания. 

Вам нужно считать импульсы от энкодера за единицу времени либо измерять длительность импульса/периода.

Link to comment
Share on other sites

Вот в этом и дело - "считать импульсы от энкодера за единицу времени". Для нахождения того, сколько импульсов энкодера проходит за опр. время, нужно ведь считать разность между текущим значением и предыдущим, так? Но в прерывании старое значение сразу затирается и принимает новое -разность между ними уже будет равна нулю, и так каждый раз.

Link to comment
Share on other sites

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

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

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

Posted (edited)

Завести ещё одну переменную и класть в не разницу (ваше искомое количество). Либо класть в не значение счётчика, а счётчик обнулять.

Edited by korsaj
Link to comment
Share on other sites

Популярные модели литиевых батареек FANSO EVE Energy готовы к отправке
На складе КОМПЭЛ уже готовы к поставке одни из самых востребованных литиевых батареек типов ER и CR производства FANSO EVE Energy – одного из мировых лидеров на рынке первичных литиевых элементов питания.
Данные источники тока получили широкое применение в различных областях, будь то системы безопасности, приборы учета или мелкая бытовая техника.

Подробнее о применениях >>

17 часов назад, Владимир Манзаров сказал:

encCount = __HAL_TIM_GET_COUNTER(&htim1);

oldCount = encCount;
мне нужна задержка или что-то подобное между этими строками, поскольку нужна разность между значениями. Кто-нибудь может помочь?

Между строчками нужно:

result = encCount - oldCount;

Link to comment
Share on other sites

LED-драйверы MEAN WELL на складе – выбор больше, стоимость ниже

Компэл расширил и существенно пополнил склад LED-драйверами компании MEAN WELL, одновременно снизив цену на них. В настоящий момент на складе представлена широкая линейка продукции для наружного (семейства HLG, ELG, XLG, LPC, LPV), и для внутреннего (APC, LCM, SLD, APV) освещения.

Имеется большой выбор моделей с различными режимами стабилизации выходных параметров. Кроме того, есть в наличии и линейка DC/DC-драйверов, как понижающих (семейство LDD), так и повышающих (семейство LDH).

Подробнее>>

LIR-20 – модуль резервирования питания от MORNSUN
Компания MORNSUN расширила линейку продукции, монтируемой на DIN-рейку, выпустив модуль резервирования питания LIR-20 с максимальным током до 20 А на канал. Модуль можно использовать на шинах с напряжением 24 или 48 В (полный диапазон напряжения 22…60 В). Данный модуль применяется в системах, где даже выход из строя источника питания (ИП) не должен привести к потере напряжения. К модулю резервирования подключаются два источника питания, причем один из них может быть бесперебойным (ИБП; UPS), и нагрузка.

Читать подробнее >>

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...