Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】108种传感器模块系列实验(40)---旋转编码器模块

[复制链接]
 楼主| 发表于 2019-6-28 09:44 | 显示全部楼层
旋转编码器模块
工作电压:5V
一圈脉冲数:20
旋转编码器可通过旋转可以计数正方向和反方向转动过程中输出脉冲的次数,旋转计数不像电位计,这种转动计数是没有限制的。配合旋转编码器上的按键,可以复位到初始状态,即从0开始计数。

05.jpg

 楼主| 发表于 2019-6-28 10:24 | 显示全部楼层
我手头的旋转编码器模块有5个引脚,分别是VCC, GND, SW, CLK, DT。其中VCC和GND用来接电源和地,按缩写SW应该是Switch(开关)、CLK是Clock(时钟)、DT是Data(数据)。两个引脚那一端为普通的按键,也就是圆柄按下去的那个按键,当做普通按键使用即可。右边三个引脚中间的为GND,两边为两路脉冲信号CLK和DT。旋转编码器的操作是旋转和按压转轴,在按下转轴的时候SW引脚的电平会变化,旋转的时候每转动一步CLK和DT的电平是有规律的变化。

08 (1).jpg
07.jpg
 楼主| 发表于 2019-6-28 10:44 | 显示全部楼层
引脚接线
Arduino Uno              旋转传感器模块
D2                              CLK(Clock 时钟)
D3                              DT (Data 数据)
D4                              SW   (按钮开关)   
5V                              +VCC   
GND                           GND  

06 (1).jpg

 楼主| 发表于 2019-6-28 11:01 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】66种传感器模块系列实验(40)
实验四十:360度旋转增量编码器模块(KY-040)
*/

int CLK = 2;
int DT = 3;
int SW = 4;
const int interrupt0 = 0;
int count = 0;
int lastCLK = 0;

void setup()
{
  pinMode(SW, INPUT);
  digitalWrite(SW, HIGH);
  pinMode(CLK, INPUT);
  pinMode(DT, INPUT);
  attachInterrupt(interrupt0, ClockChanged, CHANGE);
  Serial.begin(9600);
}

void loop()
{
  if (!digitalRead(SW) && count != 0)
  {
    count = 0;
    Serial.print("count:");
    Serial.println(count);
  }
}

void ClockChanged()
{
  int clkValue = digitalRead(CLK);
  int dtValue = digitalRead(DT);
  if (lastCLK != clkValue)
  {
    lastCLK = clkValue;
    count += (clkValue != dtValue ? 1 : -1);
    Serial.print("count:");
    Serial.println(count);
  }
}[/mw_shl_code]
 楼主| 发表于 2019-6-28 11:03 | 显示全部楼层
09.jpg
 楼主| 发表于 2019-6-28 11:05 | 显示全部楼层
10.jpg
 楼主| 发表于 2019-6-28 11:09 | 显示全部楼层
按轴清零,顺时针转动+1,逆时针旋转-1

12.jpg
 楼主| 发表于 2019-6-28 11:16 | 显示全部楼层
11.jpg
 楼主| 发表于 2019-6-28 11:33 | 显示全部楼层
14- (1).jpg
 楼主| 发表于 2019-6-28 11:34 | 显示全部楼层
13.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-11-27 23:14 , Processed in 0.075835 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表