增量式编码器原理
-
增量式编码器是将设备运动时的位移信息变成连续的脉冲信号,脉冲个数表示位移量的大小。其特点如下:只有当设备运动时才会输出信号。
一般会输出通道A和通道B 两组信号,并且有90° 的相位差(1/4个周期),同时采集这两组信号就可以计算设备的运动速度和方向。
通道A和通道B的信号的周期相同,且相位相差1/4个周期,结合两相的信号值:当B相和A相先是都读到高电平(1 1),再B读到高电平,A读到低电平(1 0),则为顺时针转。
当B相和A相先是都读到低电平(0 0),再B读到高电平,A读到低电平(1 0),则为逆时针转。
除通道A、通道B 以外,还会设置一个额外的通道Z 信号,表示编码器特定的参考位置。传感器转一圈后Z 轴信号才会输出一个脉冲,在Z轴输出时,可以通过将AB通道的计数清零,实现对码盘绝对位置的计算。
增量式编码器只输出设备的位置变化和运动方向,不会输出设备的绝对位置。
对于增量式编码器,其分辨率表示为编码器转轴旋转一圈所产生的脉冲数,即脉冲数/转(Pulse Per Revolution 或PPR)。由第一张图可知,我们的电机PPR为11,即旋转一圈产生11个脉冲。
如何采集编码器的脉冲数据呢?恰好我们的STM32单片机定时器模式中有一个定时器的编码器模式,我们通常用它来测量脉冲变化值。通过访问计数器cnt的值(编码器模式中使用上下计数)来检测接收到的脉冲数。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