HS-S32A 旋转编码器
1、介绍 点这里回到目录
编码器是一种将旋转位移转换为一连串数字脉冲信号的旋转式传感器,通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,旋转计数不像电位计,这种转动计数是没有限制的。配合旋转编码器上的按键,可以实现某些特定功能。读数系统通常采用差分方式,即将两个波形一样但相位差为 180°的不同信号进行比较,以便提高输出信号的质量和稳定性。编码器广泛用于汽车音量、空调调节等应用场景。
2、原理图 点这里回到目录
3、模块参数 点这里回到目录
引脚名称 | 描述 |
---|---|
G | GND(电源输入负极) |
V | VCC(电源输入正极) |
SW | 开关引脚 |
DT | 数据引脚 |
CLK | 时钟引脚 |
-
供电电压:3.3V / 5V
-
连接方式:2.54mm排针
-
安装方式:双螺丝固定
4、电路板尺寸 点这里回到目录
5、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); } }
示例程序(ESP32开发板—基于Python语言,不能用Arduino IDE上传代码):
6、米思齐 Mixly 示例程序(图形化语言) 点这里回到目录
示例程序(UNO开发板):点击下载
示例程序(ESP32开发板):点击下载
7、测试环境搭建 点这里回到目录
准备配件:
- HELLO STEM UNO R3 PRO 开发板 *1
- USB type-c 数据线 *1
- 旋转编码器模块(HS-S32A)*1
- 1P母对母杜邦线 *5条 或 3P母对母杜邦线 和 2P母对母杜邦线 各*1条
电路接线图:
8、视频教程 点这里回到目录
视频教程:点击查看
9、测试结论 点这里回到目录
通过实验效果分析,旋转编码器是一个无限制旋转的,顺时针旋转计数自加,逆时针旋转计数自减,按下旋转编码器按钮计数归零。如上图:打开Mxily串口监视器,转动旋转编码器旋钮, 串口输出数值。