STM32学习笔记(17)旋转编码器初解 | 您所在的位置:网站首页 › 编码器结构图怎么画 › STM32学习笔记(17)旋转编码器初解 |
旋转编码器介绍
旋转编码器(也叫旋钮编码器)是用来测量转速并配合PWM技术可以实现快速调速的装置,光电式旋转编码器通过光电转换,可将输出轴的角位移、角速度等机械量转换成相应的电脉冲以数字量输出(REP)。 这次介绍的是更加适合做些小实验的微型旋转编码器,总共四个引脚(5个引脚的就多了个可确定圈数的z相)。 相关的外形图及原理图 外形图四个引脚分别为A,B,C,E。其中,A,B是编码信号发送相关引脚,C接地,E为按键相关引脚。
这里的CLK是指时钟线,DT是指信号信号线(data),DT和CLK都是指输出端,但本质没有什么区别(如果不是请指正),芯片通过比较两者输出信号的差别确定旋转编码器的旋转方向 原理旋转编码器原理 旋转编码器的内部原理图可视为: 在此先说明一下,我用的微型旋转编码器旋转起来是一卡一卡的,并不流畅。然后通过测试发现,每‘卡’一次,Rotary_A,B都是由0变1或是由1变0,但有先后。(上述原理仍适用) //旋转编码器 u8 XZBMQ_Data=0;//编码值 u8 Flag=9;//设置一个值,初始值不是0/1即可 void XZBMQ_Scan_Drive() { if (Rotary_A==Rotary_B)//Rotary_A,B即为旋转编码器的两个输出脚 { Flag=Rotary_A; } if(Flag==0) { if (Rotary_A!=Rotary_B) { if (Rotary_A==1) XZBMQ_Data++; else XZBMQ_Data--; Flag=9;//变为初始值,防止错误 } } if(Flag==1) { if (Rotary_A!=Rotary_B) { if (Rotary_B==1) XZBMQ_Data++; else XZBMQ_Data--; Flag=9; } } }写在最后:这个是我第一篇自己查资料,自己焊接实验的笔记,所以可能会有些错漏,如果有的话请各位指正,谢谢。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |