课程设计终极版_第1页
课程设计终极版_第2页
课程设计终极版_第3页
课程设计终极版_第4页
课程设计终极版_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、 电力电子课程设计 指导教师评定成绩: 审定成绩: 重 庆 邮 电 大 学自 动 化 学 院 设计题目:基于51单片机的步进电机模型控制 单位(二级学院): 自 动 化 学 院 学 生 姓 名: 专 业: 电气工程与自动化 班 级 0831104 指 导 教 师: 程安宇 设计时间: 2014年5月 目 录 目 录1摘 要11.绪论22.工作原理及设计方案33.步进电机控制及驱动系统电路设计84.电路原理图及PCB板图115.调试与仿真116.数据分析127.结 论138.附录表15摘要 国内控制器的研究起步较晚,运动控制技术为一门多学科交叉的技术,是一个以自动控制理论和现代控制理论为基础,包

2、括许多不同学科的技术领域。如电机技术、电力电子技术、微电子技术、传感器技术、控制理论和微计算机技术等,运动控制技术是这些技术的有机结合体。总体上来说,国内研究取得很大的进步,但无论从控制器还是从控制软件上来看,与国外相比还是具有一定差距。 传统上由纯电路设计的步进电机控制和驱动电路一般较复杂,成本又高,而且一旦成型就难于修改,可移植性差,难以适应一些智能化要求较高的场合。单片机的普及与应用,为步进电机的应用开辟了广阔的前景,使得以往用硬件电路构成的庞大复杂的控制器得以用软件实现,将会避免复杂电路的设设计,既降低了硬件成本又提高了控制的灵活性、可靠性及多功能性。本文主要介绍了步进电机的基本原理及

3、AT89C51单片机的性能特点。设计主要研究了一种基于AT89C51单片机和L297和L298驱动芯片的步进电机控制及驱动电路系统。该系统可分为:控制模块、驱动模块、显示模块、人机交互模块四大部分。其中采用AT89C51单片机作为控制模块的核心,利用单片机编程实现了对步进电机启动停止、正转反转、加速减速等功能的基本控制。驱动模块由L297和L298驱动芯片驱动步进电机工作;显示部分由四段LED共阴数码管组成;人机互换部分由相应的按键实现相应的功能。通过实际测试表明本设计系统的性能优于传统步进电机控制器,具有结构简单、可靠性高、实用性强、人机接口简单方便、性价比高等特点。关键词: AT89C51

4、单片机 驱动电路 控制 步进电机 1、问题概述1.1设计的题目步进电机模型控制-实现步进电机模型的控制,并根据上位机的控制要求,显示电机速度和电机的当前速度。串口单片机串口步进电机驱动模块 PC机显示模块按键模块 图 1、系统框图 单片机通过电机驱动电路控制步进电机的运转,通过按键输入步进电机的旋转角度,并能够在LED上显示目标角度与实际运行的情况。PC机通过串口与单片机通信,显示步进电机的运行情况。2、工作原理及设计方案2.1 步进工作原理 步进电机是一种把电脉冲信号变成直线位移或角位移的控制电机,其位移速度与脉冲频率成正比,位移量与脉冲数成正比。步进电机在结构上也是由定子和转子组成,可以对

5、旋转角度和转动速度进行高精度控制。当电流流过定子绕组时,定子绕组产生一矢量磁场,该矢量场会带动转子旋转一角度,使得转子的一对磁极磁场方向与定子的磁场方向一着该磁场旋转一个角度。因此,控制电机转子旋转实际上就是以一定的规律控制定子绕组的电流来产生旋转的磁场。每来一个脉冲电压,转子就旋转一个步距角,称为一步。根据电压脉冲的分配方式,步进电机各相绕组的电流轮流切换,在供给连续脉冲时,就能一步一步地连续转动,从而使电机旋转。步进电机每转一周的步数相同,在不丢步的情况下运行,其步距误差不会长期积累。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,同时步进电机

