步进电机控制器实训论文说明书.doc

上传人:仙人指路1688 文档编号:3972130 上传时间:2023-03-30 格式:DOC 页数:28 大小:212KB
返回 下载 相关 举报
步进电机控制器实训论文说明书.doc_第1页
第1页 / 共28页
步进电机控制器实训论文说明书.doc_第2页
第2页 / 共28页
步进电机控制器实训论文说明书.doc_第3页
第3页 / 共28页
步进电机控制器实训论文说明书.doc_第4页
第4页 / 共28页
步进电机控制器实训论文说明书.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《步进电机控制器实训论文说明书.doc》由会员分享,可在线阅读,更多相关《步进电机控制器实训论文说明书.doc(28页珍藏版)》请在三一办公上搜索。

1、编号: 单片机综合设计实训论文说明书题 目: 步进电机控制器 院 (系): 专 业: 学生姓名: 学 号: 指导教师: 2012年 06月18日摘 要步进电动机由于用其组成的开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。本文介绍的是一种基于单片机的步进电机的系统设计,用C语言编写出电机的正转、反转、加速、减速程序,通过单片机、电机的驱动芯片ULN2003以及相应的按键实现以上功能,并且步进电机的工作状态要用LCD1602显示出来。本文内容介绍了步进电机以及单片机原理、该系统的硬件电路、程序组成,同时对软、硬件进行了调试,同时介绍了调

2、试过程中出现的问题以及解决问题的方法。该设计具有思路明确、可靠性高、稳定性强等特点,通过调试实现了上述功能。关键词:步进电机;驱动机构;单片机;转动AbstractThe open-loop system which is composed by step-motor is simple, cheap and very practical, so there are very wide range of applications in printers and other office automation equipment and various control devices, and

3、many other fields. This article describes one design of step-motor system based on microcontroller.The program of the preparation of a motor , reverse, speed up, slow down, stop is written by compile language. The above functions are realized through the microcontroller, motor driver chip ULN2003 an

4、d correspond key , and the work state of stepper motor is diaplayed through the light-emitting diode. This article introduces the principle of stepper motor and single-chip microcomputer, the system hardware circuit, the program components, while software and hardware for the debugging, at the same

5、time introduces the problems which are appeared in the debugging process and the solutions of the problems . The design has the advantages of clear , high reliability, strong stability, etc.,and the above-mentioned functions are realized through the debugging. Key Words: Stepper motor; Pulse-width m

6、odulated; driving mechanism; singlechip; rotation目 录1 绪论11.1 步进电机及其发展11.2 步进电机的分类11.3 课题研究的目的和意义12 系统总体方案22.1 系统总体规划22.2 器件介绍32.2.1单片机AT89S5232.2.2 LCD1602介绍42.2.3 UIN2003驱动芯片43 硬件设计53.1 控制电路53.2最小系统63.3显示电路73.4总体电路84 系统软件设计84.1 系统主程序84.2 正反转部分94.3 加速部分94.4 减速部分105 系统的仿真与调试105.1硬件调试116 心得体会11谢 辞13参考

7、文献14仿真图15PCB图15附 录一161 绪论1.1 步进电机及其发展步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应作用,将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,卫星天线定位系统等等。随着经济的发展,技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。1.2 步进电机的分类步进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型。按结构特点电磁式步进电机可分为反应式(VR)、永磁式(P

8、M)和混合式(HB)三大类;按相数分则可分为单相、两相和多相三种。目前使用最为广泛的为反应式和混合式步进电机。(1)反应式步进电机(Variable Reluctance,简称VR)反应式步进电机的转子是由软磁材料制成的,转子中没有绕组。它的结构简单,成本低,步距角可以做得很小,但动态性能较差。反应式步进电机有单段式和多段式两种类型;(2)永磁式步进电机(Permanent Magnet,简称PM)永磁式步进电机的转子是用永磁材料制成的,转子本身就是一个磁源。转子的极数和定子的极数相同,所以一般步距角比较大。它输出转矩大,动态性能好,消耗功率小(相比反应式),但启动运行频率较低,还需要正负脉冲

9、供电;(3)混合式步进电机(Hybrid,简称HB)混合式步进电机综合了反应式和永 磁式两者的优点。混合式与传统的反应式相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低1.3 课题研究的目的和意义步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入

10、脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。2 系统总体方案2.1 系统总体规划本次

11、实训主系统确定设计要求如下:在速度模式下控制电机的启动/停止,正转/反转控制。电机速度可调并显示转速。实现步进电机的细分控制。控制器满足步进电机的幅频特性。总体规划流程如下图1所示确定设计方案使用PROTEL设计电路图根据电路图编写程序流程图使用KEIL编写程序调试 做PROTEUS仿真生成.HEX文件购买元件焊制硬件实物完成设计不成功成功不成功成功 图1 总体规划流程图2.2 器件介绍2.2.1单片机AT89S52主要性能 标准AT89S52内核和指令系统 片内8kROM(可扩充64kB外部存储器) 32个双向I/O口 256x8bit内部RAM(可扩充64kB外部存储器) 3个16位可编程

