Абсолютный кодировщик шестнадцатеричный ввод

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

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

Случай 1: analogRead(absEncdr == 00)
Arduino входит в режим ожидания

Вариант 2: analogRead(absEncdr == 11)
Arduino входит в кнопку рутины

так далее

информация: Тип датчика Abs: 25LB22-G
Таблица кодировщика Вот.

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

В принципе, я не уверен, как читать этот кодировщик abs в моем Arduino.

0

Решение

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

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]