自己做的四相八拍步进电机调速.docx
《自己做的四相八拍步进电机调速.docx》由会员分享,可在线阅读,更多相关《自己做的四相八拍步进电机调速.docx(12页珍藏版)》请在冰豆网上搜索。
自己做的四相八拍步进电机调速
1引言
在工业控制系统里步进电动机是主要的控制元件之一。
步进电机具有快速启动停止,精确定位和能够使用数字信号进行控制,能够实现脉冲-角度转换的特点,因此得到广泛的应用。
在使用步进电机的控制系统里,脉冲分配器产生周期的控制脉冲序列,步进电机驱动器每接收一个脉冲就控制步进电机沿给定方向步进一步。
本实验旨在通过控制AT89S52芯片,实现对四相步进电机的转动控制。
具体功能主要是控制电机正转、反转、加速与减速。
具体工作过程是:
给试验箱上电后,拨动启动开关,步进电机按照预先设置的转速和转动方式转动。
调整正反转按钮,步进电机实现正反转切换;拨动加速开关,步进电机转速加快,速度达到最大值,不再加速;拨动减速开关时,电机减速转动,速度减到最小速度,停止减速。
2四相步进机
2.I步进电机
步进电机是一种将电脉冲转化为角位移的执行机构。
电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
2.2步进电机的控制
1.换相顺序控制:
通电换相这一过程称为脉冲分配。
例如:
混合式步进电机的工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。
2.控制步进电机的转向控制:
如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。
3.控制步进电机的速度控制:
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
两个脉冲的间隔越短,步进电机就转得越快。
2.3步进电机的工作过程
图2.1步进电机设计图
开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
八拍工作方式的电源通电时序与波形如图所示:
本实验使用的是单双八拍循环控制
对步进电机四个绕组依次实现如下方式的循环通电控制
八拍运行:
正转A-AB-B-BC-C-CD-D-DA
3电路图设计
3.1AT89S52概述
AT89S52单片机是ATMEL公司推出的高档型AT89S系列单片机中的增强型产品。
关于其功能原理及其应用不再赘述。
这里只介绍本实验用到的端口和功能。
P1口:
用户使用的通用I/O口,8位准双向,编程和校验时,可做为高8位地址线;P1.0和P1.1引脚另有第二功能。
P3口:
8位准双向I/O口。
RST:
复位信号输入端,高电平有效。
EA:
访问芯片内部和芯片外部程序存储器的选择信号。
XTAL1,XTAL2:
芯片内振荡器反相放大器的输出端和输入端。
3.2最小系统
单片机最小系统或者称为最小应用系统,就是用最少的元件组成的单片机可以工作的系统,对52系列单片机来说,最小系统一般应该包括:
单片机、复位电路、晶振电路。
图3.1
3.3复位电路
复位电路采用手动复位和上电自动复位。
上电自动复位:
在单片机上电的瞬间,RC电路充电,由于电容上电电压不能突变,所以RST引脚出现高电平,RST引脚出现的高电平将会随着对电容C的充电过程而逐渐回落。
手动复位:
当按下复位按钮时,RST出现高电平,实现复位。
图3.2
3.4拨码电路
拨码开关和P3口相连,拨动开关sw1、sw2、sw3、sw4来控制电机的启停、正反转、速度的加减。
图3.3
3.5电机驱动电路
将步进电机的A、B、C、D分别接到P1.0、P1.1、P1.2、P1.3管脚上
图3.4
实物连接
图3.5
4程序设计
4.1主程序框图
系统分为电机转动、电机正转、电机反转、电机加速、电机减速和电机停止这几个部分组成,其主程序框图如图下所示:
图4.1
4.2步进电机速度控制程序框图
正转部分:
送P1口不同的值,从而改变电机电源的相序,是电机正转,数值分别为0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9。
流程图如下:
图4.2
反转部分:
送P1口不同的值,从而改变电机电源的相序,是电机反转,数值分别为0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8。
流程图如下:
图4.3
加速部分:
当电机处于正转或反转的时候,按下K2,调用加速程序,是电机每转动一部的延时时间变短,从而实现电机的加速。
图4.4
减速部分:
当电机处于正转或反转的时候,按下K3,调用加速程序,是电机每转动一部的延时时间变长,从而实现电机的减速。
图4.5
运行与停止:
按下K1键,系统默认是停止,拨动一次是运行,在拨动一次是停止,即是基数次运行,偶数次停止(一般不会拨动N次,为了看到现象,就拨动少数几次)。
图4.6
4.3拨码开关输入程序框图
用于判断P3.1、P3.2、P3.3、P3.4。
图4.7
5程序设计
STACKSEGMENTSTACK
DW256DUP(?
)
TOPLABELWORD
STACKENDS
DATASEGMENT
TABALEDB01H,03H,02H,06H,04H,0CH,08H,09H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA;将DATA数据送入AX
MOVDS,AX;将AX段地址送入DS
MAINMOVAL,90H
OUT63H,AL;AL的值从端口地址为63H的端口输出
A1:
MOVBX,OFFSETTABLE;将TABLE偏移地址送入BX
MOVCX,0008H;定义循环次数
A2:
MOVAL,[BX]
OUT61H,AL;AL的值从端口地址为61H的端口输出
CALLDALLY;调用子程序
INCBX;BX+1→BX
LOOPA2;循环A2
JMPA1;循环完毕,跳转到A1
DALLY:
PUSHCX;保护现场
MOVCX,5000H;定义循环次数
A3:
PUSHAX
POPAX
LOOPA3;循环A3
POPCX;恢复现场
RET;返回
CODEENDS
ENDSTART
6设计总结
经过一个星期的设计,不仅让我加深了很多课本上的知识,更让我认识到了理论知识与实践相结合的重要性,所谓“致知于行”。
虽然已经会设计一些程序图了,但把它画出来也不是件容易的事。
对单片机和C语言程序有了更进一步的认识,增强了团队意识,还有对一些软件的操作和使用更加熟练了。
总而言之,精力没有白费,我的知识面也拓宽了。
其次,在设计的过程当中,也体现了自己某些方面存在的不足,如操作不熟练,刚开始的时候,线路的连接出现了错误等问题,最后在老师和同学的指导下共同完成了本次课程设计,我认为,以后要多做这样的课程设计,以提高自己的能力。
参考文献
[1].何立民.单片机应用技术选编.北京航空航天大学出版社1993
[2].黄艺源.机械设备电气与数字控制.中共广播电视大学出版社.1992
[3].王福瑞.单片机微机测控系统设计大全.北京航空航天大学出版社.1998
[4].楼天顺、周佳社.微机原理与接口技术.北京科学出版社.2006
[5].顾元刚、韩燕.汇编语言与微机原理教程.北京电子工业出版社.2000