基于单片机控制的步进电机设计-毕业论文设计_第1页
基于单片机控制的步进电机设计-毕业论文设计_第2页
基于单片机控制的步进电机设计-毕业论文设计_第3页
基于单片机控制的步进电机设计-毕业论文设计_第4页
基于单片机控制的步进电机设计-毕业论文设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南交通大学本科毕业设计(论文)基于单片机控制的步进电机设计Basedonmicroprocessorcontrolledsteppermotordesign年级:2008级学号:20088888姓名:李刚专业:测控技术与仪器指导老师:表哥2012年6月西南交通大学本科毕业设计(论文)第PAGEIV页院系计算机与通信工程系专业测控技术与仪器年级2008级姓名题目基于单片机控制的步进电机设计指导教师评语指导教师(签章)评阅人评语评阅人(签章)成绩答辩委员会主任(签章)年月日毕业设计(论文)任务书班级学生姓名学号发题日期:2012年2月30日完成日期:2012年6月17日题目:基于80C51单片机控制的步进电机本论文的目的、意义步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件,具有快速起动和停止的特点。目的:本课程设计的内容是利用51单片机,达到控制步进电机的启动、停止、正转、反转、多档速度调速和状态显示的目的,使步进电机控制更加灵活。利用六位数码管增设电机状态显示功能,各项数据更直观。意义:因为步进电动机组成的控制系统结构简单,价格低廉,性能上能满足工业控制的基本要求,广泛地应用于手工业自动控制、数控机床、卫星天线定位系统、医疗器件以及各种可控机械工具等等,并且在航空、航天、汽车、精密电子等行业也被广泛应用。在电工设备中的应用,最重要的就是应用在直流旋转电机中。在控制系统中,步进电机还有其它的用途,例如测速电机、伺服电机等。2、学生应完成的任务(1)查阅单片机、以及步进电机的相关资料,了解步进电机工作情况;(2)选择合适的电子元件设计出硬件电路并生成PCB板;(3)编写软件程序实现启动、停止、正转、反转、调速和状态显示的目的;(4)综合调试;(5)撰写毕业论文。3、论文各部分内容及时间分配:(共16周)第一部分查阅资料 (2周)第二部分系统结构设计 (4周)第三部分系统的应用程序设计 (4周)第四部分综合调试 (2周)第五部分撰写毕业设计资料 (3周)评阅及答辩 (1周)备注答辩前应向指导老师交毕业设计(论文)说明书(书面文档应不少于1万2千个汉字)和电子文档(含毕业设计(论文)说明书及应用软件)。指导教师: 2012年2月30日审批人: 年月日西南交通大学本科毕业设计(论文)摘要步进电机是将电脉冲信号转为角位移或线位移的开环控制元件。由步进电动机组成的开环系统既简单廉价,又可靠稳定。它有瞬间启动,急速停止,精度高等特点。目前打印机,绘图仪,机器人,数控机床等等设备都以步进电机为核心动力。在各种办公自动化设备以及控制装置等领域中有着极其广泛的应用。本文介绍的是基于单片机的控制步进电机的系统设计,通过单片机、ULN2003驱动芯片以及相应的按键实现各种功能,并且步进电机的工作状态要用相应的数码管显示出来。本系统采用模块化设计,结构简单,可靠,清晰明了。通过人机交互换接口可实现各功能设置,操作简单,易于掌握。本文内容介绍了步进电机以及单片机原理、该系统的硬件电路、程序组成,同时对软、硬件进行了调试,介绍了制作PCB板步骤。该设计具有思路明确、可靠性高、稳定性强等特点,通过调试实现以下几个主要功能:控制步进电机实现正转和反转;控制步进电机转速;设计步进电机的脉冲放大电路,能驱动相电压为5V、相电流位为0.4A的步进电机工作;实现对步进电机圈数的预置;同步显示步进电机所转圈数。关键词步进电机PM25L-024-STB6;SST89E516RD;C语言AbstractThesteppermotorisaopen-loopcontrolcomponentsthatcouldbetotransformtheelectricalpulsesignalintoangulardisplacementorlineardisplacement.Steppermotoropen-loopsystemisbothsimpleandcheap,reliableandstable.Ithasinstantstart,rapidstop,andhighaccuracy.Atpresent,printer,plotter,robot,CNCmachinetoolsandotherequipmentwithsteppingmotorasthecoredrivingpower.Invariouskindsofofficeautomationequipmentandcontroldevices,andotherfieldshaveextremelyextensiveapplication.Thisarticledescribethesteppermotorcontroledsystemdesignwhichisbasedonthemicrocontroller,Throughthesingle-chipmicrocomputer,ULN2003drivechipandcorrespondingkeyachievethosefunctions,andtheworkingstateofthesteppingmotorwithcorrespondingdigitaltubedisplay.ThesystemUSESthemodulardesign,simplestructure,reliable,andclarity.Throughtheman-machineinterfacecanrealizeAvarietyoffunctionsetting,simpleoperation,easytomaster.Thispaperintroducesthecontentofthesteppingmotorandtheprincipleofsingle-chipmicrocomputer,thesystemhardwarecircuit,programcomposition,atthesametimeforthesoftwareandhardwaredebugging,introducesmakingPCBsteps.Thisdesignhasclearthinking,highreliability,andstrongstabilityandothercharacteristics,throughthedebuggingrealizethefollowingmainfunctions:(1)Controllingthecorotationandinversionofthesteppermotor;(2)Controllingthespeedofsteppermotor;(3)designingthepulseamplifiercircuitofsteppermotortodrivethesteppermotorwith5Vvoltage,0.4Aphasecurrent;(4)achievingthepresettingoflapsofthesteppermotor;(5)synchronouslydisplayingthecirclenumberandspeedofthesteppermotor.KeywordssteppingmotorPM25L-024-STB6;SST89E516RD;Clanguage西南交通大学本科毕业设计(论文)第44页目录摘要 IAbstract I目录 1第1章绪论 11.1引言 11.2本文研究的目的和意义 11.3国内外研究概况及趋势 21.4本文研究内容 2第2章步进电机的工作原理及特性 32.1步进电机的概念 32.2步进电机的特点 32.3步进电机的分类 42.4步进电机的工作原理 52.4.1步进电机结构(三相) 52.4.2对齿和错齿 52.4.3工作原理 62.4.4工作方式(四相) 72.4.5步进电机的常用术语 82.5步进电机的振荡和失步 82.5.1振荡 82.5.2失步 9第3章硬件电路设计 103.1步进电机驱动系统 103.2控制模块 103.3驱动模块 113.4显示模块 123.5按键模块 123.6步进电机部分 13第4章软件设计 154.1程序流程图 154.2系统主程序 164.3定时中断设计 174.4外部中断设计 17第5章PCB板设计及硬件调试 195.1AltiumDesigner简介 195.2PCB制作过程 195.2.1原理图绘制 195.2.2元件封装 195.2.3规划电路板 205.2.4电路板(PCB)编辑器 205.2.5布置元件 205.2.7自动布线与手工调整 205.2.8PCB文件的保存 215.3本设计的PCB 215.4硬件电路调试 22结论 23致谢 24参考文献 25附录1 26附录2 27第1章绪论1.1引言一个国家的制造业水平在很大程度上可以体现国家的实力,国家的发展也在很大程度上依赖于先进的制造业,所以大多数国家都非常重视大力发展制造业,二战后,计算机控制技术、微电子技术、信息和自动化技术有了迅速的发展,并在制造业中得到了愈来愈广泛的应用,具有很多优点的步进电机就是一个重要角色,比如在数控技术中。

