
1、介绍
编码器是一种将旋转位移转换为一连串数字脉冲信号的旋转式传感器,通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,旋转计数不像电位计,这种转动计数是没有限制的。配合旋转编码器上的按键,可以实现某些特定功能。读数系统通常采用差分方式,即将两个波形一样但相位差为 180°的不同信号进行比较,以便提高输出信号的质量和稳定性。编码器广泛用于汽车音量、空调调节等应用场景。
2、原理图
3、模块参数
引脚名称 | 描述 |
|---|---|
G | GND(电源输入负极) |
V | VCC(电源输入正极) |
SW | 开关引脚 |
DT | 数据引脚 |
CLK | 时钟引脚 |
供电电压:3.3V / 5V
连接方式:2.54mm排针
安装方式:双螺丝固定
4、电路板尺寸

5、Arduino IDE示例程序
注意:程序上传时如果提示库文件报错,请先导入库文件!
Arduino IDE 库文件下载及导入教程:点击查看
示例程序(UNO开发板):
volatile int lastCLK;
volatile int count;
void attachInterrupt_fun_CHANGE_2() {
procedure();
}
void procedure() {
int clkstate = digitalRead(2);
int dtstate = digitalRead(3);
if (lastCLK != clkstate) {
lastCLK = clkstate;
}
count = count + ((clkstate != dtstate)?1:(-1));
Serial.println(count);
}
void setup(){
lastCLK = 0;
count = 0;
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(4, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2),attachInterrupt_fun_CHANGE_2,CHANGE);
digitalWrite(4,HIGH);
pinMode(3, INPUT);
}
void loop(){
if (digitalRead(4) == 0) {
count = 0;
Serial.println(count);
}
}6、ESP32 Python 示例(适用于Mixly IDE /米思齐)
开发板选择 Python ESP32 【ESP32 Generic(4MB)】切换为代码模式上传
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:点击查看
示例程序(ESP32-Python):
待更新...7、米思齐 Mixly 示例程序(图形化语言)
示例程序(UNO开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE Arduino库文件下载及导入教程:点击查看

示例程序(ESP32开发板):点击下载
注意:程序上传时如果提示库文件报错,请先导入库文件!
米思齐(Mixly)IDE ESP32库文件下载及导入教程:点击查看
图片待更新...
8、测试环境搭建
Arduino UNO 测试环境搭建
准备配件:
HELLO STEM UNO R3 PRO 开发板 *1
USB type-c 数据线 *1
旋转编码器模块(HS-S32A)*1
1P母对母杜邦线 *5条 或 3P母对母杜邦线 和 2P母对母杜邦线 各*1条
电路接线图:

ESP32 测试环境搭建
准备配件:待更新...
电路接线图:待更新...
9、视频教程
视频教程:点击查看
10、测试结果
Arduino UNO 测试结果:
通过实验效果分析,旋转编码器是一个无限制旋转的,顺时针旋转计数自加,逆时针旋转计数自减,按下旋转编码器按钮计数归零。如上图:打开Mxily串口监视器,转动旋转编码器旋钮, 串口输出数值。
