+3 голосов

Здравствуйте, пару лет назад наткнулся на статью на хабре, об экспериментах с опросом импульсного датчика (энкодера) https://habr.com/ru/post/340448/   

У меня задача опрашивать несколько (до 3шт) энкодеров на большой скорости (до 8000имп/с). Пробовал на Меге, повторяемости не получил, думаю на больших скоростях, немного да и проскакивает, вот хотел попробовать с применяемым в статье BeagleBone Blue, но нигде не могу его найти, может кто подсказать есть ли более доступные аналогичные решения?

(8 баллов) 1 1 3
теги изменил
На Attiny 13 со входа на два компаратора в плюс и минус.
Фильтрую 25 кГц  с LC генератора.
Можно RC цепочку.

http://i-fotki.info/26/d90083acfee2f7ad15deaef4758a6cbbb03b49357603803.jpg.html

5 Ответы

+5 голосов
 
Лучший ответ
Во первых: нужно правильно выбрать энкодер. Необходим энкодер для пром применения со схемами подавления дребезга на выходах и обеспечивающий работу с данной скоростью.

Во вторых: необходимомо проработать алгоритмы работы устройства. и убедиться , что выбранный МК способен обработать поступающие с такой частотой импульсы от 3-х энкодеров.

в третьих: по максимуму использовать аппаратные возможности МК для достижения наилучших результатов. Используйте прерывания в МК и иные возможности.

Или сделайте опрос энкодеров на отдельном МК , а результат отправляйте на другой МК , который будет управляеть индикацией и другими узлами схемы.
(93 баллов) 1 2 4
выбран
1. Энкодеры промышленные.
2. Рассчитать тут по сложнее получается, потому что сначала один энкодер потом еще добавляешь вроде справляется, потом вешаешь еще пару функций и уже начинаются проскальзывания.
3. Прерывания используются.
4. Да наверное придется разносить на разные платы.
+5 голосов

Существует такая железка: Arduino MKR Vidor 4000. Там импульсы обрабатываются на встроенной ПЛИС, поэтому плата не "затыкается" даже на больших оборотах. Пример реализации энкодера показан на сайте производителя.

Если копать в эту сторону — возможно, получится то, что надо!

(14 баллов) 2 5 10
Браво! Ведь FPGA (ПЛИС) — это как раз тот тип железа, для которого очень быстрый DSP — родная стихия.
Интересный модуль, спасибо за наводку!
+2 голосов
  • Софтварный способ: В статье упоминается софтварный способ опроса энкодера. Он работал при 64000 импульсах в секунду. Можно попробовать использовать его, но на платах с более высокой тактовой частотой, например arduino due (в ней также можно использовать хардварные прерывания на любом пине). 
  • Хардварный способ: На ардуино мега 6 пинов с прерываниями. Для ваших 3 энкодеров этого как раз хватает.  Возможно, у вас не получилось из-за одновременного срабатывания 2 прерываний.
  • Простой способ: Дешевле и проще купить 3 ардуино нано и скопировать код из статьи. Один МК контролирует один энкодер и отправляет данные на главную ардуину.
(925 баллов) 40 74 103
Использовал Мегу с 6 прерываниями, возможно действительно проблема в одновременных срабатываниях. Вариант с несколькими нано конечно гораздо  дешевле но хотелось бы какой то модуль с нормальными разъемами, типа как на BeagleBone Blue.
+1 голос
Вместо BeagleBone можно использовать любой одноплатник. Но лучше использовать МК с таймерами, которые аппаратно поддерживают квадратурный код (именно такой код выдают инкрементальные энкодеры). Такие есть, например, в МК STM32.
(2.7 тыс. баллов) 10 29 55
+1 голос
Купите энкодер с Modbus RTU на выходе и опрашивайте Ардуиной хоть 200штук.
(593 баллов) 4 8 19
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. KrSV

    2 балл(ов)

  2. Палыч

    2 балл(ов)

  3. Дамир

    2 балл(ов)

  4. lcco

    2 балл(ов)

  5. Ergamister

    2 балл(ов)

  6. Александр312

    2 балл(ов)

...