Overview
基础概况
旋转编码器不像电位器那样输出绝对电压,而是通过 A/B 两路脉冲判断旋转方向和步数。它能帮助学生理解数字输入、边沿检测、消抖和交互式菜单。
Engineering
工程要点
工程要点
- 难度
- 入门
- 数据状态
- 待核实
- 接口
- GPIO
- 常用主控
- ESP32ArduinoSTM32Raspberry Pi Pico
供电与采购
- 供电
- 3.3V - 5V
- 购买关键词
- 旋转编码器模块 EC11Rotary Encoder Module
典型搭配
旋钮菜单
旋转选择项目,按下确认。
旋转编码器模块 + OLED 显示屏
亮度调节器
把旋转步数映射为 PWM 亮度。
旋转编码器模块 + LED
Specifications
基础参数
| 参数 | 值 | 分组 | 备注 |
|---|---|---|---|
| 工作电压 | 3.3 - 5 V | 电气参数 | - |
| 输出 | A/B 相数字脉冲 + 按键 | 接口 | - |
| 常见结构 | 机械增量式编码器 | 结构 | - |
Pinout
引脚与接线
| 引脚 | 说明 | 连接建议 | 注意 |
|---|---|---|---|
| VCC/+ | 电源正极 | 3.3V / 5V | - |
| GND | 地线 | GND | - |
| CLK/A | A 相脉冲输出 | ESP32 GPIO 16 | - |
| DT/B | B 相脉冲输出 | ESP32 GPIO 17 | - |
| SW | 按压开关输出 | ESP32 GPIO 14 | - |
Examples
代码示例
读取旋转方向
python
from machine import Pin
import time
clk = Pin(16, Pin.IN, Pin.PULL_UP)
dt = Pin(17, Pin.IN, Pin.PULL_UP)
last = clk.value()
position = 0
while True:
now = clk.value()
if now != last:
position += 1 if dt.value() != now else -1
print("position:", position)
last = now
time.sleep_ms(2)Applications
应用场景
APP
电子音量旋钮
旋转调节音量或亮度,按下确认或静音。
旋转编码器模块ESP32OLED 显示屏
APP
参数调节面板
为计时器、温控器或菜单项目提供可连续旋转的输入方式。
旋转编码器模块TM1637 四位数码管显示模块
Warnings
注意事项
- 机械编码器会抖动,程序里需要消抖或使用成熟库处理脉冲。
Relations