12、定时/计数器 时钟频率3.5-12/24/33MHz 向上或向下定时计数器 改进型快速编程脉冲算法 6个中断源 5.0V工作电压 全双工串行通信口 布尔处理器帧错误侦测 4层优先级中断结构自动地址识别 兼容TTL和CMOS逻辑电平 空闲和掉电节省模式 PDIP(40)和PLCC(44)封装形式图2 AT89S52性能图 图3 AT89S52引脚图2.2.2 LCD1602介绍1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距

13、和行间距的作用,正因为如此所以他不能显示图形 n1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 图4 LCD1602引脚图1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VDD接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为

14、寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第714脚:D0D7为8位双向数据端。 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 2.2.3 UIN2003驱动芯片ULN2003 是高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片。 经常在以下电路中使用,作为显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下

15、它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。ULN2003 的封装采用DIP16 或SOP16 。ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。每对达林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。 显示电路主要包括大型LED数码管BSI20-1(共阳极,数字净高12 cm)和高电压大电流驱动器ULN2003,大型LED数码管

16、的每段是由多个LED发光二极管串并联而成的,因此导通电流大、导通压降高。ULN2003是高压大电流达林顿晶体管阵列电路,他具有7个独立的反相驱动器,每个驱动器的输出灌电流可达500 mA,导通时输出电压约1 V,截止时输出电压可达50 V。ULN2003的17脚为信号输入脚,依次对应的输出端为1610脚,8脚为接地端。当驱动电源电压为+12 V时,若要求数码管每段导通电流为40 mA,则每段的限流电阻为50。则一块ULN2003恰好驱动一个LED数码管的7段。大数码管采用共阳极接法,低电平有效。锁存器输出的电平经NPN三极管9014反相后,再由ULN2003放大后推动大数码管显示.3 硬件设计

17、本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路主要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。3.1 控制电路根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,控制电路如图5所示。当按键的状态变化时,内部程序检测P3.2和P3.3的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率

18、,从而控制电机的转速。对于单片机而言,主要的方法有:软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过按键控制外部中断根据按键次数,改变速度值存储区中的数据,这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。图5 控制电路原理图3.2最小系统单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。复位电路:使用了独立式键盘,单片机的P1口键盘的接口。该设计要求只需4个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了6路独立式键

19、盘。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,晶振电路用30PF的电容和一12M晶体振荡器组成为整个电路提供时钟频率。如图3-2示。晶振电路:8051单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。在引脚XTAL1和XTAL2外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图5示。其电容值一般在530pf,晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用

20、电路实用较多。图6 复位及时钟振荡电路3.3显示电路在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为10级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的P0口和P2口。采用LCD1602作显示。第一用于显示电机正反转,运转状态和档位,正转时显示“”,反转时显示“”,加速时速度随机增加,减速时以速度随机减小。显示电路如图7所示。图7 显示电路3.4总体电路 把各个部分的电路图组合成总电路图,如图8所示。图8 总体电路图4 系统软件设计4.1 系统主程序系统分为电机正反转、电机加速与电机

21、减速状态显示几部分组成,其主程序框图如图9所示。 开始 显示状态 调按键子程序 调按键子程序调用正反转子程序 调用加减速子程序 停止图9 主程序框图4.2 正反转部分查键程序用于判断P3.3口的值,当P3.3为低电平时,按键有效,电机转动方向改变,再次按下按钮,电机方向改变。如图10所示。 调按键子程序P3.3是否为0 是 电机转向 图10查键部分流程图 4.3 加速部分当电机正转或反转的时候,按下加速键,调用加速子程序,使电机每转动一步的延时时间变短,从而实现电机的加速,设初始速度为R1.流程图如图11所示。 开始 P3.0=0 Y (DW)-1)DW N 正反转子程序图11 加速部分流程图

22、4.4 减速部分电机正转或反转的时候,按下减速键,通过改变电机每转动一步的延时时间,使时间变长,从而实现电机减速,设初始速度为R1.流程图12所示。 开始 P3.1=0 Y (DW)+1)DW N 正反转子程序图12 减速部分流程图 5 系统的仿真与调试本设计采用单片机AT89S52做为控制器,通过编译软件KEIL C51对源程序进行编译以生成HEX,并与仿真软件proteus联调,让单片机程序控制协调各个功能模块工作。5.1硬件调试仿真完全实现其所需的功能以后,并在接入电源之前,用万用表对整个电路进行检查,查看是否在联线过程中是否出现问题。检查硬件电路内容入下所示:检查线路的焊接问题。检查电

