Аппаратный квадратурный счётчик в Arduino Due

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Аппаратный квадратурный счётчик в Arduino Due

#1

Сообщение eugeneb » 03.01.2018{, 22:40}

[ · Скачать удаленно (34kB) ] 29.11.2017, 10:13
В Arduino Due можно организовать аппаратный квадратурный декодер со счётчиком.
Текущая версия пользовательского блока - v0.31
Параметров нет. Просто читаешь значение счётчика.
Обсудить можно здесь:
http://forum.flprog.ru/viewtopic.php?f=44&t=2756

Из описания блока:
=============================================
Версия 0.31 - исправлено получение сигнала DIR
Версия 0.3 - введён выход направления вращения, изменена Лейбла блока на QDEC
Версия 0.2 - введён второй выход - беззнаковый
Версия 0.1 - начальная

Блок квадратурного счётчика. Только для Arduino Due!
Конфигурирует аппаратные таймеры как квадратурный счётчик - реверсивный 32-разрядный беззнаковый.

Физические квадратурные сигналы от энкодера A и B подаются на входы 2 и 13 Arduino Due.
Номера входов заданы аппаратно и изменить их нельзя.

Счётчик считает число фронтов и спадов обоих квадратурных сигналов - четыре на период.
То есть, если у вашего энкодера три периода на оборот(CPR=3), то счётчик насчитает 12 за оборот(PPR=12).

Текущее подсчитанное значение выдаётся по двум выходам.
На выходе QU значение Unsigned Long Integer 0 до 4294967295.
На выходе QS значение Long Integer от -2 147 483 648 до 2 147 483 647.
Начальное значение на обоих выходах - 0. Изменить нельзя.
Также выход DIR (Boolean) показывает текущее направление вращения.

Блок выглядит так:
8481637.png
8481637.png (1.93 КБ) 1481 просмотр

Материалы для ознакомления:
http://forum.arduino.cc/index.php?topic=140205.75
http://www.atmel.com/Images/Atmel-42706 ... T11483.pdf
Последний раз редактировалось eugeneb 05.02.2018{, 21:22}, всего редактировалось 4 раза.

M_A_R_A_T
Рядовой
Сообщения: 85
Зарегистрирован: 03.07.2016{, 13:56}
Репутация: 1
Откуда: астана

Аппаратный квадратурный счётчик в Arduino Due

#2

Сообщение M_A_R_A_T » 23.02.2018{, 08:21}

а есть возможность поставить 2 энкодера в проект?

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Аппаратный квадратурный счётчик в Arduino Due

#3

Сообщение eugeneb » 02.03.2018{, 22:23}

M_A_R_A_T, вопрос мутный. На форумах некоторые утверждают, что можно, некоторые категорически возражают. Документация от Атмел говорит, что можно. Возможно, это зависит от конкретного релиза чипа процессора. У себя сейчас проверить не могу, так как Due, которая была у меня - ушла. Когда будет возможность - проверю.

M_A_R_A_T
Рядовой
Сообщения: 85
Зарегистрирован: 03.07.2016{, 13:56}
Репутация: 1
Откуда: астана

Аппаратный квадратурный счётчик в Arduino Due

#4

Сообщение M_A_R_A_T » 03.03.2018{, 15:21}

спасибо за отзыв. но в принципе все вопросы свои решил, быстродействия хватает.

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

Аппаратный квадратурный счётчик в Arduino Due

#5

Сообщение vovka1973 » 07.03.2018{, 18:02}

M_A_R_A_T писал(а):
03.03.2018{, 15:21}
спасибо за отзыв. но в принципе все вопросы свои решил, быстродействия хватает.
а как вы сбрасываете счетчик в ноль?
Изображение

M_A_R_A_T
Рядовой
Сообщения: 85
Зарегистрирован: 03.07.2016{, 13:56}
Репутация: 1
Откуда: астана

Аппаратный квадратурный счётчик в Arduino Due

#6

Сообщение M_A_R_A_T » 07.03.2018{, 20:07}

а как вы сбрасываете счетчик в ноль?
я не использую этот блок. мне требуется два энкодера.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Аппаратный квадратурный счётчик в Arduino Due

#7

Сообщение eugeneb » 10.03.2018{, 19:21}

vovka1973 писал(а):
07.03.2018{, 18:02}
а как вы сбрасываете счетчик в ноль?
В этой технологии оперативный сброс в ноль и какие-либо предустановки счётчиков
не предусмотрены.
Только сбросом всего контроллера.

Ответить

Вернуться в «Датчики и энкодеры»