6、只有周期性的误差而无累积误差,精度高,步进电动机可以在宽广的频率范围内通过改变脉冲频率来实现调速、快速起停、正反转控制等。2.2设计方案 设计要求:设计步进电机控制器硬件电路图,并使用相应的软件实现硬件和软件的仿真、调试。实现功能如下:(1)控制步进电机实现正转和反转;(2)控制步进电机转速;(3)设计步进电机的驱动电路,能驱动相电压为12V的步进电机工作;(4)实现对步进电机圈数的预置;(5)同步显示步进电机速度。 根据步进电机的特点,基于AT89C51单片机的步进电机控制及驱动电路设计。整个系统可分为:AT89C51单片机系统控制器、驱动电路、数码管显示、按键输入模块及电源电路五大部分,如

7、图2所示。本设计方案采用AT89C51单片机作为控制模块的核心,利用软件编程使单片机输出脉冲序列和方向控制信号,以此实现对步进电机启动停止、正反转、加减速的控制。驱动电路部分由L297和L298驱动芯片和必要的外围电路组成,单片机产生的信号经驱动电路使其功率放大,达到电机所需的驱动电压和电流由此驱动步进电机工作。由四段LED共阴数码管实现步进电机预置圈数和所转圈数的同步显示。用相应的按键实现预置圈数设置和清零的功能。 图2、基于AT89C51单片机的步进电机控制及驱动系统图 3、系统的组成3.1模块介绍3.1.1控制模块采用AT89C51单片机作为系统控制的核心。利用单片机编程产生步进电机所需

8、脉冲序列和方向控制信号。单片机算术运算功能强、软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本低,且可对其进行扩展,附带显示设备,键盘输入等设备,使用方便。还可通过软件编程实现对步进电机的位置、速度预设及显示。步进电机位置和速度实际上跟单片机产生脉冲的个数和脉冲频率是一一对应关系,而方向由导电顺序决定。并且,由于单片机芯片引脚少,软硬件连接简便灵活,硬件容易实现。3.1.2驱动模块在步进电机驱动模块中,采用了带光耦隔离,抗干扰能力强的TLP521作为隔离电流保护芯片,其中L297的17脚通过给高低电平来控制步进电机的正反转,而18脚为步进时钟输入

9、端,控制每个步数的时间增量,19脚步进电机的半步或者整步的选择,10脚为使能控制端,来控制电机的启停,而经过内部包含 4 信道逻辑驱动电路、高压、大电流双 H 桥式驱动器L298来控制电机的正反转,8个二极管起着续流保护的作用。3.1.3显示模块采用LED四段共阴数码管进行动态显示。AT89C51单片机输出的脉冲序列经过上拉电阻驱动数码管显示。采用数码管动态显示方式,硬件电路简单、编程简便、显示信息清晰、器件价格低廉,但占用单片机I/O口较多。3.2主要元器件介绍3.2.1 四相六线步进电机的介绍步进电机工作原理:该设计中所用到的步进电机为四相六线步进电机,它是采用单极性直流电源供电。只要对步

10、进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图是该四相步进电机工作原理示意图。四相步进电机步进示意图 图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方向转动。 四相步进电机按照

11、通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图中a、b、c所示。图4、步进电机工作时序波形模组配备的步进电机为25BY2406电机,工作方式为双极性四相。电机是种将电脉冲转化为角位移的执行机构。当步进电机接收到一个脉冲信号,它就按设定的方向转动一个固定的角度(称为“步距角”)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率实现步进电机的调