步进电动机又称脉冲电动机,其应用发展己有约80年的历史。可以说步进电机是纯粹的数字控制电动机,步进电机驱动器通过控制脉冲,控制步进电动机各相绕组的导通或截止,从而使电动机产生步进运动。就是说给一个电脉冲信号,电动机就转过一个角度或者前进一步,其输出转角、转速与输入脉冲的个数、频率有着严格的比例关系。这些关系在负载

能力范围内不随电源电压、负载大小、环境条件等的变化而变化。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,同时步进电机只有周期性的误差而无累积误差,精度高。步进电动机可以在宽广的频率范围内通过改变脉冲频率来实现调速、快速起停、正反转控制等,这是步进电动机最突出的优点。正是由于步进电机具有突出的优点,所以成了机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用,所以本课题的研究相当有必要。1.2本文研究的目的和意义步进电动机是用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或线位移的微电动机,它最突出的优点是可以在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且用其组成的开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。随着微电子和计算机技术的发展,步进电动机的需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。1.3国内外研究概况及趋势在日本,60年代初期,开发了用于数控装置及计算机外部设备的磁阻式步进电动机。60年代中期至今,开发了混合式步进电动机。在我国,步进电动机的研制始于1958年。当时只有清华大学,华中理工大学等少数高等院校在从事这项工作。到了60年代末,70年代初,由于电子工业和数字控制技术的发展,特别是数字控制线切割机床发展的需要,才使步进电动机的研究工作蓬勃开展起来。经过四十几年的发展,随着步进电动机理论的日臻完善,特别是磁阻式步进电动机,产品品种、规格,门类的系列化以及出现了象无刷直流电动机系统那种更优越的伺服系统,才使得步进电动机的发展势头有所缓和,总体看来,目前其发展正趋于平缓。步进电动机的种类很多,按其工作原理可分为磁阻式、永磁式、混合式三大类型。由于上述三种类型步进电动机的结构及作用原理各不相同,因此其市场的应用以及发展的情况也各不相同。但不管如何发展,总离不开“轻、薄短小、高效率、低振动、低噪声、低价格”—微特电机发展的永恒主题[3]。1.4本文研究内容本论文所选的步进电机是四相步进电机,实现步进电机加速、减速,正转、反转,预置圈数,圈数同步,以及转速级别显示。采用的方法是利用单片机控制步进电机的驱动。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为步距角),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。本次毕业设计就是通过改变脉冲频率来调节步进电机的速度的,并且通过数码管显示其转速的级别。另外通过单片机实现它的正反转,步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。第2章步进电机的工作原理及特性2.1步进电机的概念步进电机是一种将电脉冲转为角位移或线位移的执行机构。简单一点讲,当驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。我们可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时我们也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单、精度高。从原理上讲,步进电机是一种低速同步电动机。本次毕业设计采用的是步距角为1.8度的四相八拍永磁式步进电机。2.2步进电机的特点一般步进电机的精度为步进角的3-5%,角位移与输入脉冲数严格成正比,没有累计误差,具有良好的跟随性。步进电机外表不允许较高的温度。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。步进电机自身的噪声和振动较大,带惯性负载的能力较差。由步进电机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常的可靠。同时,它也可以与角度反馈环节组成高性能的闭环数控系统。步进电机的动态响应快,易于启停,正反转及变速。速度可在相当宽的范围内平滑调节,低速下仍能保证获得大转矩,因此,一般可以不用减速器而直接驱动负载。步进电机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源。步进电机存在振荡和失步现象,必须对控制系统和机械负载采取相应的措施。步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途。如打印机,绘图仪、数控机床切割。伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。2.3步进电机的分类现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。反应式步进电动机采用高导磁材料构成齿状转子和定子,其结构简单,生产成本低,步距角可以做的相当小,一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩,但动态性能相对较差。永磁式步进电机转子采用多磁极的圆筒形的永磁铁,在其外侧配置齿状定子。用转子和定子之间的吸引和排斥力产生转动,它的出力大,动态性能好,但步距角一般比较大。一般为两相,转矩和体积较小,步进角一般为7.5度或15度。混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度。这种步进电机的应用最为广泛,它是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定子则为齿状的突起结构。此类电机综合了反应式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机,在计算机相关的设备中多用此类电机。2.4步进电机的工作原理2.4.1步进电机结构(三相)图2-1步进电机内部结构图如图2-1所示,步进电机分为转子和定子两部分:定子:由硅钢片叠成的,定子上有6大磁极,每2个相对的磁极(N,S)组成一对,共有3对。定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。0、1/3π、2/3π,(相邻两转子齿轴线间的距离为齿距以π表示),即A与齿1相对齐,B与齿2向右错开1/3π,C与齿3向右错开2/3π,A'与齿5相对齐,(A'就是A,齿5就是齿1)。转子:由软磁材料制成,其外表面也均匀地分布着小齿,与定子上的小齿并且小齿的大小相同,间距相同。2.4.2对齿和错齿 图2-2步进电机转子展开图反应式步进电机的动力来源于电磁力,只有电机存在错齿现象才能转动。在电磁力的作用下,转子被推动到最大磁导率的位置,定子小齿与转子小齿对齐的位置,并处于平衡状态,如图2-2中的A相位置,这种现象被称为对齿。而对于三相步进电机来说,当某一相得磁极处于最大磁导位置时,另外两相必须处于非最大磁导位置,即定子和转子不对齐位置,这种现象被称为错齿。2.4.3工作原理图2-3步进电机三相接线图开始时,开关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方向转动[4]。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2-4的a,b,c所示:a)单四拍b)双四拍c)八拍图2-4步进电机工作方式2.4.4工作方式(四相)单四拍:通电顺序为:A→B→C→D;双四拍:通电顺序为:AB→BC→CD→DA;四相八拍:通电顺序为:A→AB→B→BC→C→CD→D→DA;这三种工作方式的区别,如下表所示:表2-1步进电机三种工作方式的性能比较工作方式单四拍双四拍八拍步进周期TTT每相通电时间T2T3T走齿周期4T4T8T相电流小较大最大高频性能差较好较好转矩小中大电磁阻尼小较大较大振荡容易较容易不容易功耗小大中由表2-1可以看出这三种工作方式中,八拍的性能最好,单四拍的性能最差,因此,在步进电机的控制应用中,选择合适的工作方式非常重要,本文主要研究的是四相八拍工作方式。2.4.5步进电机的常用术语齿距角:相邻两齿中心线间的夹角,通常定子和转子具有相同的齿距角。θz=2π/Z(Z是转子的齿数)步距角:指每给一个电脉冲信号电动机转子所应转过的角度的理论值。θb=θz/N=2π/NZ(N是工作拍数,Z是转子的齿数)步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。失调角:指转子偏离零位的角度。转子齿轴线偏移定子齿轴线的角度,电机转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。响应频率:在某一频率范围内步进电机可以任意运行而不会丢失一步,则这一最大频率称为响应频率。运行频率:指拖动一定负载使频率连续上升时,步进电机能不失步运行的极限频率[1]。2.5步进电机的振荡和失步步进电机的振荡和失步是一种普遍存在的现象,它影响应用系统的正常运行,因此要尽力去避免。2.5.1振荡步进电机的低频振荡是由于电机的转子达到稳定平衡位置时具有多余的动能。这种能量越大,振荡的趋势越利害,当控制脉冲的频率等于自由振荡的频率时,就发生低频振荡,或称之为低频共振。低频振荡是步进电机系统的固有的缺点。在振荡区,主要表现是步进电机的运动不平稳,振荡加剧,噪音增大,力矩下降,严重的甚至失步。减少步距角可以减少振荡幅值,以达到削弱振荡的目的。消除振荡是通过增加阻尼的方法来实现的,主要有机械阻尼法和电子阻尼法两大类。其中机械阻尼法比较单一,就是在电动机轴上加阻尼器,电子阻尼法则有多种。多相励磁法:采用多相励磁会产生电磁阻尼,会削弱或消除振荡现象。变频变压法:步进电机在在低频时绕组中的电流上升时间长,转子获得的能量大,因此容易产生振荡,在高频时则相反。所以,可以设计一种电路,使电压随频率的降低而减少,可以有效地消除振荡。细分步法:细分步法是将步进电机绕组中的稳定电流分成若干阶段,每进一步时,电流升一级。同时,也相对地提高步进频率,使步进过程平稳进行。反相阻尼法:这种方法用于步进电机制动,在步进电机转子要过平衡点之前,加一个反向作用力去平衡惯性力,使转子到达平衡点时速度为零,实现准确制动[2]。2.5.2失步电机运转时运转的步数,不等于理论上的步数,称之为失步。步进电机失步的原因有2种:1.转子的转速慢于旋转磁场的速度(或者说慢于换相速度)。例如,步进电机在启动时,如果脉冲的频率较高,由于电动机来不及获得足够的能量,使其无法令转子跟上旋转磁场的速度,所以引起失步。因此,步进电动机有一个启动频率启动时,肯定会产生失步。注意,启动频率不是一个固定值,提高电动机的转矩、减少负载转动惯量、减少步距角都可以提高步进电机的启动频率。2.转子的平均速度大于旋转磁场的速度。这主要发生在制动和突然换向时,转子获得过多的能量,产生严重的过冲,引起失步。第3章硬件电路设计3.1步进电机驱动系统步进电机不能直接接到交直流电源上工作,而必须使用专用设备——步进电机驱动器.步进电机驱动系统的性能,除与电机本身的性能有关外,也在很大程度上取决于驱动器的优劣。典型的步进电机驱动系统是由步进电机控制器、步进电机驱动器和步进电机本体三部分组成。步进电机控制器发出步进脉冲和方向信号,每发一个脉冲,步进电机驱动器驱动步进电机转子旋转一个步距角,即步进一步。步进电机转速的高低、升速或降速、启动或停止都完全取决于脉冲的有无或频率的高低。控制器的方向信号决定步进电机的顺时针或逆时针旋转。通常,步进电机驱动器由逻辑控制电路、功率驱动电路、保护电路和电源组成。步进电机驱动器一旦接收到来自控制器的方向信号和步进脉冲,控制电路就按预先设定的电机通电方式产生步进电机各相励磁绕组导通或截止信号。控制电路输出的信号功率很低,不能提供步进电机所需的输出功率,必须进行功率放大,这就是步进电机驱动器的功率驱动部分[8]。3.2控制模块本设计采用SST89E516RD单片机作为控制系统的核心。SST89E516RD单片机组成结构中包含运算器、控制器、片内存储器、4个I/O口、串行口、定时器/计数器、中断系统、振荡器等功能部件。采用HMOS制造工艺的MCS-51单片机都采用40管脚双列直插式封装,除采用40脚双列式直插式封装外,还有用方形的封装方式。40管脚双列直插式封装管脚图如3-2图所示。脉冲信号由单片机产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。信号分配实际上就是按照某一种控制方式(根据需要进行选定)所规定的顺序发送脉冲序列,达到控制步进电机方向的目的[9]。图3-2MCS-51系列单片机管脚图根据要求,所设计的步进电机八拍通电顺序为A→AB→B→BC→C→CD→D→DA。步进电机的方向控制方法是:用单片机输出接口的每一位控制一根相绕组。本设计中,用P0.0,P0.1,P0.2,P0.3分别接至步进电机的A,B,C,D四相绕组。3.3驱动模块ULN2003是高耐压、大电流、内部由七个硅NPN达林顿管组成的驱动芯片,如图3-3所示。经常在以下电路中使用,作为:显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中。图3-3ULN2003A芯片驱动模块直接采用ULN2003芯片,如图3-5所示。由单片机产生的脉冲序列和方向控制信号从P1.0~P1.3口输出,直接送入ULN2003芯片进行功率放大,达到步进电机所需的驱动电流和电压,以此驱动步进电机工作。3.4显示模块显示模块采用六位LED六段共阴数码管进行动态显示,如图3-3所示。由SST89E516RD单片机产生的段选信号从P0输出,经过1K左右的上拉排阻驱动数码管显示,位选信号从P2口输出通过74HC245直接送数码管显示。采用数码管动态显示方式,硬件电路简单、编程简便、显示信息清晰[5]。图3-3显示模块硬件电路图3.5按键模块人机交互模块采用独立式按键,中断工作方式。总共设置了4个按键,如图3-4所示,其中四个控制按键组合执行对步进电机的启动停止、正转反转、加速减速四种控制功能,由单片机的P3.2~P3.5口输入。每个按键操作有长按短按操作方式,K1短按为启动停止,长按进入模式设置;K2短按为方向设置,长按使运行模式在1与2之间切换;K3为数值加一,K4位向右移动一位数码管。图3-4按键部分电路3.6步进电机部分该设计中所用到的步进电机为四相六线步进电机。图3-5步进电机部分硬件电路图本设计中步进电机的参数:步进电机型号为PM25L-024-STB6,工作方式为四相八拍。电机是种将电脉冲转化为角位移的执行机构。当步进电机接收到一个脉冲信号,它就按设定的方向转动一个固定的角度(称为“步距角”)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率实现步进电机的调速[10]。市面上一般的步进电机内部结构图如图3-6所示。图3-6本设计步进电机的接线本设计采用的步进电机是四相六线步进电机,因生产厂家不同,其接线也有所不同。电机共引出四根线,其余两根线是公共端,经测量后可得到其正确的接线顺序,表3-1给出了电机所对应的相序。表3-1步进电机控制线红色红色橙色棕色黄色黑色公共端公共端ABCD其中,A与C是电机内部一组线圈的两个抽头,D与B是另一组线圈的两个抽头。只需以一定的顺序向步进电机四相时序供电即可使步进电机按指定方向转动。35步进电机的主要技术参数如下表3-2所示。表3-235步进电机技术参数电压相电阻步距角启动转矩(g.cm)启动频率(P.P.S)定位转矩(g.cm)5V64Ω7.5≥120≥200≥48第4章软件设计4.1程序流程图下面系统程序总流程图。图4-1系统程序流程图通过流程图分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。4.2系统主程序主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单八拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图4-2所示[6]。图4-2主程序流程图4.3定时中断设计进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。程序流程图如图4-3所示[7]。图4-3定时中断设计4.4外部中断设计外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。速度增加按钮K3为INT0中断,其程序流程为原数据,当值等于9时,不改变原数值返回,小于9时,数据加1后返回;速度减少按钮K4,当原数据不为1,减1保存数据,原数据为1则保持不变。程序流程图如图4-4所示[11]。图4-4外部中断设计第5章PCB板设计及硬件调试5.1AltiumDesigner简介Protel系列软件是当前在国内应用最为广泛的EDA设计工具之一。本设计使用的是AltiumDesigner6.4,它在单一设计环境中集成板级和FPGA系统设计、基于FPGA和分立处理器的嵌入式软件开发。在原理图绘制、PCB版图设计,编辑和制造,可编程逻辑器件(PLD)设计、仿真、板卡设计和自动布线有着诸多的优点:支持不依赖于FPGA厂商即各个厂商通用的数字系统开发。丰富的原理图库,有大量的预综合元件。在工程的设计和调试阶段都支持原理图导向设计方法。丰富的虚拟仪器。交互式布线,系统将动态显示最优布线路径,只需要敲击键盘就可以完成单个网络的布线。5.2PCB制作过程5.2.1原理图绘制PCB制作的第一步,就是绘制原理图,根据设计要求,建立PCB工程,并在PCB工程下建立原理图以及PCB(P),同时应该新建集成库工程,并在集成库下新建原理图库以及PCB元件库。在原理图绘制过程中,可选择库中已存在的元件,对于没有的元件,应参照相关元件的资料,在原理图库中新建元件,原理图库里面可新建多个元件。原理图中的线应选择正确的电线,如果电线太多过于复杂可以选择使用网络标号,网络标号名称相同的是连通的,同时因标注好对应元件值的大小。5.2.2元件封装对于已经绘制好的原理图,下一步就是对元件进行封装,双击元件—添加—Footprint,“PCB库”选择任意。单击“浏览”,选择相应的库,找到相应元件的封装,或者单击“发现”,输入封装的名称查找。如果库里面没有相应的元件的封装,则必须在集成库下的PCB元件库里面,根据芯片(元件)的资料,新建封装。做好新封装,可以在原理图库里面将新建元件关联起来,然后编译。在右方就会生成自己新建的库。5.2.3规划电路板在绘制印刷电路板之前,我们必须对所用的电路板进行初步的规划。比如是采用单面板、双面板还是多层电路板,电路板需要多大的尺寸,采用什么样的连接器,元件采用什么样的封装形式,是双列直插(DIP)还是其他形式,元件的安装位置等等。千万不要小看这步工作,它直接影响到后续工作的进行。如果在这里出现问题,很可能会对后面的工作造成很大的麻烦,甚至使设计工作无法继续进行。本设计芯片封装均采用DIP封装,电路板的尺寸控制在10*10cm以下,雕刻的是单面板。5.2.4电路板(PCB)编辑器首先根据已经封装好的原理图,生成PCB板,步骤是:设计—UpdatePCBDocment—执行更改—进入印刷电路板(PCB)编辑器的编辑环境。启动编辑器后,用户对元件的布置参数,板层参数、布线参数等进行相应的设置。其中有些参数可以直接采用系统的缺省值,有些参数必须根据设计要求进行修改,而有些参数可以根据自己的习惯进行设置。总之,参数的设定是在满足设计要求的前提下尽量符合个人习惯,所以因人而异。作图环境设置:设计—规则,线宽约束为15-30mil,大小在10*10cm以内。5.2.5布置元件在设定好电路板的尺寸和外形并装入网络表后,程序会自动装入元件,并自动将元件布置在电路板的边界内。尽管程序可以自动根据电路板的外形尺寸布置各个元件的位置,但是毕竟不可能完全满足设计的要求,因此用户还要对元件的位置进行手工调整,以便顺利地进行下面的布线工作。5.2.7自动布线与手工调整AltiumDesigner6.4的自动布线功能十分强大,只要各种参数设置合理、元件的位置得当,自动布线的成功率几乎是100%。但是,由于算法的限制以及用户的特殊要求或习惯,自动布线往往也有许多不尽人意的地方,我们还必须靠手工进行调整。手工布线中有很多至关重要的窍门,需要在操作过程中体会摸索,真正掌握了手工布线的技巧才算是真正学会了印刷电路板设计。5.2.8PCB文件的保存完成印刷电路板的布线工作后,我们应该及时地将文件进行存盘及打印输出,以备以后雕刻电路板使用。PCB板雕刻可以在学校雕刻,或者找厂家预定生产[12]。5.3本设计的PCB本设计电路板采用单层。为了使布线尽可能短,元件布局按信号流程布局。PCB板上的元器件放置的顺序为:放置与结构有紧密配合的固定位置的元器件,如电源插座、开关、连接件等,这些器件放置好后用软件的LOCK功能将其锁定,使之以后不会被误移动;放置器件;在设计PCB板时,元件的放置要考虑电路中的抗干扰能力。例如,在内部时钟方式的电路部分,晶体或陶瓷振荡器和电容尽可能安装得与单片机靠近,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。最终完成的PCB如图5-1所示。图5-1PCB图5.4硬件电路调试以上为本作品的设计过程和结果的详细介绍,但是,从本质上来讲,都是纯理论的设计和分析。为了验证作品的可行性,我还做了硬件电路,来对设计作品中设计方案的主要功能及其理论进行实际验证,如图4-4所示。同时,在软硬件电路的调试过程,也可以发现本设计作品中有没有一些不足和错误的地方。当硬件设计从布线到安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。排除逻辑故障;

