一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 4241|回复: 22
收起左侧

[STM8/STM32] 旋转编码器分享

[复制链接]
发表于 2018-2-7 16:10 | 显示全部楼层 |阅读模式
之前公司的一个软件工程师一直抱怨旋转编码器多多难用,不好区分正反转,闲暇时间自己研究了一下,找到规律,发现没啥难的,仅此分享下,编码器型号EC11
通过用逻辑分析仪查看波形如下图,可以分析出,脉冲pinA B, 顺时针旋转的时候,A的每一个下降沿时候,对应的B都是高电平;相反 对应B是低电平的时候就是逆时针旋转,这样不就很容易区分了么
将pina 配置为下降沿中断,很容易可以得到理想的旋转效果,相关代码如下
void  EXTI9_5_IRQHandler(void)        //中断函数
{
         if(EXTI_GetITStatus(EXTI_Line6)!= RESET)
      {
               EXTI_ClearITPendingBit(EXTI_Line6);  
                    key_flag=key_codeA;          
          }               
                Key_scan();

}



void Key_scan(void)
{                                               

        switch(key_flag)
   {
            case key_R:           if(Key_Return==0)        {    flag=~flag;           }      break;         
         case key_ST:           if(Key_Start==0)                {  PID_Temp.Set_value++;         }                  break;          
         case key_SE:           if(Key_Set==0)            {         PID_Temp.Set_value--;         }      break;       
         case key_codeA:if(Code_B==0)
                                                                                        {
                                                                                                PID_Temp.Set_value--;         
                                                                                        }
                                else
                                                                                                {
                                                                                                        PID_Temp.Set_value++;
                                                                                                }break;       

                default: break;       
         }      
       


       

无标题.png
发表于 2018-2-7 17:37 | 显示全部楼层
谢谢分享,有你更精彩。
发表于 2018-2-7 18:37 | 显示全部楼层
明白了,以前觉得很神秘。
发表于 2018-2-7 19:42 | 显示全部楼层
谢谢分享!
发表于 2018-2-7 22:19 | 显示全部楼层
边沿一点毛刺都没有?
发表于 2018-2-7 23:17 | 显示全部楼层
本帖最后由 snoopy8008 于 2018-2-7 23:33 编辑

http://pdf1.alldatasheet.com/dat ... 8702/ALPS/EC11.html

太多搞设计的,认为器件很简单,而不看datasheet。结果。。。事倍功半。
发表于 2018-2-7 23:49 | 显示全部楼层
我也弄过,光电编码器很好弄,信号没毛刺;机械的效果就不太好,尤其是用了一段时间后。后来在网上看了一段用状态机原理编的一段程序,效果比原来好多了。
发表于 2018-2-8 08:47 | 显示全部楼层
more 发表于 2018-2-7 23:49
我也弄过,光电编码器很好弄,信号没毛刺;机械的效果就不太好,尤其是用了一段时间后。后来在网上看了一段 ...

你好,什么是状态机原理?
发表于 2018-2-8 08:54 | 显示全部楼层
  我反正是网上找的程序  很好用随便2个IO 做键盘扫描   没中断   就可以很好用了   随便怎么转都不会错
 楼主| 发表于 2018-2-8 08:57 | 显示全部楼层
ayumi7 发表于 2018-2-8 08:54
我反正是网上找的程序  很好用随便2个IO 做键盘扫描   没中断   就可以很好用了   随便怎么转都 ...

原理搞清楚用不用中断都可以,主要是我们那个软件工程师有点太逊了,眼高手低

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-27 07:34 , Processed in 0.061815 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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