23、路是否有没接的线路。各种外围器件有没接错。在接上电源以后看芯片是否都是在正常工作电压下工作,其它器件是否正常工作等。6 心得体会 通过这次课程设计,更深一步掌握了51单片机的原理,了解了简单步进电机控制系统的组成原理,并初步掌握了步进电机设计及测试方法。提高了动手能力和排除故障的能力。同时通过本次设计与调试,巩固了已学的理论知识,之前一直都是局限于书本的只是,这次实训通过自己编写程序,画电路图,做出电路板,下载程序,调试程序的整个过程,将软件跟硬件结合起来,组成一个完整的具有一定功能的系统,将单片机的理论和实践相结合,了解到步进电机各单元电路之间的关系及影响,从而能正确设计、计算定时计数的各个

24、单元电路。设计初始,打算用红外对管来测电机的转速,但考虑到电机的转速比较慢,用对管比较难检测,所以采用定时器给单片机送驱动编码,然后根据定时器的时间计算转速。由于数码管可显示的信息太少,改用LCD1602显示,可同时显示电机的运行转态,转向,转速及档位等信息。刚开始想用L298做电机驱动电路,考虑到电机性能及芯片的驱动能力,L298最大电流可达2.5A,同时考虑到成本问题,改用ULN2003做驱动芯片,降低成本。看到题目的发挥部分,实现电机的细分,要么用PWM,要么用专门的电机细分芯片, 但是这些芯片都比较贵,而且在外面也不好买到,只好放弃了。初步掌握步进电机控制系统的设计及测试方法,提高了动

25、手能力和排除故障的能力。 本次设计能够实现步进电机的启停、正反转以及速度的调节,通过本次课程设计加强了我对软件编程和硬件设计的掌握,步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等,所以说步进电机有着广阔的市场和远大的发展前景。本设计实现了占用CPU时间少,效率高;易于控制步进电机的转向转速;提高了步进电机的步进精度等。再有,本设计过程考虑比较周全,可以方便灵活地控制步进电机的运行状态,以满足不同的要求,因此常把单片机步进电机控制电路称之为可编程步进电机控制驱动器。步进电机控制(包括控制脉冲的产生和分配)使用软件方法,即用单片

26、机实现,这样既简化了电路,也减低了成本。这次设计使我们学到了以前书本知识中所不曾了解的知识,更加明白了在如今的信息时代下电子技能知识的重要性,丰富了我们对实际工艺技术、电子技术和设备技术等方面的认识,掌握了分析问题、处理问题的方法以及调试、计算等基本技能,使实际工作能力得到了有效提高。谢 辞两周的实训就这样匆匆而过,被时间刻印下来的除了昨日历历在目的实训情景还有我的无限感恩。要感激在平时学习中给我提供帮助的老师、学长及其他的同学,感激他们在我困惑时的指点迷津。此外,感谢我们学院为我们提供这次机会。感谢我的同学在实训与调试过程中给予的帮助,有了他们的帮助,我少走了很多的弯路。同时也要感谢科协、感

27、谢实验室,感谢它们在我们实训过程中为我们提供的动手的场地与器材,是它们让我们有了更多的条件去学习,让我们有了更多锻炼自己的机会,让我们学到了很多很多。学校开展实训这样的课题,使我受益匪浅,从中使我在很短的时间里学到了很多很书本上没有的知识,而且让我对以前学过的知识有了更深刻的印象,同时也发现了自己知识的一些缺陷,因而我还要感谢学校,感谢学校安排实训这个课程,感谢学校为了让每个同学在实训中能够学有所成学有所得而做出的努力。参考文献 1 张友德.单片微型机原理、应用与实验M.上海:复旦大学出版社,2005.2 李夙.异步电动机直接转矩控制M.北京:机械工业出版社,1998.3 王鸿钰.步进电机控制

28、入门M.上海:同济大学出版社,1990.4 袁任光,张伟武.电动机控制电路选用与258实例M.北京:机械工业出版社,2005. 5 阎石.数字电子技术M.北京:高等教育出版社,2006.5 6 王兆安,黄俊.电力电子技术M.北京:机械工业出版社,2010.1 7 许建国.电机与拖动基础M.北京.高等教育出版社,2004.8 8 王德安基于单片机的步进电机控制J.计算机应用,2005.第3期.52仿真图PCB图附 录一程序:#include #define LCDP P0/定义LCM 资料汇流排接至P0sbit RS=P20; /暂存器选择位元(0:指令,1:数据)sbit RW=P21;sbi

