Распиновка энкодера для ардуино подключение и схема

0
11

Энкодер ардуино распиновка

Для работы с прерываниями выберите пины, поддерживающие INT0 или INT1 – на большинстве версий это D2 и D3. Это снизит вероятность пропуска импульсов при быстром вращении. Код обработки должен учитывать направление: сравнение текущего состояния A с предыдущим значением B определит движение.

Пример схемы: сигнальные линии через подтягивающие резисторы 10 кОм к +5V. Если помехи вызывают ложные срабатывания, добавьте керамические конденсаторы 0.1 мкФ между каждым входом и землей.

Используйте библиотеку Encoder для упрощения обработки. Инициализация: Encoder myEnc(2, 3);. Метод read() возвращает текущее положение, а write(0) сбрасывает счетчик.

Разбор контактов и соединение с микроконтроллером

Контакт Функция Пин Arduino
A Фаза импульсов D2
B Сдвинутая фаза D3
COM Общий провод GND

Пример кода для обработки сигналов

Используйте прерывания для точного считывания изменений положения. Настройте входы INPUT_PULLUP, если резисторы не установлены на плате:

const int pinA = 2;
const int pinB = 3;
volatile int counter = 0;
void setup() {
pinMode(pinA, INPUT_PULLUP);
pinMode(pinB, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(pinA), readEncoder, CHANGE);
}
void readEncoder() {
if (digitalRead(pinA) == digitalRead(pinB)) {
counter++;
} else {
counter--;
}
}

Определение контактов: A, B и общий провод

Как отличить общий контакт

Проверка без приборов

Соединение поворотного датчика с микроконтроллером через резисторы

  • CLK → Цифровой пин 2 (прерывание INT0)
  • DT → Цифровой пин 4
  • + → 5V
  • GND → Земля

Пример кода для обработки сигналов:

const int pinCLK = 2;
const int pinDT = 4;
volatile int counter = 0;
void setup() {
pinMode(pinCLK, INPUT_PULLUP);
pinMode(pinDT, INPUT_PULLUP);
attachInterrupt(0, countPulses, CHANGE);
}
void countPulses() {
if (digitalRead(pinCLK) == digitalRead(pinDT)) {
counter++;
} else {
counter--;
}
}

При монтаже избегайте длинных проводов – наводки искажают импульсы. Для помехозащищённых цепей добавьте керамические конденсаторы 0.1 мкФ между каждым сигнальным проводом и землёй.

Как определить назначение контактов перед соединением

Методы идентификации

2. Определение фаз: оставшиеся два контакта – сигнальные. При вращении по часовой стрелке один из них срабатывает раньше, против – позже. Зафиксируйте порядок для корректной обработки в коде.

Проверка без приборов

Подсоедините устройство к плате через резисторы 10 кОм. Загрузите скетч с чтением сигналов и вращайте вал. Наблюдайте за изменением значений в мониторе порта – это поможет определить логику работы.