+2 голосов

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

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

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

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

5 Ответы

+4 голосов

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

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

(74 баллов) 2 7
Браво! Ведь FPGA (ПЛИС) — это как раз тот тип железа, для которого очень быстрый DSP — родная стихия.
Интересный модуль, спасибо за наводку!
+3 голосов
Во первых: нужно правильно выбрать энкодер. Необходим энкодер для пром применения со схемами подавления дребезга на выходах и обеспечивающий работу с данной скоростью.

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

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

Или сделайте опрос энкодеров на отдельном МК , а результат отправляйте на другой МК , который будет управляеть индикацией и другими узлами схемы.
(50 баллов) 3
1. Энкодеры промышленные.
2. Рассчитать тут по сложнее получается, потому что сначала один энкодер потом еще добавляешь вроде справляется, потом вешаешь еще пару функций и уже начинаются проскальзывания.
3. Прерывания используются.
4. Да наверное придется разносить на разные платы.
+1 голос
  • Софтварный способ: В статье упоминается софтварный способ опроса энкодера. Он работал при 64000 импульсах в секунду. Можно попробовать использовать его, но на платах с более высокой тактовой частотой, например arduino due (в ней также можно использовать хардварные прерывания на любом пине). 
  • Хардварный способ: На ардуино мега 6 пинов с прерываниями. Для ваших 3 энкодеров этого как раз хватает.  Возможно, у вас не получилось из-за одновременного срабатывания 2 прерываний.
  • Простой способ: Дешевле и проще купить 3 ардуино нано и скопировать код из статьи. Один МК контролирует один энкодер и отправляет данные на главную ардуину.
(302 баллов) 10 33
Использовал Мегу с 6 прерываниями, возможно действительно проблема в одновременных срабатываниях. Вариант с несколькими нано конечно гораздо  дешевле но хотелось бы какой то модуль с нормальными разъемами, типа как на BeagleBone Blue.
0 голосов
Вместо BeagleBone можно использовать любой одноплатник. Но лучше использовать МК с таймерами, которые аппаратно поддерживают квадратурный код (именно такой код выдают инкрементальные энкодеры). Такие есть, например, в МК STM32.
(186 баллов) 1 11
0 голосов
Купите энкодер с Modbus RTU на выходе и опрашивайте Ардуиной хоть 200штук.
назад (44 баллов) 1 5
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. issaom

    216 балл(ов)

  2. gokase

    171 балл(ов)

  3. parovoZZ

    120 балл(ов)

  4. a1000

    79 балл(ов)

  5. vasp

    56 балл(ов)

  6. sser

    36 балл(ов)

Награды месяца
1-е место: Raspberry Pi 4 Model B (4 GB RAM)
2-е место: Raspberry Pi 4 Model B (2 GB RAM)
3-е место: Raspberry Pi 4 Model B (1 GB RAM)

...