锯齿波编码器的单片机测量(仅原理)
软件算法流程分析
角度与频率测量:
-
Step1. 预设值值。
Max_volts_adc: 最大电压ADC值
Offset_volts_adc:offset电压ADC
Min_volts_adc:最小电压ADC值 -
Step2. ADC 同步采样CHA,CHB 的值。
-
Step3. 对CHA,CHB ADC值进行归一化,方便后期处理。
CHA,CHB的值在-32768-32768之间。对应-180-180°-Step4. 由于CHA超前CHB180°,所以CHA=CHB+180°。由于第三部分的归一化,所以CHB=CHB+32768,而且CHB的类型定义int16,相加之后CHA=CHB.
-
Step5 : position=(valueA+value B)/2. 但是由于在正负180°附近ADC 变化比较大,影响计算。所以设定一个死区角度10°。当ADC落在±180时权重0,±10权重1.
修正后的计算公式:
position=(1-weights)*valueA+weights *valueB。
验证下这个公式:
假设CHA的ADC落在0°,那么CHB落在180°。此时CHA的权重应该是1,CHB的权重就是0,消除了CHB在180引入的误差。
-Step6:计算频率。
根据上一步骤的positon值,可以计算当前的象限。
象限1:0~90°
象限2:90~170°
象限3: -170~-90°
象限4: -90~0°
从象限2到象限3,是一个周期,正转。
从象限3到象限2,是一个周期,反转。