12、速。 市面上一般的步进电机内部结构图如图所示。图5、 步进电机的接线本设计采用的步进电机是25BY2406,因生产厂家不同,其接线也有所不同。电机共引出四根线,其余两根线是公共端,经测量后可得到其正确的接线顺序,表3.1给出了电机所对应的相序。表1 步进电机控制线控制线颜色黑橙棕黄控制线名称ABCD其中,C与D是电机内部一组线圈的两个抽头, A与B是另一组线圈的两个抽头。只需以一定的顺序控制两组线圈中的电流方向即可使步进电机按指定方向转动。25BY2406的主要技术参数如下表2所示。表2 步进电机25BYJ1201技术参数电压相电阻步距角启动转矩(g.cm)启动频率(P.P.S)定位转矩(g.

13、cm)512V2015120200483.2.2 AT89C51单片机芯片介绍本设计采用AT89C51单片机作为控制系统的核心。AT89C51单片机组成结构中包含运算器、控制器、片内存储器、4个I/O口、串行口、定时器/计数器、中断系统、振荡器等功能部件。采用HMOS制造工艺的MCS-51单片机都采用40管脚双列直插式封装,除采用40脚双列式直插式封装外,还有用方形的封装方式。40管脚双列直插式封装管脚图如6 图6、 MCS-51系列单片机管脚图3.2.3驱动模块L297和L298介绍  L298N的原理L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用1

14、5脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。使用L298N芯片驱动电机,该芯片可以驱动两个二相电机,也可以驱动一个四相电机,可以直接通过电源来调节输出电压;并可以直接用单片机的I/O口提供信号;而且电路简单,使用比较方便。   

15、;L297的原理L297芯片是具有20个引脚的双列直插式塑胶封装的步进电动机控制器(包括集成的硬件环形分配器)。它可产生四相驱动信号,能用半步(八拍)和全步(四拍)等方式驱动单片机控制两相双极或四相单极步进电机。该芯片内部的PWM斩波器允许在关模式下控制步进电动机绕组电流,由于相序信号也是由内部产生的,因此它只需要时钟、方向和模式输入信号便能控制步进电动机,可减轻微处理器和程序设计的负担。L297单片步进电动机控制器集成电路的核心是脉冲分配器,L297还设有两个PWM斩波器来控制线绕组电流,实现恒流斩波控制,以获得良好的转矩-频率特性。适用于双极性两相步进电动机或单极性四相步进电动机的控制。L

16、297只需从上位机接受方向(正反转),模式(半步基本步距),时钟(步进脉冲)3个输入信号。它产生3种相序的信号,对应于3种不同的工作方式:半步方式(四相八拍);基本步距,单相激励方式(单相四拍);基本步距,两相激励方式(两相两拍)。其工作方式输出的波形如图46所示,初状态(HOME)是ABCD= 0101。L297是20脚双列直插式塑料封装,常以+5V供电。该单片步进电机控制器集成电路的核心是脉冲分配器,L297还设有两个PWM斩波器来控制绕组电流,实现恒流斩波控制,以获得良好的转矩-频率特性,实用于双极两相步进电机或者单极四相步进电机的控制。 3.2.4共阳数码管简介四位共阳数码管的管脚分配

17、如下图7所示: 图7数码管的管脚排列:从数码管的正面观看,左下角的那个脚为1脚,从1脚开始,按照逆时针方向排列依次是1脚到12脚,其中12、9、8、6为公共角,为位选信号输入端。剩余的八个脚是段选信号输入端,其对应方式是A-11、B-7、C-4、D-2、E-1、F-10、G-5、DP-3。只有详细的了解了数码管的管脚定义,以及段选位选情况,我们才能通过编程对其正常的显示进行很好的控制。在本设计当中采用了数码管动态扫描的方式进行显示,下面我们对数码管动态扫描显示作一详细介绍。数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d

18、,e,f,g,dp "的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给

19、人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。4、步进电机控制及驱动系统电路设计4.1 硬件设计 根据之前各元器件的功能原理步进电机控制及驱动系统的详细电路设计如下:4.1.1步进电机部分控制模块采用ATMEL公司的AT89C51单片机作为系统控制的核心,如图9所示。脉冲信号由单片机产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。信号分配实际上就是按照某一种控制方式(根据需要进行选定)所规定的顺序发送脉冲序列,达到控制步进电机方向的目的。根据要求,所设计的步进电机八拍通电顺序为AABBBCCCD

