旋转编码器是一个精确旋转测定和点击合二为一的器件,用它来控制舵机比用电位器要精确得多,同时使用它也实现菜单的选择和修改设置项的值也比使用多个按键的方式方便很多。

在网上面很容易就找到这些便宜的器件,直接在TB上搜 旋转编码器 即可。
我买的旋转编码器模块有5个引脚,分别是GND, VCC(+), SW, DT, CLK。其中VCC和GND用来接电源和地,按缩写SW应该是Switch(开关)、CLK是Clock(时钟)、DT是Data(数据)。这个编码器的详细介绍可以看网上的资料,网上面还有不少的例子介绍这个编码器的使用,但在我看来这些例子都是用来讲述原理的,我还是觉得把这些代码封装成一个类来使用更为简单清晰,以下是我封装好再写的两个例子。
常规的使用:
#include "flexmisc.h"
//---------------------------------------------------------------------------------
/*
旋转编码器例子1,常规轮询使用
TFlexRotaryEncoder re(CLK, DT, SW);分别对应相应旋转编码器所连接的Arduino针脚;
如不方便在声明时确定对应的参数,也可以在实例化后使用bind来做后绑定。
编写:flexitime
2019-5-12
*/
//---------------------------------------------------------------------------------
TFlexRotaryEncoder re(2, 3, 4);
void reRotateEvent(int direct){
Serial.print("Position: ");
Serial.println(re.getCount());
if (direct == 1)

本文介绍了如何使用旋转编码器模块增强Arduino项目的交互性,包括精确控制和菜单操作。通过两个示例,一种是常规轮询使用,另一种是利用硬件中断提高响应速度,展示了旋转编码器的灵活性和实用性。


被折叠的 条评论
为什么被折叠?



