楼主: eagler8

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

[复制链接]
  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

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

    05.jpg

  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

     楼主| 发表于 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
  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

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

    06 (1).jpg

  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

     楼主| 发表于 2019-6-28 11:01 | 显示全部楼层

    kittenblock中小学创客名师推荐的图形化编程软件

    /*
    【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);
      }
    }

  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

     楼主| 发表于 2019-6-28 11:03 | 显示全部楼层
    09.jpg
  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

     楼主| 发表于 2019-6-28 11:05 | 显示全部楼层
    10.jpg
  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

     楼主| 发表于 2019-6-28 11:09 | 显示全部楼层
    按轴清零,顺时针转动+1,逆时针旋转-1

    12.jpg
  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

     楼主| 发表于 2019-6-28 11:16 | 显示全部楼层
    11.jpg
  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

     楼主| 发表于 2019-6-28 11:33 | 显示全部楼层
    14- (1).jpg
  • TA的每日心情
    开心
    2019-11-21 09:12
  • 签到天数: 187 天

    [LV.7]常住居民III

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

    本版积分规则

    热门推荐

    为拍月亮而生的便携望远镜系统。
    为拍月亮而生的便携望远镜
    参赛项目: 便携望远镜系统 参赛组员: 1人 布丁:嵌入式软件、上位机软件、电路、结
    基于机器视觉的智能分拣机械臂
    基于机器视觉的智能分拣机
    本作品是一个基于机器视觉的智能机械臂操作平台,其采用atmega32单片机作为主控制系统
    小白求助
    小白求助
    也许我这个问题也许看起来有些幼稚。。。 还在入门的路上打滚,在看《爱上Arduino》这
    SpiderRobot 蜘蛛
    SpiderRobot 蜘蛛
    关于SpiderRobot 项目实行方案 之前有人推荐我做这个项目,于是乎就有了这个 h
    没有合适的模块,想到自己焊接芯片
    没有合适的模块,想到自己
    有些模块没有加工过的模块销售,想着自己要是能把芯片焊在一起也是一样的。只是这个尺
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表