KE0053 keyes 旋转编码器模块(焊盘孔) 红色 环保
来自KEYES
Keyes(讨论 | 贡献)2017年12月27日 (三) 16:25的版本 (创建页面,内容为“=='''概述'''== 本模块主要由旋转编码器组成,它可通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,这种转动计...”)
概述
本模块主要由旋转编码器组成,它可通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,这种转动计数是没有限制的,复位到初始状态,即从0开始计数。模块自带2个定位孔,方便你将模块固定在其他设备。
规格参数
- 工作电压:3.3-5V(DC)
- 接口:5PIN接口
- 输出信号:数字信号
- 重量:6.4g
连接图
测试代码
const int interruptA = 0; //中断0就是在数字口2 const int interruptB = 1;//中断1就是在数字口3 int CLK = 2; // 定义数字口2 int DAT = 3; // 定义数字口3 int BUTTON = 4; // 定义数字口4 int LED1 = 5; // 定义数字口5 int LED2 = 6; // 定义数字口6 int COUNT = 0;//设置数字变量COUNT为0 void setup() { attachInterrupt(interruptA, RoteStateChanged, FALLING); // 当数字口2由高电平变为低电平时,触发中断。 pinMode(CLK, INPUT);//设置CLK为输入 digitalWrite(2, HIGH); // 设置数字口2为高电平 pinMode(DAT, INPUT); //设置DAT为输入 digitalWrite(3, HIGH); //设置数字口3为高电平 pinMode(BUTTON, INPUT); //设置BUTTON为输入 digitalWrite(4, HIGH); //设置数字口4为高电平 pinMode(LED1, OUTPUT);//设置LED1为输出 pinMode(LED2, OUTPUT);//设置LED1为输出 Serial.begin(9600); //设置波特率 } void loop() { if (digitalRead(BUTTON)==LOW)//当数字口4为低电平时 { COUNT = 0; //设置数字变量COUNT为0 Serial.println("STOP COUNT = 0");//显示对于内容 digitalWrite(LED1, LOW);//LED1变暗 digitalWrite(LED2, LOW);//LED2变暗 delay (2000);//延迟2S } Serial.println(COUNT);//显示COUNT数据 } void RoteStateChanged() //当数字口2由高电平变为低电平时 { if (digitalRead(DAT)==HIGH) // 当数字口3为高电平时 { COUNT++;//数字变量COUNT加1 digitalWrite(LED1, HIGH);//LED1亮起 digitalWrite(LED2, LOW);//LED2变暗 delay(200);//延迟0.2S } else { COUNT--;//数字变量COUNT减1 digitalWrite(LED2, HIGH);//LED2亮起 digitalWrite(LED1, LOW);//LED1变暗 delay(200);//延迟0.2S } }
测试结果
按照上图接好线,烧录好代码,上电后,我们可以通过旋转旋转编码器,可以随意控制两个数字白色 LED 模块的亮灭。