
EC11 Rotary Encoder with Push Button
Разные изготовители; референс Alps Alpine · EC11 с кнопкой; референс Alps Alpine EC11E15244G1
Поворотный ввод направления и приращения с отдельной кнопкой подтверждения.
Автор: SLDV LAB
Опубликовано · Обновлено
О МОДУЛЕ
Что делает EC11 с кнопкой; референс Alps Alpine EC11E15244G1
EC11 — семейство механических инкрементальных энкодеров. В качестве проверенного исполнения выбран Alps Alpine EC11E15244G1 с нажимным выключателем. Нельзя считать любые EC11 или модуль KY-040 этим же изделием: отличаются распиновка платы, подтяжки, вал, число фиксаций и импульсов.
Два контакта A/B образуют последовательность состояний, по которой программа определяет относительное вращение. Абсолютного положения после включения нет; сохранение значения меню организует программа. Тактильная фиксация, полный электрический период и отдельный переход A/B — разные единицы. Пример выводит счёт переходов, не выдаёт его за градусы или число щелчков. Нажимная кнопка электрически отделена от энкодера.
Для медленного ручного меню подходит опрос без блокирующих задержек. Быстрое вращение, печать в Serial и другая долгая работа могут приводить к пропускам; для требовательного проекта нужны подходящий декодер, аппаратная фильтрация или прерывания и проверка на реальном устройстве.
EC11 с кнопкой, Alps Alpine EC11E15244G1. Фото: Alps Alpine; https://tech.alpsalpine.com/e/products/detail/EC11E15244G1/. Лицензия на повторное использование не установлена. Удалён фон; объект равномерно масштабирован, детали и маркировка сохранены. Изображение производителя; не подтверждает ревизию отдельного экземпляра.
Схема соединений SLDV LAB показывает функциональные названия контактов; порядок строк не задаёт их физическое расположение. Подключение и первое включение выполняются по процедуре карточки.
Характеристики
- Импульсов на оборот EC11E15244G1
- 15
- Фиксаций на оборот EC11E15244G1
- 30
- Выход
- Две контактные фазы A/B
- Нажимной выключатель
- Да
- Абсолютное положение
- Нет
- Питание модуля
- Сухие контакты; у EC11E15244G1 номинал энкодера 10 мА при 5 В DC. Пример: подтяжки 2,2 кОм к 5 В Uno; с ESP32 подтяжки только к 3,3 В.
ПРАКТИКА
Подключение
| Контакт модуля | Контакт платы | Назначение |
|---|---|---|
| A | D2 Uno R3 | Канал A; внешняя подтяжка 2,2 кОм к 5V. |
| B | D3 Uno R3 | Канал B; отдельная подтяжка 2,2 кОм к 5V. |
| C / общий энкодера | GND Uno R3 | Общий в тройке выводов; сверить чертёж выбранного исполнения. |
| Первый контакт отдельной кнопки | D4 Uno R3 | Внешняя подтяжка 2,2 кОм к 5V. |
| Второй контакт отдельной кнопки | GND Uno R3 | Пара кнопки замыкается только при нажатии на вал; монтажные лапки не заменяют контакты. |
| Альтернатива ESP32 DevKitC / ESP32-WROOM-32 | A → GPIO25; B → GPIO26; кнопка → GPIO27 | Оба общих контакта к GND, все подтяжки к 3V3; заменить константы в скетче. |
Подходит для Arduino, ESP32. Выберите контакты по документации своей платы.
ВАШ ПРОЕКТ · ВАШ ДАТЧИК
Интегрируйте модуль с ChatGPT
Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.
Помоги интегрировать EC11 Rotary Encoder with Push Button (EC11 с кнопкой; референс Alps Alpine EC11E15244G1) в мой проект. Сначала уточни точную плату контроллера, среду, маркировку и фото компонента, задачу и условия эксплуатации. Не переноси параметры референсного изделия на внешне похожий безымянный экземпляр. Уточни точный суффикс EC11 и наличие готовой платы. Не приравнивай 30 фиксаций к 30 импульсам; для референса указаны 15 импульсов. Обеспечь минимальный ток контактов внешними подтяжками, фильтрацию и отсутствие длинных блокировок. Подготовь согласованные распиновку, питание и уровни сигналов, необходимые зависимости, полный минимальный пример и пошаговую проверку. Объясни обработку дребезга, обрыва или недостоверных показаний, если это применимо. Для ESP32 уточни модификацию и доступные GPIO; 5 В на GPIO ESP32 недопустимы. Не заявляй о стендовом тестировании без результатов измерений.
Библиотеки
Ссылки на библиотеки для этой модели ещё не добавлены.
Установите библиотеку для своей среды и откройте пример из её документации.
Что именно прописать
- Плата и API
Arduino Uno R3 / Arduino AVR Boards 1.8.6Используется базовое ядро, отдельная библиотека не нужна.
- Каналы
A=D2; B=D3; SW=D4; INPUTНа каждом входе внешний 2,2 кОм к 5V; общие контакты к GND.
- Единица результата
signed A/B transitionsedges — сумма валидных переходов, не щелчки и не градусы.
Uno R3 · относительные переходы и кнопка
cpp#include <Arduino.h>
constexpr uint8_t A_PIN = 2, B_PIN = 3, SW_PIN = 4;
// External 2.2k pull-ups to Uno 5V on all three inputs.
const int8_t stepTable[16] = {0,-1,1,0, 1,0,0,-1, -1,0,0,1, 0,1,-1,0};
uint8_t prevAB;
long edges = 0;
unsigned long invalid = 0, lastReport = 0, swChanged = 0;
int swRaw, swStable;
uint8_t readAB() { return (digitalRead(A_PIN) << 1) | digitalRead(B_PIN); }
void setup() {
Serial.begin(115200);
pinMode(A_PIN, INPUT); pinMode(B_PIN, INPUT); pinMode(SW_PIN, INPUT);
prevAB = readAB();
swRaw = swStable = digitalRead(SW_PIN);
swChanged = millis();
}
void loop() {
const unsigned long now = millis();
const uint8_t ab = readAB();
if ((ab ^ prevAB) == 3) ++invalid;
else edges += stepTable[(prevAB << 2) | ab];
prevAB = ab;
const int raw = digitalRead(SW_PIN);
if (raw != swRaw) { swRaw = raw; swChanged = now; }
if (raw != swStable && now - swChanged >= 20) swStable = raw;
if (now - lastReport >= 100) {
lastReport = now;
Serial.print("edges="); Serial.print(edges);
Serial.print(" invalid="); Serial.print(invalid);
Serial.print(" pressed="); Serial.println(swStable == LOW);
}
}
Полный учебный скетч, базовый API Arduino AVR Boards 1.8.6. Таблица учитывает соседние состояния и игнорирует скачок двух битов. Это не аттестация помехоустойчивости; стендового теста нет.
Проверка направления и потерь
text1. Проверьте отдельную пару кнопки и тройку A/C/B без питания. Не подменяйте её распиновкой KY-040.
2. Поворачивайте медленно: edges должен меняться в одном направлении, при обратном ходе — в другом.
3. Для принятого пользователем направления можно поменять A/B или знак результата; знак не определяет универсально clockwise.
4. Сравните повторные полные обороты, проверьте invalid и возврат назад. При пропусках уменьшите блокировки и проверьте фильтрацию.
5. Нажмите вал без вращения: pressed изменяется независимо от edges.
Это план первичной проверки, а не отчёт о выполненном испытании. Сначала работайте без нагрузки и без движущихся механизмов.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.


