Вопрос: Как я могу получить вход от абсолютного кодировщика, который выводит его в шестнадцатеричном / сером коде в Arduino? я использую digitalRead
или же analogRead
команда? Я не смог найти пример кода / проектов с абсолютным кодером онлайн.
Общая цель: я хочу использовать абсолютный кодировщик в качестве регулятора для проекта. Идея состоит в том, что кодер выведет свою позицию в качестве состояния, которое будет использоваться в операторе case. то есть:
Случай 1: analogRead(absEncdr == 00)
Arduino входит в режим ожидания
Вариант 2: analogRead(absEncdr == 11)
Arduino входит в кнопку рутины
так далее
информация: Тип датчика Abs: 25LB22-G
Таблица кодировщика Вот.
Я использую шестнадцатеричный / серый код 4-битный двоичный код Шестнадцатеричный-16 Положение датчика положения
В принципе, я не уверен, как читать этот кодировщик abs в моем Arduino.
Чтобы прочитать это вам понадобится четыре цифровых пина. Вы можете прочитать четыре вывода и сдвинуть эти значения по битам в один байт, который вы можете сравнить с таблицей в спецификации.
byte position = (digitalRead(pin8) << 3) | (digitalRead(pin4) << 2) | (digitalRead(pin2) << 1) | digitalRead(pin1);
Предполагая, что контакты названы так, как они есть в этой таблице истинности в таблице данных.
Мы используем оператор ИЛИ | собрать их в один байт.
Других решений пока нет …