标题: 单片机驱动EC11编码器源程序与电路图 [打印本页]

作者: 冷月枫    时间: 2020-2-15 15:31
标题: 单片机驱动EC11编码器源程序与电路图
EC11编码器
EC11编码器通常又被称为旋转编码器,一般主要是用于亮度,温度,频率,音量调节等参数控制。
三只脚中的C脚接地,AB脚接上拉电阻后,当左转或右转时,AB脚就有脉冲信号输出。S1S2脚为按压开关,按下时导通。
旋转编码器的引脚图和原理图为:
            

顺时针和逆时针旋转AB引脚输出波形图
和单片机通信的程序为:
EC11.h
  1. #ifndef EC11
  2. #define EC11
复制代码
EC11.c
  1. #include<All.h>

  2. uchar EC11_Value = 125; // 获取旋转的值

  3. /*********************************

  4. * @函数名:EC11_Display

  5. * @描  述:判断方向,计算旋转的值

  6. * @参  数:无

  7. * @返回值:无

  8. *********************************/

  9. void EC11_Display()

  10. {

  11.   static bit EC11_Flag=0,Left_Flag=0,Right_Flag=0;

  12. if((EC11_A)&&(EC11_B))  //两个都是1,表示开始第一个脉冲

  13. {

  14.   EC11_Flag =1 ;//标记为第一个信号收到,可以进行下一个信号

  15. }

  16. if(EC11_A!=EC11_B)//第二个信号

  17. {

  18.    Left_Flag = EC11_A ; //记录AB的信号状态

  19.   Right_Flag = EC11_B ;

  20. }

  21. if(EC11_Flag)  

  22. {

  23.    if((EC11_A==0)&&(EC11_B==0))  // 第三个信号,处理第二个信号的值

  24.    {

  25.       if(Left_Flag)  //左转

  26.   {

  27.     EC11_Value-- ;  //旋转的值加1

  28.   }

  29. else if(Right_Flag)

  30.   {

  31.     EC11_Value++; //旋转的值减1

  32.   }

  33.   EC11_Flag = 0; //把标志位清零,等待下一个周期

  34.    }

  35. }

  36. }
复制代码
全部资料51hei下载地址:
EC11编码器.zip (590.1 KB, 下载次数: 482)



作者: mobicity    时间: 2020-2-16 09:55
看上去很简单的器件,应用好了,确实不容易。
作者: 836329106    时间: 2020-6-26 20:18
加一减一的注释错啦
作者: wbx01    时间: 2020-7-29 09:47
程序使用可以的,采样时间间隔4ms以内

作者: bianpin    时间: 2020-10-31 10:42
正好学习使用EC11编码器,谢谢分享。
作者: 创造生活    时间: 2021-2-21 03:32
师傅您好,我问一下到哪里可以买到这个型号的编码器呀?按型号我买不到在哪里按型号能买到呀?另外再问一下除了A B C S1 S2引脚另外两个引脚实干什么用的呀只是用来焊在洞洞板上起固定的作用吗?没用过旋转编码器请师傅简要说一下怎么用怎么和单片机连接的好吗
作者: 恍如隔世40    时间: 2021-4-18 20:27
楼主用的什么编译器,我在keil4里好多错误
作者: 恍如隔世40    时间: 2021-4-18 20:28
楼主用的啥编译器
作者: 51hei团团    时间: 2021-4-19 05:00
恍如隔世40 发表于 2021-4-18 20:28
楼主用的啥编译器

作者用的是stc8.h头文件,先去百度一个再用Keil编译




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1