1.概述
这个产品主要采用20脉冲旋转编码器元件。,它可通过旋转计数正方向和反方向转动过程中输出脉冲的次数,这种转动计数是没有限制的,复位到初始状态,即从0开始计数。如果我们只计算信号的脉冲,则可以使用两个输出中的任何一个来确定旋转位置。但是,如果我们想要确定旋转方向,我们需要同时考虑两个信号。
为了方面接线,我们还配送1根5pin线,线的一端为白色防反插接口(和模块上防反插白色端子匹配),另一端为5pin杜邦线母头接口。
模块兼容各种单片机控制板,如arduino系列单片机。使用时,我们可以在单片机上堆叠一个传感器扩展板。模块和自带导线连接,然后连接在传感器扩展板上,简单方便。同时,模块自带2个直径为3mm的定位孔,方便你将模块固定在其他设备。
2.规格参数
导线长度:200mm
工作电压:DC 3.3-5V
接口:间距为2.54mm 5pin防反接口
定位孔大小:直径为3mm
控制信号:数字信号
尺寸:35*22*30mm
重量:6.8g
3.连接图
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”);//显示对于内容
analogWrite(LED1, 0);//LED1变暗
analogWrite(LED2, 0);//LED2变暗
delay (2000);//延迟2S
}
Serial.println(COUNT);//显示COUNT数据
}
void RoteStateChanged() //当数字口2由高电平变为低电平时
{
if (digitalRead(DAT)==HIGH) // 当数字口3为高电平时
{
COUNT++;//数字变量COUNT加1
analogWrite(LED1, 255);//LED1亮起
analogWrite(LED2, 0);//LED2变暗
delay(200);//延迟0.2S
}
else
{
COUNT–;//数字变量COUNT减1
analogWrite(LED2, 255);//LED2亮起
analogWrite(LED1, 0);//LED1变暗
delay(200);//延迟0.2S
}
}
5.测试结果
烧录好测试代码,按照接线图连接好线;上电后,我们可以通过旋转旋转编码器,可以随意双色LED模块上LED显示不同颜色,按下编码器按键双色LED模块上LED熄灭。