二相步进电机控制系统的设计

上传人:liu****han 文档编号:56008324 上传时间:2022-02-19 格式:DOC 页数:23 大小:305KB
收藏 版权申诉 举报 下载
二相步进电机控制系统的设计_第1页
第1页 / 共23页
二相步进电机控制系统的设计_第2页
第2页 / 共23页
二相步进电机控制系统的设计_第3页
第3页 / 共23页
资源描述:

《二相步进电机控制系统的设计》由会员分享,可在线阅读,更多相关《二相步进电机控制系统的设计(23页珍藏版)》请在装配图网上搜索。

1、武汉理工大学计算机控制技术课程设计说明书目录1 设计任务及要求11.1 初始条件11.2 要求12 方案论证与选择13 原理说明23.1 AT89S51单片机23.2 步进电机23.3 数码管54 硬件电路设计74.1 两相步进电机驱动电路设计74.2 功能控制按键以及状态显示电路设计75 软件设计85.1 软件设计思想85.2 总流程图95.3 数码管动态显示流程图105.4 步进电机工作方式流程图106 调试记录及结果分析116.1 状态显示116.2 步数显示116.3 步进电机转动127 总结12参考文献14附录一 L298芯片资料15附录二 系统总电路图16附录三 程序清单17两相步

2、进电机控制系统的设计摘要:本设计主要设计了基于单片机的两相步进电机系统。其中使用AT89S51单片机作为主控芯片,利用L298集成芯片,采用双极性驱动方式,使步进电机完成四拍,八拍工作方式。电路结构简单,设计思路清晰,同时利用KEIL和Proteus进行联调仿真,结果比较直观。关键词:步进电机、单片机、双极性驱动1 设计任务及要求1.1 初始条件设计一个二相步进电机控制系统,电机有两组带中心抽头的线圈,要求系统具有如下功能:采用双极性(H桥)控制(不使用线圈的中心抽头),用K1-K4做为通电方式选择键,K1为四拍,K2为八拍, K3为启动/停止控制、K4方向控制;用4位LED数码管显示工作步数

3、。用3个发光二极管显示状态:正转时红灯亮,反转时黄灯亮,不转时蓝灯亮。1.2 要求(1)硬件设计:系统总原理图及各部分详细原理图(2)软件设计:系统总体流程图、步进电机四拍,八拍各模块流程图、显示模块流程图等。(3)编写程序:能够完成上述任务。(4)完成符合要求的设计说明书。2 方案论证与选择对于二相步进电机控制系统来说,可采用8086或者单片机作为控制芯片进行设计,但是基于8086的系统,片内资源有限,单个不足以构成系统,单片机则不然,可以加简单输入或显示,就可构成最小系统。因此,就硬件结构来说,采用单片机比较简单,而且就编写程序而言,8086只能使用汇编程序来控制,单片机却可以使用C语言来

4、编写,软件程序也较8086简单。通过以上分析,本设计主要采用单片机来作为主控芯片,通过编写C语言程序来完成。3 原理说明3.1 AT89S51单片机AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S51具

5、有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。3.2

6、 步进电机3.2.1 步进电机步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电动机的外施电压是脉冲电压,步进电动机按照输入的脉冲指令旋转,脉冲数决定了旋转的角位移大小,脉冲频率决定了旋转速度,并能在很宽的范围内调节

7、转速。由于步进电动机可将输入的数字脉冲信号转换成相应的角位移,易于采用计算机控制,其精度高,被广泛应用与开环控制系统中。3.2.2 步进电机的基本参数3.2.2.1 步进电机的静态指标1、相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A。3、步距角:对应一个脉冲信号,电机转子转过的角位移用表示。=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为

8、例。四拍运行时步距角为=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为=360度/(50*8)=0.9度(俗称半步)。4、定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。5、静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。虽然静转矩与电磁激磁安匝数成正比,与定齿转子间的气隙有关,但过份采用减小气隙,增加激磁安匝来提高静力矩是不可取的,这样会造成电机的发热及机械噪音。3.2.2.2 步进电机的动态指标1、步距角精度:步进电机每转过一个步距角的实

9、际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。2、失步:电机运转时运转的步数,不等于理论上的步数。称之为失步。3、失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。4、最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。5、最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。6、运行矩频特性:电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸

10、多动态曲线中最重要的,也是电机选择的根本依据。电机一旦选定,电机的静力矩确定,而动态力矩却不然,电机的动态力矩取决于电机运行时的平均电流(而非静态电流),平均电流越大,电机输出力矩越大,即电机的频率特性越硬,如图1(b)所示。(a) (b)图1 步进电机运行矩频特性图中,曲线3电流最大、或电压最高;曲线1电流最小、或电压最低,曲线与负载的交点为负载的最大速度点。要使平均电流大,尽可能提高驱动电压,使采用小电感大电流的电机。3.2.3 两相步进电机的说明图2 两相六线式步进电机结构图二相步进机是本次设计中试关键的一部分。二相步进机的型号有很多,按接线来分,大体上,有五线和六线的。本设计用的是六线

