Цена:
Технические характеристики
Поворотный электромеханический энкодер с центральной кнопкой — популярное и удобное решение, подарившее актуальный способ упрощённого управления различным электронным оборудованием при помощи всего одной руки. Благодаря появлению поворотного энкодера, многие бытовые и промышленные приборы научились понимать команды, соответствующие вращению ручки управления по часовой или против часовой стрелке на разные углы в сочетании с её нажатием (центральная кнопка поддерживается не всеми энкодерами). Пролистать меню на экране или отрегулировать громкость в звуковоспроизводящем устройстве, а также настроить терморегулятор в системе климатического контроля жилого помещения (например, электрического тёплого пола) можно сделать с использованием встроенного цифрового энкодера.
Энкодер подключается к низковольтному напряжению в диапазоне 0В ~ +5В постоянного тока. Конструкция энкодера имеет 20 фиксированных положений поворотного механизма, определяющих угловое перемещение ручки управления. Преодоление каждого фиксированного положения во время вращения сопровождается формированием контрольного импульса на выходе. В схеме энкодера предусмотрено два выхода S1 и S2 со смещением сигналов на 90°. Применённый метод смещения позволяет вычислять направление вращения ручки, отталкиваясь от логического состояния первого из выходов (S1 или S2) на момент переключения положения. По сигналу со второго выхода обрабатывается событие вращения. У энкодера присутствует центральная кнопка KEY, образующая низкоуровневый выходной сигнал при её нажатии.
Пример программирования энкодера
Скетч с примером демонстрирует подсчёт импульсов с инкрементированием или декрементированием результата относительно выбранного направления вращения, без реакции на нажатие кнопки (можно добавить обработку с подключением кнопки к свободному порту Arduino, поддерживающему прерывания).
/*
Скетч для обработки энкодера работает на одном прерывании INT
Основанный на функции digitalRead, код универсален для всех плат Arduino
*/
#define ENC_A 2 // пин S1 энкодера
#define ENC_B 4 // пин S2 энкодера
volatile int encCounter;
volatile boolean state0, lastState, turnFlag;
void setup() {
Serial.begin(9600);
attachInterrupt(0, int0, CHANGE);
}
void int0() {
state0 = digitalRead(ENC_A);
if (state0 != lastState) {
turnFlag = !turnFlag;
if (turnFlag) encCounter += (digitalRead(ENC_B) != lastState) ? -1 : 1;
lastState = state0;
}
}
void loop() {
Serial.println(encCounter);
delay(100);
}
Электрическая принципиальная схема модуля энкодера
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru