KE0053 keyes 旋转编码器模块(焊盘孔) 红色 环保

53 (1)

1. 概述

本模块主要由旋转编码器组成,它可通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,这种转动计数是没有限制的,复位到初始状态,即从0开始计数。模块自带2个定位孔,方便你将模块固定在其他设备。

2. 规格参数

工作电压:3.3-5V(DC)

接口:5PIN接口

输出信号:数字信号

重量:6.4g

3. 连接图

KE0053

4. 测试代码

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

}

}

5. 测试结果

按照上图接好线,烧录好代码,上电后,我们可以通过旋转旋转编码器,可以随意控制两个数字白色 LED 模块的亮灭。