本文的编码器用于调节音量或者菜单页面选项的选择,需要识别正、反转及旋转次数,再加按键功能。
本文将讲解EC11一些简单功能的波形图。理解了波形图,EC11的时序图就很好理解了,写代码也就很简单了。
读者另外可以参考这篇文章: 文章
一、原理图
S_A、S_B为编码器的引脚,用于检测编码器的正反转;
KEY0为按键的引脚,用于检测按键是否被按下。
下面讲解编码器正转、反转、按键按下的波形图。理解了波形图,写代码就很简单了。
二、波形图
1.正转一次
从上图可以看出,在蓝色波形(S_A)的下降沿,黄色波形(S_B)是高电平;
或者:在蓝色波形(S_A)的上升沿,黄色波形(S_B)是低电平;
2.反转一次
从上图可以看出,在蓝色波形(S_A)的下降沿,黄色波形(S_B)是低电平;
或者:在蓝色波形(S_A)的上升沿,黄色波形(S_B)是高电平;
看懂了波形,EC11的时序图就很好理解了:
3.更多波形
1、正转两次
2、正转一次再反转一次
3、按键按下的波形图
三、代码思路
理解了波形图,写代码就很简单了。具体代码就不展示了。
1、正反转的检测:
设置一个外部中断,检测到中断后,根据S_B的电平就能判断出是正转还是反转;
2、按键的检测
设置一个外部中断即可;
总结
本文讲解了编码器一些简单功能的波形图。