单片机对仪表步进电机的细分控制
配合硬件的设计,软件上编写了一个由64个数据组成的数组,分别对应了0~90o正弦波幅度变化的8位数字量化值(以阶梯波的方式模拟了64点正弦波抽样),每个值用来控制输出波形占空比,实际上参与了电流矢量夹角转动90o过程中其电流大小的计算。众所周知,正弦、余弦波相位相差90o,在已知0~90o正弦波幅度变化表后,同样可以得出90o~180o、180o~270o、270o~360o(0o)的正弦波、余弦波幅度变化表,所以通过0~90o正弦波幅度变化的8位数字量化表的演化,就可以在两相八拍(二细分)的基础上把电流矢量夹角分成四个象限,配合极性的控制,在每个象限中把A或/A的正弦波和B或/B的余弦波作8种组合,在每种组合中完成电流大小的变化,最终作到两相64拍(16细分)的控制。而且,最巧妙的一点就在于:通过选择64个数据对应每90o范围的正弦波的64个点,就可以用一个字节的大小来作为区分4个象限的标志,便于对正、余弦的角度进行演化,即0~63对应0~90o,64~127对应90o~180o,128~191对应180o~270o,192~255对应270o~360o。
本文引用地址:https://www.eepw.com.cn/article/98852.htm两相64拍A、B、/A、/B的驱动状态表如表3(以B为起始状态)。
由于仪表指针从当前角指向目标角时,变化量会有不同。为保证指针响应灵敏、无抖动,必须在正、反转时考虑加、减速控制。程序中,可以根据变化量的大小和正负设定几个控制区间,分别写入不同的延时参数,根据此延时参数来控制电流大小、方向(改变PWM_A和PWM_B、DIR_A和DIR_B)变化时间,就达到了加、减速的控制的目的。
结语
通过双PWM方式控制两相步进电机,既达到了高精度细分的目的,又在硬件成本上得到了优化。在现有电路的后级增加功率驱动电路并作程序的少量修改,就可以做成高精度、多细分步进电机驱动器。
参考文献:
[1] Atmel Semiconductor. ATmega48 User`guide
[2] 赵亮, 侯国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2004
[3] 王辉堂, 颜自勇, 陈文芗. 基于带PWM 模块单片机的步进电机细分驱动控制技术[J], 理论与方法, 2007,26(3)
[4] 陈子明.汽车车速里程表及其速比的计算方法[J].汽车电器, 2005(3):9-11
[5] 刘清波,蔡树珍,孙业歧等. 基于单片机的汽车里程表设计[J]. 河北大学学报(自然科学版), 2002(9):276-278
评论