29、t EN=P22; /致能位元 (0:禁能,1:致能)char line1=28BYJ-48 motor;char line2=control system;char line11=DW:;char line22=V:.r/min;char line13=Stoping;char line14=Running; sbit K1=P32; /电机启动控制sbit K2=P33;/方向控制sbit K3=P30; /减速sbit K4=P31; /加速char speed=5; /档位为5bit on_off=1; /开机运行(档位为5),0为转,1为停bitFX=0; /方向标志(开机左转),0

30、为逆,1为正char q=0; char V=0;char DW=0;unsigned int zs,temp;char CCW8=0x40,0x60,0x20,0x30,0x10,0x18,0x08,0x48;/正时钟旋转相序表char CW8=0x48,0x08,0x18,0x10,0x30,0x20,0x60,0x40;/逆时钟旋转相序表/*延时函数*/void delay(int x)int i,j;for(i=0;ix;i+)for(j=0;j120;j+);/*写入指令函数*/void write_com(char com)RS=0;RW=0;P0=com;delay(5); EN

31、=1;delay(5);EN=0;/*写入数据函数*/void write_data(char date)RS=1;RW=0;P0=date;delay(5);EN=1;delay(5);EN=0;/*初始设定函数*/void init_LCM(void) EN=0;write_com(0x38); write_com(0x0c);write_com(0x06);write_com(0x01); /*开机显示*/void display(void) char i;delay(10);init_LCM();write_com(0x80);/ 指定第一行位置 for (i=0;i14;i+)/28

32、BYJ-48 motorwrite_data(line1i);write_com(0x80+0x40);/ 指定第二行位置 for (i=0;i14;i+)/control system write_data(line2i);delay(3000);write_com(0x01); /清显示delay(5);write_com(0x80); /第一行for (i=0;i7;i+)write_data(line14i);/“Running”write_com(0x88);write_data(0x01);/write_com(0x8b);for (i=0;i3;i+)write_data(lin

33、e11i);/DW:write_com(0xc0);/ 指定第二行位置for (i=0;i2;i+)write_data(line22i); /V:write_com(0xc4);/ 指定第二行位置for (i=2;i3;i+)write_data(line22i); /.write_com(0xc7);/ 指定第二行位置for (i=3;i8;i+)write_data(line22i); /r/min/*档位数据转换*/void change1()DW0=temp/10;DW1=temp%10;/*转速数据转换*/void change2()V0=temp/1000;V1=temp%100

34、0/100;V2=temp%100/10;V3=temp%10;/*显示速度和档位*/void display_V()char i;if(on_off=1)temp=speed; /档位change1();write_com(0x8e);for (i=0;i2;i+)write_data(DWi+0x30);zs=1465/speed; /转速temp=zs;change2();write_com(0xc2);for (i=0;i2;i+)write_data(Vi+0x30);write_com(0xc5);for (i=2;i4;i+)write_data(Vi+0x30);elsewri

35、te_com(0x8e);for (i=0;i2;i+)write_data(0x30);write_com(0xc2);for (i=0;i2;i+)write_data(0x30);write_com(0xc5);for (i=2;i4;i+)write_data(0x30);/*显示运行方向*/void display_FX()char i;if(FX=1) /正向for(i=0;i elsefor(i=0;i2;i+)write_com(0x88+i);write_data(0x3C); /显示 /*显示运行状态*/void display_ZT()char i;if(on_off=1

36、)/运转TR0=1;write_com(0x80);for(i=0;i7;i+)write_data(line14i);/“runningdisplay_FX();elseTR0=0;P1=0X00; /电机停止write_com(0x80);for(i=0;i7;i+)write_data(line13i);/Stopingfor(i=0;i2;i+)write_com(0x88+i);write_data(0x7C); /显示|void motor() interrupt 1char i,j;TH0=(65536-1000)/256; /定时1msTL0=(65536-1000)%256;

37、q+;if(qspeed) /改变speed的值改变速度return; /送一个代码时间=1*speed(ms)else /传动轴转一圈时间=64*1*speed(ms) /主轴转一圈时间=64*64*1*speed (ms)=4096*speed(ms)q=0; /转速=(1*1000*60)/(4096*speed)r/min=14.65/speed r/minif(FX=1)/正转P1=CWi;i+;if(i=8)i=0;else /逆转P1=CCWj;j+;if(j=8)j=0; void main()display();TMOD=0X01;TH0=(65536-1100)/256;T

38、L0=(65536-1100)%256;EA=1;ET0=1;P1=0X00;while(1)if(K1=0) /启动停止delay(10);if(K1=0)on_off=on_off; /改变状态标志位, 0为转,1为停display_ZT();if(K2=0) /方向转换delay(10);if(K2=0)FX=FX; /改变方向标志位 ,0为逆,1为正display_FX();if(K3=0) /减速delay(10);if(K3=0)speed+;if(speed=11)speed=10;if(K4=0) /加速delay(10);if(K4=0)speed-;if(speed=0)speed=1;display_V();display_ZT();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号