有段时间没来论坛,没有发帖子了。
最近一直忙着写一个四相步进电机控制的代码。
参考来自altera的官方应用笔记。
先来简单了解下四相步进电机的原理。
大体上是一个外磁场和有一定齿数的转子,外磁场分别引出A B C D4个相位,在每一个状态内,保持
ABCD中一个或者2个通电,产生磁力矩,带动转子,依次对4个相位保持连续的状态,可以让转子产生
一步一步的位移。从而使电机产生转动。
从每个状态值可以分了单四拍,双四拍,八拍
单四拍 A -B-C-D
双四拍 AB-BC-CD-DA
八拍 A-AB-B-BC-C-CD-D-DA
单四拍 和双四拍都是全步长,八拍是半步长。
步长具体多少度要看具体电机型号,我这次实验中的小电机是7.5度 6线4相
2个电源线接高电平,ABCD 4相分别接低电平可完成一个循环。
设计思想
采用半步8拍
电机这边对于4相来说是低电平有效,驱动芯片用uln2003apg,非门输出。
所以在控制这边具体电平是高电平有效。
phase[3:0]作为4相输出, 初始状态是1000;
每个时钟周期后 phase 到下一个状态1100;
在经过一个时钟周期 phase 0100,按照8步的状态依次类推,完成循环。
简单说来每个时钟周期走半步。
时钟周期决定了电机速度,尤其磁场和磁力矩作用,时钟速度不能太快,也不能太慢。
了解到这么多后 才对altera的官方笔记大为赞赏!
不高的频率,简单的逻辑控制,用MAXII的内部振荡器来产生时钟,在经过分频,用case语句来实现步
进对于低功耗和节省器件资源来说再合适不过了。
稍后放上相关仿真图~
文章评论(0条评论)
登录后参与讨论