11、的。下面对两相六线式步进电机做以简单的介绍。两相六线式步进电机结构图如图3所示,它是由两组带中心抽头的线圈构成。假设A绕组通正向电流用(+A)表示;通反向电流用(-A)表示。 B绕组表示方法同A。则根据通电次序,其工作方式可分为下列3种: (1)四相单四拍 (2)四相双四拍 (3)四相八拍 假设按上述通电次序,电动机是正转的,则若按相反的通电次序,电动机就是反转的。3.3 数码管设计中用到四个LED数码管显示器, LED有共阴共阳数码管两种, 使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供

12、的编码正好是一个字节。本实验用共阴LED显示器,根据电路连接图显示16进制数的编码已列在图4。图3 编码表本部分用到LED显示器,其工作方式有两种:静态显示方式和动态显示方式。LED数码管,其原理和数字表扫描显示的原理一致即采用动态显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。设计图中四个数码管进行显示时,PD是位的扫描输出,本部分通过单片机的P0口和P2口的输出,P2为字形码扫描。如图5步数显示电路:图4 步数显示电路4 硬件电路设计4.1 两相步进电机驱动电路设计本方案使用集成芯片L298,采用双极性方式驱动两相四线是步

13、进电机。所谓双极性驱动方式,就是指步进电机线圈中电流的流动方向不是单向的,即绕组线圈中的电流有时沿某一方向流动,有时按反方向流动。步进电机的双极性驱动电路图如图5所示。L298驱动芯片的具体资料见附录。图5 驱动电路图按照通电次序的不同,实现步进电机的四相双四拍,四相八拍的工作方式以及正、反转。4.2 功能控制按键以及状态显示电路设计功能控制按键使用4个开关,分别接到单片机的4个I/O控制口,通过软件实现功能控制。用K1-K2做为通电方式选择键,按下去即选通, K1为四相双四拍,K2为四相八拍;K3为启动/停止控制,当按下去时是启动状态,弹上来则是停止;K4为方向控制,按下去作为正转,弹上来作

14、为反转。状态显示则是使用红、黄、蓝三个LED灯,使用软件来控制,或者使用硬件连接的方式使正转时红灯亮,反转时黄灯亮,不转时蓝灯亮。其硬件连接图如图6所示。不转时,K3是不接通的,K3的左路是低电平此时,D2发光;正转时,K3和K4都是接通的,此时D1发光;反转时,K3是接通的,K4是断开的,此时D3发光。 图6 功能控制按键以及状态显示电路5 软件设计5.1 软件设计思想根据需要完成的任务,对于软件程序设计分析如下:首先,对应于步进电机的几种工作状态,编写4种子程序,分别是四相双四拍正转子程序、四相双四拍反转子程序、四相八拍正转子程序、四相八拍反转子程序。其次,对应于步进电机步数显示,对数码管

15、编写子程序,采用动态扫描方式。当然,在此会用到一个延时函数,则需要编写一个延时子函数。再次,本设计还使用定时器对步进电机的走步进行精确地时间设设定,因此还需要编写一个定时器中断子程序。最后,对于主程序来说,只需在正确的硬件触发下,使其调用各种子程序,就能够实现步进电机的控制。5.2 总流程图图8 系统总流程图5.3 数码管动态显示流程图图9 数码管动态显示流程图5.4 步进电机工作方式流程图步进电机工作方式子程序是根据送给电机的电平方式的不同而不同的。具体程序见附录中的程序。图10 步进电机工作方式流程图6 调试记录及结果分析6.1 状态显示不转、正转与饭转时LED的状态显示分别如图11.、图

16、12和图13所示。图11 不转状态图12 正转状态 图13 反转状态6.2 步数显示图14为双四拍正转时数码管对步进电机步数的显示。显示了步进电机步进了19步。图14 步数显示6.3 步进电机转动步进电机转动的显示如图15所示,图中显示的就是图14数码管显示到19步时步进电机的运行状态。可以根据4个控制按键控制各种运行状态。图15 步进电机仿真图7 总结这次课程设计是对这个学期学习的微机控制技术基础知识的进一步了解与巩固,通过课程设计把所学的知识应用到实际,在短短的一个半星期的时间里面,我完成老师交给我的课程设计的任务,在这段时间里面我不仅温习了一下以前学的知识,还学习了PROTEUS这个软件

17、,应用这个软件来解决一些比较复杂的问题非常方便。我知道这门语言我还只是刚刚接触,还是一个门外汉,但是就从这段时间以来掌握的关于这门语言的知识就是相当的受用的,它能够帮助我们解决很多繁复的问题,让仿真更加简便。在刚开始的课程设计中,看到任务还真是有点摸不着头脑,原来是初始条件不够的原因,虽然花了很多冤枉功夫,但是在其中对知识的了解也是更加的透彻了,也明白了自己还不是学的很扎实,在今后的学习中要更加端正好学习态度。在做此设计时,我深深体会到做事与观看是完全不同的,没有付出努力,就什么也学不到,有时候我们听老师讲一些知识好像是懂了,在真正实践的时候才会明白,要想把知识融会贯通必须付诸于行动,否则一切

