Абсолютный кодировщик шестнадцатеричный ввод - PullRequest
0 голосов
/ 19 октября 2018

Вопрос: Как получить вход от абсолютного кодера, который выводит его в шестнадцатеричном / сером коде в Arduino?использовать команду digitalRead или analogRead?Я не мог найти пример кода / проектов с абсолютным кодером онлайн.

Общая цель: я хочу использовать абсолютный кодировщик в качестве регулятора для проекта.Идея состоит в том, что кодер выведет свою позицию в качестве состояния, которое будет использоваться в операторе case.Т.е.:

case1: analogRead(absEncdr == 00) arduino входит в режим ожидания

case2: analogRead(absEncdr == 11) arduino входит в процедуру кнопки

и т. Д.

детали: тип датчика Abs: Таблица кодировщика 25LB22-G здесь .

Я использую шестнадцатеричный / серый код 4-битный двоичный код Шестнадцатеричный-16 Версия датчика положения

В основном, яЯ не уверен, как читать в этом кодировщике абс в моем Arduino.

1 Ответ

0 голосов
/ 19 октября 2018

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

byte position = (digitalRead(pin8) << 3) | (digitalRead(pin4) << 2) | (digitalRead(pin2) << 1) | digitalRead(pin1);

Предполагая, что контакты названы так, как они есть в этой таблице истинности в таблице данных.

Мы используем оператор ИЛИ |собрать их в один байт.

...