网友自制正交
编码器码盘,可测TT电机的转速、方向。
有一位网友想要使用TT电机做小车,想装一个码盘用来测速。但是,直接把码盘装在输出轴又很难做到足够的分辨率,于是就想到了一个比较冷门的方法,自制了一个码盘,并且以此为基础,给一个TT电机加装一组正交编码器。
下面,作为
Hengstler编码器在国内的代理,也作为一个编码器爱好者,让我们和大家一起分享网友的神奇制作吧!
1、先说一说正交编码器
从名字来说,正交编码器就是编码器的一种,百科上定义是:正交编码器一般指增量式编码器。增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小,balabala……
其实,就是把圆周的旋转运动转换成2路相位差90度的电平跳变信号,如下图所示:
上图中有Z相,相当于是零点,可以消除累计误差,部分应用中可以不使用。
这种编码器的优点,就是可以根据AB相位关系推测出转动方向,而且当圆周栅格数目为n时,跳变信号可以达到4n个,变相提高了分辨率。
说了这么多,接下来我们就用最常见、最便宜的TT减速电机为基础,使用2对射式光电开关(ITR9608),制作一个带正交编码器的电机。
2、准备材料,设计ITR9608原理图并焊接
首先是TT电机,可以说这是最普遍、最便宜的一款了,这还是我十年前入门玩智能小车时候买的存货呢~
上图中箭头所指的位置是本方案的关键,就是要利用这一小点凸起搞点事情。
首先用助焊剂轻轻擦拭一下这段短短的轴,然后准备一个小铜片(没有铜片,用铝片也行;再没有,切一点万用板也可以),大小控制在10mm边长,中间钻一个2mm多一点的孔(尽量居中钻孔),就像下面这样:
接下来,使用助焊剂轻轻擦拭铜片,然后将铜片通过小孔安装在电机轴上,如下图所示:
接下来是关键一步:焊接铜片!使用60W电烙铁,快速焊接铜片的小孔,使其牢固地连接在电机轴上。对,这里其实是用来粘接码盘的一个基点,哈哈,所以我说这个凸出的一点点轴是关键。
ITR9608是一种常见的对射式光电开关,加两个电阻就可以使用了,设计了简单的原理图:
按图焊接,需要焊接两个。
3、设计码盘组件安装座,并进行切割加工
这里有个地方需要提示一下:在上图中,两个光电开关的安装角度一定要注意,一个开关对准栅格的时候,另一个开关的位置要刚好被遮挡,这样就能保证信号“正交”。上图中使用的是24线码盘,两个传感器夹角67.5度。
4、安装码盘组件
由于上面24线码盘测试中发现会“丢失”信号,分析可能是由于栅格过于密集,后来切割了一个4线的,使用的是普通包装纸(更轻,避免对电机带负载能力产生影响)。
5、基于stm32f103c8t6创建工程,编写驱动程序
这里主要的就是通过cubeMX对定时器模式进行配置,简单的两步就可以了,使用TIM2,在combined Channels选择“Encoder Mode”,如下图所示:
接下来,配置一下编码模式,选择“……TI1 and TI2”,这样就会上升下降沿都计数,实际脉冲数数值上是栅格的4倍。
其它的再配置一下串口,我准备用串口打印日志,查看脉冲数。
根据配置的引脚,连接编码器和控制板(分别接PA0和PA1)。
6、测试效果
手动拨动码盘一周,可以看到串口读出16个脉冲,反转的时候读出的数值是-16,这里没有写其它复杂的算法,只是周期性读取,然后清零。所以不动的时候,读出来的是0。
7、总结
从硬件上来说,有一点点复杂,需要特别注意码盘线数不要太多。
从软件上来说,cubeMX配置还是非常简单的,也就是读取很容易。实际使用的时候,需要根据需求对数据进行后处理,以解析出里程、方向等更多信息。
原文标题:从零开始,教你制作TT电机正交编码器
文章出处:【微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。
了解更多关于编码器知识,请关注
亨士乐编码器国内正规授权代理西安德伍拓自动化传动系统有限公司网站。公司专业技术团队为您免费提供Hengstler编码器的选型、安装、调试、保养等技术指导服务,尽量避免企业因为编码器技术人员的短缺带来的损失,采取“线上+线下”服务的服务形式,帮助企业解决技术难题。