18、都是枉然。可是,我们要是有一定的过程,一定的付出 ,自然就会受到一定的成效。在学习过程中,我也发现自己去学习一门新的知识也是一个很重要的能力,因为人总是要进步,不能总是拿着现有的资本固步自封,这就要求我们要好好的培养和锻炼自学能力,这种能力一定会在今后的工作中起到举足轻重的作用。我们应该全面发展,应该拓展自己的知识面,把所学的知识应用到实际,这将对我们的生活学习起到很好的帮助作用。对自己所学习的知识应该不断加深理解,将知识融会贯通,这样才能真正学习到知识,在今后的学习生活当中应该更注重实践能力。参考文献1 于海生等编著.计算机控制技术. 北京:机械工业出版社. 2007.2 陈立周.单片机原理

19、及其应用.北京:机械工业出版社,2007.3 刘宝廷.步进电动机及其控制驱动系统.哈尔滨工业大学出版社,2006.4 张义和、王敏男等编著.例说51单片机(C语言版). 北京:人民邮电出版社. 2008.5 王彤编著.C语言在测量与控制中的应用. 北京:机械工业出版社. 2009.6 李发海、王岩编著.电机与拖动基础(第3版). 北京:清华大学出版社. 2005.附录一 L298芯片资料原理:L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和

20、四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机。 图16 L298管脚图附录二 系统总电路图图17 系统总电路图附录三 程序清单 #include#define motor P3#define deng P2#define led P0#define kongzhi P1 sbit led1=P20;sbit led2=P21;sbit led3=P22;sbit led4=P23;char table10=0x3f,0x06,0x5b,0x4f,0x66,0

21、x6d,0x7d,0x07,0x7f,0x67; /数码管编码b1=0xf3,0xf6,0xfc,0xf9; /双四拍正转b2=0xf9,0xfc,0xf6,0xf3; /双四拍反转c19=0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8; /八拍正转c2=0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9; /八拍反转unsigned char aa;int i=0,j,qian,bai,shi,ge,temp,key,si_ba=1,qt=1,fx=0;void chaxun(void);void delay(int x);void

22、 shumaguan(temp);void sspzheng(void);void sspfan(void);void bpfan(void);void bpzheng(void);void main(void) /主程序 i=0,j=0; temp=0;TMOD=0x11; /设置定时器工作方式TH0=(65536-50000)/256; /送初值TL0=(65536-50000)%256;ET0=1; /开定时/计数器0中断TR0=1; /定时/计数器开始工作TH1=(65536-500)/256; /送初值TL1=(65536-500)%256;ET1=1; /开定时/计数器0中断TR1

23、=1; /定时/计数器开始工作EA=1; /开总中断temp=0;aa=0;while(1)chaxun();if(aa=1)if(qt)if(si_ba=0)&(fx=0) sspzheng();P2=0x60; if(si_ba=0)&(fx=1) sspfan(); P2=0x30; if(si_ba=1)&(fx=0) bpzheng();P2=0x60; if(si_ba=1)&(fx=1) bpfan(); P2=0x30; else P2=0x50;/kongzhidengaa=0;void timer0() interrupt 1 /定时/计数器中断程序TH0=(65536-5

24、00)/256;TL0=(65536-500)%256;aa+;void timer1() interrupt 3 /定时/计数器中断程序shumaguan(temp);TH0=(65536-200)/256;TL0=(65536-200)%256;void chaxun(void)key=P1&0x0f;switch(key)case 0x0e:si_ba=0;break; /四拍case 0x0d:si_ba=1;break; /八拍case 0x0b: if(qt=0) qt=1;else qt=0; break; /启动、停止case 0x07:if(fx=0) fx=1;else f

25、x=0;break; /正反while(P1&0x0f)!=0x0f);void delay(int x) /延时子程序延时约0.5Xms int i,j; for(i=0;ix;i+) for(j=1;j=40;j+); void shumaguan(temp) /数码管动态显示子程序led1=1;led2=1;led3=1;led4=1;qian=temp/1000; /取千位bai=temp%1000/100; /取百位shi=temp%100/10; /取十位ge=temp%10; /取个位led4=0; /个位数码管亮led=tablege;delay(40);led4=1; led

26、3=0; /十位数码管亮led=tableshi;delay(100);led3=1;led2=0; /百位数码管亮led=tablebai; delay(40);led2=1;led1=0; /千位数码管亮led=tableqian; delay(40);led1=1;void sspzheng(void) /双四拍正转子程序 temp+;motor=(b2i4)+0x0f;i+;if(i=4)i=0;void sspfan(void) /双四拍反转子程序 temp+;motor=(b1i4)+0x0f;i+;if(i=4)i=0;void bpzheng(void) /八拍正转子程序temp+;motor=(c2i4)+0x0f;i+;if(i=8)i=0;void bpfan(void) /八拍反转子程序 temp+;motor=(c1i4)+0x0f;i+;if(i=8)i=0;22

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!