20、DDAA。步进电机的方向控制方法是:用单片机输出接口的每一位控制一根相绕组。本设计中,用P3.0,P3.1,P3.2,P3.3分别接至步进电机的A,B,C,D四相绕组。 图84.1.2驱动电路的设计 图9、步进电机驱动电路原理图 图10、 步进电机驱动电路PCB图原理分析:电机转动过程中需要精密测出相应转过的角度,这就要求电机的灵敏度高,受惯性的影响较小,所以直流电机不满足要求。故我们采用了带光耦隔离,利用抗干扰能力强的TLP521作为隔离保护;利用L297进行PWM脉宽平滑调速与输出限流保护;利用L298实现电机驱动及其正反转,并采用二极管进行续流保护。如图所示,在步进电机驱动模块中,采用了

21、带光耦隔离,抗干扰能力强的TLP521作为隔离电流保护芯片,其中L297的17脚通过给高低电平来控制步进电机的正反转,而18脚为步进时钟输入端,控制每个步数的时间增量,19脚步进电机的半步或者整步的选择,10脚为使能控制端,来控制电机的启停,而经过内部包含 4 信道逻辑驱动电路、高压、大电流双 H 桥式驱动器L298来控制电机的正反转(如图11)。其中图10上的8个二极管起着续流保护的作用。图11、 L298内部原理图4.1.3数码管显示电路设计 本设计的显示部分可以用液晶显示的方案可供选择,液晶显示和数码管显示的区别主要体现在以下几个方面:数码管显示内容单一,而液晶显示器显示内容丰富,因为液

22、晶一般都是七段八字的只能显示单一的内容,而液晶显示的内容就很丰富;数码管还比液晶显示耗电,而且使用液晶也比使用数码管显得美观。但是控制液晶显示器的时候占用的系统资源多,编程更复杂,最关键的是液晶显示的成本是数码管的几十倍,所以考虑到应用价值,最终还是确定选用数码管实现本设计的显示部分功能。本设计选用了数码管显示设计,其段选的控制A、B、C、D、E、F、G、DP按照数码管的简介资料选用了P 0口作为其控制端口,其位选部分由于单片机的控制端口输出的电压不足以直接点亮数码管,所以在单片机控制端口和数码管的位选控制端口加入了三极管,其具体的电路连接如图12所示。图12、 数码管显示电路 。 (5)步进

23、电机部分,该设计中所用到的步进电机为四相六线步进电机,步进电机部分硬件电路图4.2 软件设计综合以上选取的方案4.2.1电路原理图及PCB板图图13、电路原理图 图14、PCB板图4.2.2程序与流程图总的流程如图所示 图15、系统程序流程图整个程序采用C 语言编程,使程序简单易读,在整个过程中采用模块化调试,可靠性好。详细的源程序见附录。4.3 调试与仿真系统电路软件仿真的步骤如下:(1)打开protuse仿真软件;(2)在软件的元器件库中选择所需的器件;(3)按照硬件电路设计方案连线;(4)加载编译好的HEX文件;(5)运行、调试;(6)如有错误或与设计预期不相符,则继续进行步骤35,进行

24、调试,至到调试成功。系统仿真如图所示。 图16 5、结论通过系统的设计实现了预期的设计目标,完成了全部的设计任务,具体如下:完成了整个系统的硬件设计和软件编程,能通过键盘电路控制步进电机的转速,实现启动、停止、正转、反转、加速、减速控制;通过编程实现了通过单片机能输出四相的脉冲控制序列。整个电机的转速能通过数码管显示出来;整个的成果形式是最终以步进电机控制电路仿真的形式展示出来了。 由于在本次设计中更多的是注重整体功能的实现,注重的是操作简单,采用了闭环控制的方式,电机也是选用的最常用的步进电机了通过在本设计中的学习和查阅各类资料,想要得到更高性能的控制,可以选用混合式步进电机,采用细分驱动电

25、路。 此外,在设计的过程中考虑到时间和成本的问题,没有完成焊接出电路板的任务。仿真程序和显示状态和实际的电路板操作始终是有差距的,而且仿真也会由于时间延迟出现一些误差。但是我们这次采用了protel画出了模拟电路原理图和PCB板图,所以,还是收获很大。如果有机会,下次希望能做出实物来,实现各种功能。参考文献1 刘宝廷.步进电动机及其驱动控制系统M.哈尔滨:哈尔滨工业大学出版社,1997,1200.2 王晓明. 电动机的单片机控制M. 北京:北京航空航天大学出版社,2002,50150.3 王福瑞 等.单片机微机测控系统设计大全M.北京:北京航空航天大学出版社,1998,6785.4 胡寿松.