排除电源故障;

排除元器件失效;

脱机调试;接入单片机调试;图4-4硬件电路调试结论本系统主要研究了一种基于单片机的步进电机控制及驱动的电路设计。设计采用SST89E516RD单片机作为控制模块的核心,利用单片机编程实现了对步进电机的控制。由单片机产生的信号经ULN2003A芯片进行功率放大,驱动步进电机工作,同时由数码管同步显示预置数和所转圈数,由相应的按键实现预置圈数、控制、清零功能。系统能够实现:预设步进电机所转圈数;启动停止、正转反转、加速减速等功能的基本控制;同步显示圈数;电机转至预置圈数内循环转动;对预置数进行清零操作。状态指示灯显示在系统设计过程中,力求硬件电路简单,充分发挥软件部分的优势,编程灵活方便来满足系统的要求。通过实际测试表明本设计系统的性能优于传统步进电机控制器,具有结构简单、可靠性高、实用性强、人机接口简单方便、性价比高等特点。本设计作品,就是单片机在智能化仪表方面的具体应用,充分体现了单片机的优越之处。本论文,从硬件设计到软件设计,根据硬件的工作原理及设计原理,对设计的设计方案做了仔细的分析和比较,最后确定下来完整可行的解决方案。为了验证设计出的系统的功能可靠性和方案的可行性,我还制作了硬件电路。硬件电路是为了验证方案原理而设计的,在调试过程中,也得到了令人满意的效果,很好的验证了设计方案的可行性。致谢大学四年即将随着毕业设计的全部完成而落幕。岁月如梭,四年中,虽然自己的专业技能不够好,但是自己的学习能力得到了提高。毕业设计是对知识的丰富,是对所学知识巩固和灵活运用的考验,是对自学能力的考验。本次设计的完成除了因为我自己查阅了大量的资料,总结并巩固了专业知识,用心做好设计外,还因为得到了老师和同学的极力帮助,让我明白了团结合作的力量是无穷的。在此,我要由衷的感谢我的指导老师,朱云芳、翟旭老师,是在他孜孜不倦和耐心细心的指导帮助下,我才得以顺利地完成设计。我还要感谢很有经验的杜海洋同学的大力支持和帮助。没有老师和这些同学一直以来的帮助,我不可能很圆满地完成设计。同时,我还要衷心感谢大学中所有教过我的老师,感谢他们将知识毫无保留的传授,感谢他们大学四年对我的敦敦教诲和关心及对我各方面的帮助,感谢陪伴我走过这难舍难忘四年时光的所有同窗,感谢你们的关心与帮助!最后,我要感谢我的父母,感谢你们这么多年对我含辛茹苦地养育和培养。参考文献[1]刘宝廷.步进电动机及其驱动控制系统.哈尔滨工业大学出版社,1997:1~200[2]丁志刚.直线步进电动机的原理控制和应用.马九荣,机械工业出版社,1994:20~90[3]蔡耀成.步进电机近期国内外发展展望.微特电机.2005年,第5期:1~3[4]王晓明.电动机的单片机控制.北京航空航天大学出版社,2002年:50~150[5]靳桅.单片机原理及C51开发技术.西南交通大学出版社,2009:93~225[6]杨宁,胡学军等.单片机与控制技术.北京航空航天大学出版社,2005:22~175[7]马忠梅.单片机的C语言应用程序设计.第三版.北京航空航天大学出版社,2011:34~72[8]谭建成.新编电机控制专用集成电路与应用.机械工业出版社.2005:15~97[9]王福瑞等.单片机微机测控系统设计大全.北京航空航天大学出版社.1998:67~85[10]陈隆昌等.控制电机.第三版.西安电子科技大学出版社.2000:35~65[11]靳桅,胡桂珍等.C语言设计.西南交通大学出版社,2000:21~90[12]江思敏等.ALTIUMDESIGNER.机械工业出版社.2009年:15~97附录1本设计原理图附录2#include<reg52.h>#include<stdio.h>#include<intrins.h>#defineucharunsignedchar#define uintunsignedintucharmode=0;ucharsetFigure=0;#defineclockwise0//顺时针 #defineanticlockwise4//逆时针#define longPressTime100//*delay(keyDelayTime:5)=1s#define FlashTime120//*delay(2)uintcountFlashTime=0;bitflashState=1;#define FlashLedOFF0x00#defineLedON0ucharcountClockwiseRound;ucharsetedClockwiseRound=50;ucharsetedClockwiseRoundDouble=50;ucharcountAnticlockwiseRound;ucharsetedAnticlockwiseRound=50;ucharsetedAnticlockwiseRoundDouble=50;ucharsingleRoundPart=0;//6equaloneroundsbitMotorRotationLed=P1^7;//ledtoshowmotorRotationucharMotorRotation=0;sbitlongPressedLed=P1^6;//sbitmotorSwitchLed=P1^5;bitmotorSwitch=1;sbitsingleRotationLed=P1^4;bitsingleRotation=1;//speed#define maxMotorSpeed9ucharmotorSpeed=1;//minSpeed=1uintcountDelayTime=0;#define maxDelayTime180//=180uintSpeedDelayTime;//sfrStepMotorPort=0x90;//P1:0~3ucharmotorStep=0;bitnextStep=1;ucharcodemotorInstruction[]={0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01};//电机正反转指令IO口的高低电平对应表////P3.0P3.1为串口sbitkey1=P3^2;//按键sbitkey2=P3^3;sbitkey3=P3^4;sbitkey4=P3^5;#definekeyDelayTime5#definekeyDown0ucharkeyCode=0;uintcountPressTime;bitkeyPressed=0;//uchartmpKeyCode;//P2口脚分开控制,使buzz不受影响sbitP20=P2^0;sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP24=P2^4;sbitP25=P2^5;unsignedchardisplay_buffer[6];//数码管显示缓存unsignedcharcodedisplay_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//数字0~9。'-'=unused voiddelay(unsignedcharData){ unsignedchari,j; for(i=0;i<=Data;i++) { for(j=0;j<60;j++)//140 28 { _nop_();//空指令,起消耗CPU的时间的作用。 } }}voiddisplay(void){// 显示辅助函数 unsignedchari; P20=0;//赋初值,P2.0为低电平,让数码管最右一位点亮 P0=0;//将P0口的全部信息关闭 for(i=0;i<6;i++) { P0=display_buffer[i]; delay(2); P0=0;//将P0口的全部信息关闭.屏蔽余辉效应。 switch(i)//P2口脚分开控制,使buzz不受影响 { case0:P20=1;P21=0;break; case1:P20=1;P21=1;P22=0;break; case2:P20=1;P21=1;P22=1;P23=0;break; case3:P20=1;P21=1;P22=1;P23=1;P24=0;break; case4:P20=1;P21=1;P22=1;P23=1;P24=1;P25=0;break; case5:P20=0;P21=1;P22=1;P23=1;P24=1;P25=1;break;} }} voiddisplayLED(void){ motorSwitchLed=!motorSwitch; singleRotationLed=!singleRotation; longPressedLed=!LedON;//ledOFF if(MotorRotation==clockwise)MotorRotationLed=LedON; elseMotorRotationLed=!LedON;}voidgetDispalyBuffer(void){ switch(mode){ case0://默认模式 display_buffer[5]=display_code[mode]|0x80; display_buffer[4]=display_code[motorSpeed]|0x80; display_buffer[3]=display_code[countClockwiseRound/10];// display_buffer[2]=display_code[countClockwiseRound%10]|0x80; display_buffer[1]=display_code[countAnticlockwiseRound/10];// display_buffer[0]=display_code[countAnticlockwiseRound%10]; break; case1://设置单向转动圈数 display_buffer[5]=display_code[mode]|0x80; countFlashTime++; if(countFlashTime>FlashTime){ countFlashTime=0; flashState=!flashState; } if(flashState){//show display_buffer[3]=display_code[setedClockwiseRound/10];// display_buffer[2]=display_code[setedClockwiseRound%10]|0x80; display_buffer[1]=display_code[setedAnticlockwiseRound/10];// display_buffer[0]=display_code[setedAnticlockwiseRound%10]; }else{//notshow switch(setFigure){ case0: display_buffer[3]=FlashLedOFF;// display_buffer[2]=display_code[setedClockwiseRound%10]|0x80; display_buffer[1]=display_code[setedAnticlockwiseRound/10];// display_buffer[0]=display_code[setedAnticlockwiseRound%10]; break; case1: display_buffer[3]=display_code[setedClockwiseRound/10];// display_buffer[2]=FlashLedOFF; display_buffer[1]=display_code[setedAnticlockwiseRound/10];// display_buffer[0]=display_code[setedAnticlockwiseRound%10]; break; case2: display_buffer[3]=display_code[setedClockwiseRound/10];// display_buffer[2]=display_code[setedClockwiseRound%10]|0x80; display_buffer[1]=FlashLedOFF;// display_buffer[0]=display_code[setedAnticlockwiseRound%10]; break; case3: display_buffer[3]=display_code[setedClockwiseRound/10];// display_buffer[2]=display_code[setedClockwiseRound%10]|0x80; display_buffer[1]=display_code[setedAnticlockwiseRound/10];// display_buffer[0]=FlashLedOFF; break; } } break; case2://设置双向转动圈数 display_buffer[5]=display_code[mode]|0x80; countFlashTime++; i

温馨提示

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

评论

0/150

提交评论