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

В Arduino Due можно организовать аппаратный квадратурный декодер со счётчиком.
Текущая версия пользовательского блока — v0.31
Параметров нет. Просто читаешь значение счётчика.

Из описания блока:
=============================================
Версия 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 647 до 2 147 483 647.
Начальное значение на обоих выходах — 0. Изменить нельзя.
Также выход DIR (Boolean) показывает текущее направление вращения.

Материалы для ознакомления:
http://forum.arduino.cc/index.php?topic=140205.75
http://www.atmel.com/Images/Atmel-42706-Quadrature-Decoder-QDEC-for-SAM3-4-Devices_ApplicationNote_AT11483.pdf

 

Скачать


1

Автор публикации

не в сети 2 недели

Сергей Глушенко

782
Комментарии: 15Публикации: 391Регистрация: 04-02-2018

Оставьте комментарий

Войти с помощью: