单片机控制步进电机的原理Word文档格式.docx
- 文档编号:15392729
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:11
- 大小:129.29KB
单片机控制步进电机的原理Word文档格式.docx
《单片机控制步进电机的原理Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机控制步进电机的原理Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
常见的步进电机分三种:
永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度
或15度;
反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。
在欧美等发达国家80年代已被淘汰;
混合式步进是指混合了永磁式和反应式的优点。
它又分为两相和五相:
两相步进角一般为1.8度而五相步进角一般为
0.72度。
这种步进电机的应用最为广泛。
二、永磁式步进电机的控制
下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。
图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。
要使用步进电机转动,只要轮流给各引出端通电即可。
将COM端标识为C,只要AC、
C、BC、
C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、
、B、
轮流接地。
下表列出了该电机的一些典型参数:
表1 35BY48S03型步机电机参数
型号步距角相数电压电流电阻最大静转距定位转距转动惯量
35BY48S037.54120.2647180652.5
有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,因此用一块开路输出达林顿驱动器(ULN2003)来作为驱动,通过P1.4~P1.7来控制各线圈的接通与切断,电路如图3所示。
开机时,P1.4~P1.7均为高电平,依次将P1.4~P1.7切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。
如果要改变电机的转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接通的顺序。
图1 35BY48S03型步进电机外形图
图2 35BY48S03型步进电机的接线图
图3 单片机控制35BY48S03型步进电机的电路原理图
三、步进电机的驱动实例
要求:
控制电路如图3所示,开机后,电机不转,按下启动键,电机旋转,速度为25转/分,按下加1键,速度增加,按下减1键,速度降低,最高速度为100转/分,最低转带为25转/分,按下停止键,电机停转。
速度值要求在数码管上显示出来。
1.要求分析
按上面的分析,改变转速,只要改变P1.0~P1.3轮流变低电平的时间即可达到要求,这个时间不应采用延时来实现,因为会影响到其他功能的实现。
这里以定时的方式来实现。
下面首先计算一下定时时间。
按要求,最低转速为25转/分,而上述步进电机的步距角为7.5,即每48个脉冲为1周,即在最低转速时,要求为1200脉冲/分,相当于50ms/脉冲。
而在最高转速时,要求为100转/分,即48000脉冲/分,相当于12.5ms/脉冲。
可以列出下表
表1 步进电机转速与定时器定时常数关系
速度单步时间(us)TH1TL1实际定时(us)
255000076049996.8
26480778223648074.18
2746296898646292.61
2844643957344640.155
……………
10012500211012499.2
表中不仅计算出了TH1和TL1,而且还计算出了在这个定时常数下,真实的定时时间,可以根据这个计算值来估算真实速度与理论速度的误差值。
表中TH1和TL1是根据定时时间算出来的定时初值,这里用到的晶振是11.0592M。
有了上述表格,程序就不难实现了,使用定时/计数器T1为定时器,定时时间到后切换输出脚即可。
2.程序实现
定义DSB-1A实验板的S1为启动键,S2为停止键,S3为加1键,S4为减1键,程序如下:
StartEnd
bit
01H
;
起动及停止标志
MinSpd
EQU25
起始转动速度
MaxSpd
EQU100
最高转动速度
Speed
DATA23H
流动速度计数
DjCount
DATA24H
控制电机输出的一个值,初始为11110
111
HiddenEQU10H;
消隐码
CounterDATA57H;
显示计数器
DISPBUF
DATA58H;
显示缓冲区
ORG
0000H
AJMP
MAIN
ORG000BH
JMPDISP
ORG001BH
JMPDJZD
ORG
30H
MAIN:
MOV
SP,#5FH
P1,#0FFH
MOVA,#Hidden
MOVDispBuf,A
MOVDispBuf+1,A
MOVDispBuf+2,A
MOVDjCount,#11110111B
SPEED,#MinSpd
起始转动速度送入计数器
CLR
停转状态
MOVTMOD,#00010001B;
MOVTH0,#HIGH(65536-3000)
MOVTL0,#LOW(65536-3000)
MOVTH1,#0FFH;
MOVTL1,#0FFH
SETBTR0
SETBEA
SETBET0
SETBET1
LOOP:
ACALL
KEY
键盘程序
JNB
F0,m_NEXT1
无键继续
ACALL
KEYPROC
;
否则调用键盘处理程序
m_NEXT1:
MOVA,Speed
MOVB,#10
DIVAB
MOVDispBuf+5,B;
最低位
MOVDispBuf+4,B
MOVDispBuf+3,A
JBStartEnd,m_Next2
CLRTR1;
关闭电机
JMPLOOP
ORLP1,#11110000B
m_Next2:
SETBTR1;
启动电机
AJMP
LOOP
主程序结束
---------------------------------------
D10ms:
……
---------延时程序,键盘处理中调用
KEYPROC:
A,B
获取键值
JB
ACC.2,StartStop
分析键的代码,某位被按下,则该位为1
ACC.3,KeySty
ACC.4,UpSpd
ACC.5,DowSpd
KEY_RET
StartStop:
SETBStartEnd
启动
KeySty:
CLRStartEnd;
停止
UpSpd:
INC
SPEED;
A,SPEED
CJNE
A,#MaxSpd,K1;
到了最多的次数?
DEC
SPEED;
是则减去1,保证下次仍为该值
K1:
DowSpd:
DEC
SPEED
A,#MAXSPD,KEY_RET
不等(未到最大值),返回
MOVSPEED,#MinSpd;
KEY_RET:
RET
KEY:
……获取键值的程序
DjZd:
定时器T1用于电机转速控制
PUSHACC
PUSHPSW
SUBBA,#MinSpd;
减基准数
MOVDPTR,#DjH
MOVCA,@A+DPTR
MOVTH1,A
SUBBA,#MinSpd
MOVDPTR,#DjL
MOVTL1,A
MOVA,DjCount
CPLA
ORLP1,A
JNBACC.7,d_Next1
JMPd_Next2
d_Next1:
MOVDjCount,#11110111B
d_Next2:
RLA
MOVDjCount,A;
回存
ANLP1,A
POPPSW
POPACC
RETI
DjH:
DB76,82,89,95,100,106,110,115,119,123,12……
DjL:
DB0,236,86,73,212,0,214,96,163,165
DISP:
显示程序
BitTab:
DB
7Fh,0BFH,0DFH,0EFH,0F7H,0FBH
DISPTAB:
DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
END
3.程序分析
本程序主要由键盘程序、显示器程序、步进电机驱动程序三部份组成,主程序首先初始化各变量,将显示器的高3位消隐,步进电机驱动的各引脚均输出高电平,然后调用键盘程序,并作判断,如果有键按下,则调用键盘处理程序,否则直接转下一步。
下一步是将当前的转速值转换为BCD码,送入显示缓冲区;
接着判断StartEnd这个位变量,是“1”还是“0”,如果是“1”,则开启定时器T1,否则关闭定时器T1,为防止关闭时某一相线圈长期通电,因此,在关闭定时器T1时,将P1.0~P1.3均置高。
至此,主程序的工作即结束。
这里为简便起见,这里没有做高位“0”消隐的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 步进 电机 原理
![提示](https://static.bdocx.com/images/bang_tan.gif)