码盘:一种测量角位移的数字编码器,分为绝对式编码器和增量式编码器。电机中主要是绝对式
码盘一次读取变化幅度在0`4096之间,也就是一次读取的角度范围在0~180°,也就是一次只能读取半圈。
对于绝对式,我们需要通过起始和终止位置的码盘值来计算电机转动的编码器值
如果不过0,计算编码值就为简单的终止位置-起始位置
如果正转过0时,也就是(终止位置-起始位置)/2<8192/2时(其实也是<0时),则计算编码值需要补8192
如果反转过0时,也就是 (终止位置-起始位置)/2>8192/2,(其实也是>0时)也就是计算编码值需要去8102。
电机相对于上电初始位置转动的反馈值为每次电机转动的编码器值之和。
三种典型情况:
1.起始位置:1000,终止位置:4000;4000-1000
2.起始位置:7000,终止位置:1000;1000-7000+8192
3.起始位置:1000,终止位置:6000;6000-1000-8192
数据传输问题
在主控和电调间进行通讯时,主板上编写的通讯协议要配合电调上的通讯协议,包括收发数据格式以及波特率设置等。
在数据格式中涉及高8位、低8位时,需要位操作。同时需要注意左移右移的操作问题,
比如需要高8位数据,recv[1]=data[0]>>8,
需要低八位数据recv[2]=data[0],
需要16位的完整数据,其由两部分分开的八位数据组成时,rec[0]=(recv[1]<<8) | recb[2]