|
作者:大脑怪物 来源:磁动力论坛 http://www.cdle.net/bbs/dispbbs.asp?boardid=4&Id=222&page=9
注意:这里用的是45BF003型三相步进电动机。 MCU输出口接7406,由7406控制达林顿复合管。MLa,MLb,MLc是三对定子绕组。旁边的二极管作用是续流。 我个人感觉步进电动机的驱动电路相对是比较简单的,基本上保证驱动功率足够就可以了。
图1 电路图 (原文件名:showimg.jpg)
步进电动机是在一定顺序的电脉冲控制下运转的。三相步进电动机的通电方式有:
(1)三相三拍:A-->B-->C-->A
(2)三相双三拍:AB-->BC-->CA-->AB
(3)三相六拍:A-->AB-->B-->BC-->C-->CA-->A 如果要反转,把以上顺序倒过来就行了。
下面以三相六拍为例子写控制程序。
P1.0控制MLa,P1.1控制MLb,P1.2控制MLc。电动机要走的步数放在R4中,转向标志在D5H,当(D5H)=0时正转,等于1时反转。
三相六拍控制模型如下节拍(正/反) 通电顺序 控制模型1 / 6 A 01H2 / 5 AB 03H3 / 4 B 02H4 / 3 BC 06H5 / 2 C 04H6 / 1 CA 05H 程序中正转控制模型数据地址 模型数据20H 01H21H 03H22H 02H23H 06H24H 04H25H 05H26H 00H 反转控制模型数据地址 模型数据27H 01H28H 05H29H 04H2AH 06H2BH 02H2CH 03H2DH 00H
参考程序如下
PUSH A ;保护现场
MOV R4,#N ;设置步进数
CLR C ;清标志C
MOV C,D5H ;读正反转标志
JC ROTE MOV R0,#20H ;设置正转模型地址
AJMP LOOP ROTE: MOV R0,#27H ;设置反转模型地址
LOOP: MOV A,@R0 MOV P1,A ACALL DLY ;延时
INC R0 MOV A,#00 ORL A,@R0 JZ TPL ;判断是否结束(读到00H)
LOOP1: DJNZ R4,LOOP ;若步数不为0则继续走
POP A RET TPL: MOV A,R0 ;恢复模型首地址
CLR C ;
SUBB A,#06H ;
MOV R0,A ;
AJMP LOOP1 DLY: MOV R2,#M ;延长时间M
DLY1: MOV R3,#M1 ;延长时间M1
DLY2: DJNZ R3,DLY2 DJNZ R2,DLY1 RET
(以上内容摘自教材) |
|