26、自动控制原理M. 北京: 国防工业出版社,2000,4388.5 杨宁 胡学军.单片机与控制技术M.北京:北京航空航天大学出版社,2005,22175.6 陈隆昌,等.控制电机( 第三版)M.西安:西安电子科技大学出版社,2000,3565.7 杨宁 胡学军.单片机与控制技术M.北京:北京航空航天大学出版社,2005,2392.8 马忠梅,等.单片机的C语言应用程序设计(第三版)M北京:北京航空航天大学出版社,2003,3472.9 韩全力单片机控制技术及应用M北京:电子工业出版社,2004,2167.10谭建成新编电机控制专用集成电路与应用M北京:机械工业出版社2005,15附录表 附录1

27、电路原理图与PCB板图 图14、PCB板图附录2 仿真电路图附录3 脉冲波形图附录4 串口通信模块显示附录5 C语言源程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar code fan=0xfc,0xf9,0xf3,0xf6; /反转控制字uchar code zheng=0xfc,0xf6,0xf3,0xf9; /正转控制字uint code X=55295,46081,39497,34561,30719,27640,25133,23036,21266,19748,18430,

28、17280,16263,15359,14551,13822,13165,12566,12020,11519,11059,10633,10239,9874,9533,9215,8918,8640,8377,8131,7899,7679,7472,7275,7088,6911,6742,6582,6429,6283,6143,6009,5881,5760,5642,5528,5420,5316,5216,5119,5026,4937,4850,4766,4685,4607,4532,4458,4387,4319,4253,4188,4126,4065,4006,3949,3893,3839,378

29、6,3736,3686,3637,3590,3544,3499,3456,3412,3371,3330,3291,3252,3214,3177,3141,3105,3071,3037,3004,2972,2940,2909,2880,2849,2821,2792,2764,2737,2710,2684,2658,2633,;uchar led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00; /共阴极码uint code speed=10,20,30,40,50,60,70,80,90,100,110,120,130,140,150

30、,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900

31、,910,920,930,940,950,960,970,980,990,1000;sbit qidong=P10;sbit tingzhi=P11;sbit zf=P12;sbit xsqh=P13;sbit jiasu=P14;sbit jiansu=P15;sbit P3_4=P34;sbit P3_5=P35;sbit P3_6=P36;sbit P3_7=P37;sbit P3_0=P30;sbit P3_1=P31;sbit P3_2=P32;sbit P3_3=P33; uint L,N,M,K,speednow,Q;uint cesu;uchar T1count,beforec

32、ount,aftercount;bit flag;/flag为1正转,flag为0反转bit star_flag;/启动为1,停止为0bit xianshi_flag; /测速为1,设定速度为0bit beforechange;bit afterchange;void delayuln(void) /1ms误差 0us unsigned char a,b,c; for(c=1;c>0;c-) for(b=110;b>0;b-) for(a=2;a>0;a-);void delayled(uchar i) uchar j,k; for(j=i;j>0;j-) for(k=

33、100;k>0;k-);void delaykey(void) /10ms误差 -0.000000000002us unsigned char a,b; for(b=100;b>0;b-) for(a=3;a>0;a-);void display(uint s) /显示函数 uint ge,shi,bai,qian; ge=s%10; shi=s/10%10; bai=s/100%10; qian=s/1000%10; P3_4=0; P0=ledge; delayled(50); P3_4=1; P3_5=0; P0=ledshi; delayled(50); P3_5=1; P3_6=0; P0=ledbai; delayled(50); P3_6=1; P3_7=0; P0=ledqian; delayled(50); P3_7=1; void motor_zf() /换向程序if(star_flag=0)flag=!flag;P3_2=!P3_2;elsebefore

温馨提示

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

评论

0/150

提交评论