基于单片机实现的四相步进电机控制器毕业设计.docx
- 文档编号:11924995
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:80
- 大小:218.26KB
基于单片机实现的四相步进电机控制器毕业设计.docx
《基于单片机实现的四相步进电机控制器毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机实现的四相步进电机控制器毕业设计.docx(80页珍藏版)》请在冰豆网上搜索。
基于单片机实现的四相步进电机控制器毕业设计
基于单片机实现的四相步进电机控制器设计
指导老师:
作者:
摘要:
本设计采用ATMEL公司DIP-40封装的AT89S52单片机实现对四相步进电机的手动和遥控控制。
由单片机产生的脉冲信号经过脉冲分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。
转速的调节和状态的改变由按键进行选择。
通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。
电机转动的不同状态由LED数码管显示。
红外信号的发射由另一块单片机和红外线LED完成,用红外万能接收头接收红外信号,可以实现对电机的控制进行红外遥控。
关键字:
四相步进电机单片机功率放大红外遥控
Controllerforfourphasestepmotor
Abstract:
Thedesignadoptstwomicroprocessor(DIP-40encapsulation,AT89S52)ofATMELcompany’tocontrolfourphasestepmotor.Afteradmeasuredit,thepulsegeneratedbymicroprocessorbecometherelevantfourphasepulse.Thesepulses,whicharemagnifiedbydrivingcircuit,areusedtodrivethefourphasestepmotor.Regulatingrotatespeedandchangingestateareusedsomekeys.Passscanningthekeyboardtofeedsinglebacktomicroprocessor.Themicroprocessormakesthejudgmentandchangethepulsefrequentaccordingtothefeedbackinformation.LEDshowdifferentrunningestate.TheinfraredsingleisemittedbyanothermicroprocessorandinfraredrayLED,usinginfraredinceptmoduletoaccepttheinfraredsignal.Systemcancontrolmotorwithinfraredtelecontrol.
Keyword:
fourphasestepmotormicroprocessorpowermagnifyinfraredtelecontrol
前言
一般,电动机都是连续旋转,而步进电动机却是一步一步转动的,故称为步进电动机。
每输入一个脉冲信号,该电动机就转过一定的角度(有的步进电动机可以直接输出线位移,称为直线电动机)。
因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。
它有两个工作:
其一是传递转矩,其二是传递信息。
步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。
由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。
随着数字控制系统的发展,步进电动机的应用将逐渐扩大。
步进电动机的种类很多,按励磁方式可分为反应式、永磁式和感应子式;按相数分则可分为单相、两相和多相三种。
这里使用的是反应式四相步进电机,它的工作方式有单四拍正转,单四拍反转,双四拍正转,双四拍反转,单双八拍正转,单双八拍反转六种。
针对这些状态,设计的控制器能很好地实现状态的转换及转速的改变。
1.系统设计
1.1功能介绍
一、基本功能
(1)步进电机能够在双四拍和单双八拍两种工作方式间切换。
(2)能够实现步进电机单步和连续运行。
(3)能实现步进电机正\反转及速度变换。
(4)显示工作状态
二、扩展功能
红外线遥控实现电机的各种状态之间的启动和转换
1.2总体设计方案
1.2.1总体设计思路
用于控制的电机是MITSUMI公司生产的M35SP-7T型四相反应式步进电机。
为满足手动和红外遥控相互独立,采用两块AT89S52单片机分别控制手动模块和红外遥控模块。
手动模块完成所有基本功能以及红外接收,遥控模块用来发射红外遥控信号。
1.2.2方案论证与比较
1.控制部分的设计方案论证与选择
方案一、用逻辑电路实现。
用NE555定时器芯片产生脉冲,用74HC74组成的电路实现脉冲的分配。
用组合和时序电路实现频率的调节。
整个电路要用到的分立元件太多,电路联接复杂,而且抗干扰能力不强,稳定性和精确度不高。
方案二、用单片机实现。
由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。
对于脉冲的产生及分配,频率的调节,转速及状态的改变都可以由单片机实现,不必再分别用分立元器件实现。
由于单片机的可编程特性,应用单片机程序对四相步进电机进行控制,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。
方案三、用FPGA实现。
众所周知,FPGA做控制核心,外围电路简单,整体性能好,有更好的稳定性,更高的精度,更强的抗干扰能力。
但是其价格昂贵,用于本设计的电机控制性价比不高。
综上所述,选择方案二。
利用单片机实现主要控制,按键进行选择。
2.功率驱动电路的设计方案论证与选择
单片机端口输出的电流只有几个毫安,不能直接驱动步进电机。
为了给步进电机提供足够的电流,必须设计驱动电路。
考虑到本次驱动的电机所带负载和功率不大,对电源的要求也不是太高,故采用单一电压型电源供电。
由于绕组是感性的,功率放大器必须设计得能保护晶体管不受电感在接通和断开瞬间时的尖峰信号的冲击。
同时,为了使绕组在断电时能够加快电流的衰减,以免断开的相绕组中的衰减电流对电动机起制动效应,还必须为放大电路设计抑制电路或是泄放回路。
这里对抑制电路有三种方案如下:
方案一:
二极管抑制电路
二极管抑制电路如图1.2.1所示。
当绕组通电时,二极管承受反向电压,不导通。
当三极管转变为截止状态或是绕组断电时,绕组将产生一个与原来承受的电压极性相反的感应电势,使二极管导通,形成绕组L和二极管构成的回路。
假设绕组电阻为R,则回路中电流的衰减时间常数为T=L/R。
由于R一般较小,因而T一般较大,只适用于步进电机低速运行。
图1.2.1二极管抑制电路图1.2.2二极管-电阻抑制电路
方案二:
二极管-电阻抑制电路
二极管-电阻抑制电路如图1.2.2所示。
在这个抑制电路中,增加了一个与二
极管串联的电阻RS,当绕组断电时泄放回路的时间常数为T=L/(R+RS),这就加快了断电绕组中电流的衰减,减小了泄放回路时间常数。
但由于RS的存在,使三极管在绕组断电时承受较大的反向电压。
方案三:
稳压二极管抑制电路
这种电路是用一个稳压二极管代替串联电阻,其电路如图1.2.3所示。
当绕组断电时,由于稳压管的稳压特性,给三极管的反向电压也不会太大,泄放回路电流衰减得更快。
当断电相绕组的感应电势升高到使稳压二极管击穿并导通时,断电相绕组中的储能以热能形式在稳压二极管内消散。
图1.2.3稳压二极管抑制电路
综上所述,考虑达到设计要求选择方案二。
利用二极管-电阻抑制电路和两个9014三极管组成驱动电路。
3.显示电路的设计方案论证与选择
方案一、采用LED静态显示。
LED数码管的公共端COM(位选控制信号)接电源(而对于共阴数码管是接地),数码管的段码分别和I/O口相连,这样N位数码管就需要占用N个8位(共8N位)I/O口线。
特点是占用较多的硬件资源,控制简单方便。
图1.2.4静态显示
方案二、采用LED动态显示。
LED数码管的所有段码连接在同一个8位的I/O口线上,每个LED数码管的位码则单独使用一个I/O口,这样N位动态显示的LED数码管只需占用8+N位I/O口线;特点是占用较少硬件资源(I/O口),功耗相对于静态显示来讲大大降低,但编程较复杂并需要占用系统的软件资源。
图1.2.5动态显示
单片机的I/O端口较少,且系统要用8个LED数码管,若选静态显示则需占用太多I/O端口。
采用动态显示不仅可以减少占用硬件资源,降低功耗,而且本系统单片机能提供足够的软件资源。
综上所述,选择方案二。
4.单片机电源部分的设计方案论证与选择
由于本次设计中单片机工作电源为5V,所以需要稳压,对于5V电源这里有以下两种方案。
方案一:
用固定式三端稳压器,例如7805系列稳压器输出固定的正电压5V,输入端接电容C1可以进一步滤除纹波,输出端接电容C2能改变负载的瞬态影响,使电路稳定工作C1、C2最好采用漏电流小的钽电容。
如果采用电解电容,则电容要比图中数值增加10倍。
图1.2.6固定式三端稳压器
方案二:
虽然7805三端集成稳压管内部有过流、过热和安全区的保护电路,但其输出仍有可能发生过压的危险。
因此本电路加了过压保护电路,该电路由稳压管VD3、电阻R3和晶闸管VS组成。
另外由于7805的最大输出电流为1.5A,可以通过在7805的1脚与VT1的基极相连,7805的2脚与VT1的集电极相连,这样就可输出1.6A~2A的电流。
如需更大的电流,可再并联几个大功率三极管。
图1.2.7可扩流过压保护5V稳压电源
综上所述,基于单片机电源只使用到5V的电源,所以不必考虑去调节它的稳压值,再加上第二种方案所用元件较多,性能价格比不高,因此我们采用了第一种方案。
5.红外线通信的设计方案与选择
红外线是波长约大于770nm的不可见光。
将发射红外线的发光二极管(LED)和感知红外线的接受模块组合在一起就可以实现红外线通信。
设计采用基于PPM的红外线通信方式。
应用红外线接收模块通信时,将所使用的红外线设置成如图所示的频率40kHz的方波形式,即1秒钟内断续地发送红外线4万次。
这种调制方式被称为脉冲周期调制(PPM)。
方案一、采用脉冲个数编码。
不同的脉冲个数代表不同的码,最小为两个脉冲,最大为8个脉冲。
为了使接收可靠,第一个码宽为3ms,其余为1ms,遥控码数据帧间隔大于10ms。
此种方式易于实现,可靠性佳。
方案二、采用8位数字组成的代码编码。
第一个数字为1代表起始位,接下来的三位为遥控码,剩下的4位为停止码。
综上所述,采用方案一的编码实现红外通信。
1.3电机的参数
转速n=60f/ZRN。
其中ZR为转子齿数,N为运行拍数,f是控制脉冲的频率。
由此可见,反应式步进电动机转速取决于脉冲频率、转子齿数和拍数,而与电压、负载、温度等因素无关。
当转子齿数一定时,转子旋转速度与输入脉冲频率成正比,或者说其转速和脉冲频率同步。
改变脉冲频率可以改变转速,故可进行无级调速,调速范围很宽。
此设计使用的电机步距角θb=7.5o,所以ZRN=360o/θb=360o/7.5o=48。
故n=60f/48。
由于可调频率为16~500Hz,所以转速为20~625r/min。
1.4系统组成
经过方案比较与论证,最终确定的系统组成框图如图1.2.8所示。
其中单片机作为主控设备控制系统的输入和输出。
红外发射和接收模块实现对四相步进电机的较远距离的遥控控制。
功率放大驱动电路放大单片机分配的控制脉冲,显示模块则能显示电机当前的运行状态。
图1.2.8系统组成方框图
2.单元电路设计
2.1功率放大驱动电路方案设计
设计电路图如图2.1所示。
该单元电路采用两级9014三极管达林顿接法,能很好的满足放大要求。
泄放回路采用二极管-电阻方案,发光二极管通过一级三极管放大用来显示通电的相。
根据本次采用的步进电机参数,使用9014三极管两极放大能满足驱动要求。
参数计算如下:
理论计算的最大输出电流为690.25mA,实际值并没这么大,且电机每一相的运行是断续的,不会给三级管带来太大的负担,所以此方案基本满足步进电机的驱动要求。
图2.1驱动电路电路图
2.2显示电路方案设计
采用动态显示的方法实现状态的显示:
44—P(双四正转),44—N(双四反转),48—(单双八拍正转),48—N(单双八拍反转),以及频率的显示。
本设计单片机系统的状态显示电路如图2.2所示。
图2.2显示电路电路图
该单元电路主要采用总线来扩展I/O单元,其中有8个共阴LED数码管和一个数据锁存器U3。
KBIT1—KBIT7是数码管的位选控制信号,KEY-BEC是键盘输入检测信号。
数码管在系统中是分时扫描控制的,当控制数码管显示时,KBIT1—KBIT7控制八个数码管的位码,KBIT1—KBIT7为低电平,三极管Q0-Q7导通,数码管点亮,显示段码的数据。
当键盘控制时,KEY-BEC是连在单片机的T1口上的(该口内部有上拉电阻),给D0-D7输入高电平,控制单片机扫描KEY-BEC口,如果键盘有键按下,与键盘相连的二极管导通,将电平钳制在0.7V,所以只要扫描到KEY-BEC变为高电平,就可以判断有键按下了。
2.3单片机电源电路设计
该电路主要由1个7805芯片U2,1个整流桥D以及一些电阻和电容组成。
输出固定的正5V电压,输入端接电容C12可以进一步滤除低次纹波,C3滤出高次谐波。
C11能改变负载的瞬态影响。
输出端接电容C4和C11再次滤波,使输出电压更稳定。
电路如图2.3所示。
图2.3单片机电源电路图
2.4红外发射电路设计
此电路用单片机和矩阵式按键实现控制电机运行方式转换及加减速的脉冲发射,单片机采用AT89S52,其采用最小化应用系统设计。
发光二极管显示红外发射管是否发射出红外信号。
采用了两个红外发射管同时发射红外信号,实现大范围,宽角度发射,保证接收的可靠性。
采用矩阵式按键便于扩展功能。
电路图如图2.4所示。
图2.4红外发射电路图
3.软件设计
3.1编程语言
本设计中采用汇编语言对单片机进行编程。
采用的是自下而上的设计方式,先设计出每一个模块(子程序),然后再慢慢扩大,最后组成整个系统。
采用汇编语言编程对编程者有着特殊的要求,它不如用C语言编程轻松,它要求编程者对单片机的内部结构和外围电路非常了解,尤其是对指令系统必须非常熟悉,而且用汇编语言开发软件是比较辛苦的,程序量也比较大,方方面面都需要考虑,一切问题都需要编程者安排。
但是使用汇编语言进行编程所占的资源较少,产生代码质量高,且执行完成情况佳。
3.2软件实现方法
软件的设计主要是通过按键查表控制步进电机的转速,并用按键来切换电机的正反转与运行状态,同时,用两个数码管分别显示频率与电机运行状态。
本设计可实现对电机转速的调节,运行状态双四拍正转,双四拍反转,单双八拍正转,单双八拍反转之间进行转换。
其设计原理框图如图3-1所示。
图3.1程序设计原理框图
由于所用的晶振为12MHz,以此作为步进电机的脉冲信号的话电机会出现失步甚至不能启动,且作为运行的频率也太高。
因此首先对该晶振进行分频,得到频率比较小的脉冲作为电机的步进脉冲信号。
经验证,方波的频率为1Hz~500Hz时能很好的驱动电机运行。
通过分频的信号叠加产生不同频率的脉冲,这些频率(16HZ-500HZ)被转换成相应的定时器基值,然后以表的形式存储在单片机程序存贮器中。
通过按键查表更新定时器基值,从而实现电机的调速。
3.2.1双四拍正转
双四拍正转运行方式是AB→BC→CD→DA→AB。
对应的功能如表3.3所示。
3.2.2双四拍反转
双四拍反转运行方式是AC→CB→BA→AC。
对应的功能如表3.4所示。
表3.1双四拍正转表3.4双四拍反转
输出代码
通电绕组
P2口输出
00001001
AD
09H
00001100
DC
0CH
00000110
CB
06H
00000011
BA
03H
输出代码
通电绕组
P2口输出
00000011
AB
03H
00000110
BC
06H
00001100
CD
0CH
00001001
DA
09H
3.2.3单双八拍正转
单双八拍正转运行方式是A→AB→B→BC→C→CD→D→DA→A。
其功能如表3.5所示。
3.2.4单双八拍反转
单双八拍反转运行方式是A→AC→C→CB→B→BA→A。
其功能如表3.6所示。
表3.5单双八拍正转表3.6单双八拍反转
输出代码
通电绕组
P2口输出
00000001
A
01H
00000011
AB
03H
00000010
B
02H
00000110
BC
03H
00000100
C
06H
00001100
CD
0CH
00001000
D
08H
00001001
DA
09H
输出代码
通电绕组
P2口输出
00000001
A
01H
00001001
AD
09H
00001000
D
08H
00001100
DC
0CH
00000100
C
04H
00000110
CB
06H
00000010
B
02H
00000011
BA
03H
3.3程序流程图
’
遥控发射程序流程图
3.4三相步进电机程序清单
三相步进电机程序清单见附录2。
4.结束语
控制器能完成以下功能:
(1)通过调节单片机输出脉冲频率控制电机加速和减速;
(2)改变电机运行状态;
(3)实现手动和红外遥控控制两种控制方式;
(4)显示电机运行状态和脉冲频率;
在软硬件的结合下,控制器能达到设计要求。
主要采用单片机实现对系统的控制。
软件方面采用汇编语言编程实现,并下载到自制的实验板上测试通过。
参考文献
1杜坤梅.电机控制技术[M].哈尔滨:
哈尔滨工业大学出版社,2002年第二版
2[美]丹尼斯.克拉克,迈克尔.欧文斯,[译]宗光华.张慧慧.机器人设计与控制[M].北京:
科学出版社,2004年第一版
3[日]船仓一郎,土屋尧,掘桂太郎,[译]宗光华.杨洋.唐伯燕.机器人控制电子学[M].北京:
科学出版社,2004年第一版
4[美]迈克.普瑞德科,[译]宗光华.李大寨.机器人控制器与程序设计[M].北京:
科学出版社,2004年第一版
5陈隆昌.阎治安.刘新正.控制电机[M].西安:
西安电子科技大学出版社,2000年第三版
6陈永甫.红外探测与控制电路[M].北京:
人民邮电出版社,2004年第一版
7童诗白.华成英.模拟电子技术基础[M].北京:
高等教育出版社,2001年第三版
8张洪润.马平安.张亚凡.单片机原理及应用[M].北京:
科学出版社,2002年第一
附录1元器件清单
名称
型号
参数
数量
单片机
AT89S52
AT89S51
各1
数码管
四位一体共阴
2
锁存器
74HC373
1
发光二极管
LED
7
二极管
12
三极管
9013,9014
4,8
红外线发射管
红外LED
1
红外线万能接收头
1
整流电桥
WXDH
2
稳压管
7805
2
排阻
10K
2
电阻
若干
晶振
12M
1
下载口
2
电源接口
2
电解电容
100μf
470μf
1
4
电容
104
30
0.1μf
30pf
4
4
插座
单片机插座
所存器插座
40引脚,
24引脚
2
1
按键
电源按键
普通按键
2
24
附录2
程序清单如下:
;----------------------------------------------------------------------
;---------基于单片机AT89S52\AT89S51的四相步进电机控制程序-----------
;--------作者:
凌鑫华肖远青谭辉
;--------2004.3.23-----------
;----------------------------------------------------------------------
;伪定义
TELECON0EQU08H;遥控键1标志
TELECON1EQU09H;遥控键2标志
TELECON2EQ10H;遥控键3标志
TELECON3EQU11H;遥控键4标志
TELECON4EQU12H;遥控键5标志
TELECON5EQU13H;遥控键6标志
B0DATA29H;B0-B12均为计数单元
B1DATA30H
B2DATA31H
B3DATA32H
B4DATA33H
B5DATA34H
B6DATA35H
B7DATA36H
B8DATA37H
B9DATA38H
B10DATA39H
B11DATA40H
B12DATA41H
LOCKDATA42H;数码管位锁单元
FLAG1DATA43H;双四拍显示选择标志
FLAG2DATA44H;单双八拍显示选择标志
COUNT1DATA45H;双四拍查表计数
COUNT2DATA46H;单双八拍查表计数
D1DATA47H;定时器计数
基值高位存储单元
D2DATA48H;定时器计数基值
低位存储单元
CT1DATA49H;调速计数高位
CT2DATA50H;调速计数低位
CT3DATA51H;查表TABAL2计数
CT4DATA52H;查表TABAL3计数
CT5DATA53H;查表TABAL4计数
CT6DATA54H;查表TABAL5计数
DISP0DATA55H;频率个位显示
DISP1DATA56H;频率十位显示
DISP2DATA57H;频率百位显示
ORG0000H
LJMPSTART;转入主程序
ORG0003H;外部中断INT0入口地址
RETI;返回,不用
ORG000BH;定时器T0入口地址
LJMPINTT0;转入T0中断服务程序
ORG0013H;外部中断INT1入口地址
LJMPINTEX1;转入INT1中断服务程序
ORG001BH;定时器T
RETI;不用,返回
ORG0023H;转入串行中断服务程序
RETI;不用,返回
;-------------------------------------------
;---------初始化程序----------------
CLEARANCE:
MOVD1,#00BH;定时器低位初值存储单元初值(-16HZ-)
MOVD2,#0DCH;定时器高位初值存储单元初值
MOVF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 实现 步进 电机 控制器 毕业设计