班步进电机驱动器设计_第1页
班步进电机驱动器设计_第2页
班步进电机驱动器设计_第3页
班步进电机驱动器设计_第4页
班步进电机驱动器设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 25学校代码 10722 学 号 1107044210 分 类 号 TM383 密 级 公 开 本科毕业论文(设计)题 目 步进电机驱动器设计 (中、英文) Design of a stepping motor driver 作 者 姓 名 专 业 名 称 电气工程及其自动化 学 科 门 类 工 科 指 导 老 师 提交论文日期 二一五年五月 成绩等级评定 摘 要步进电机是一种能进行精确步进运动的机电执行元件,是实现机电自动化的必备元件,因而被广泛应用于各种自动化控制系统中。步进电机有很高的反复定位精度,指令脉冲能较好的控制驱动速率,同时能实现正转反转以及平滑速率调理,它的运行速度和步距不受

2、电源电压及负载波动的影响,控制简单方便且价格低廉,因而受到普遍用。随着单片机技术的不断发展,人们结合单片机控制步进电机,使得步进电机的性能大幅度提升。步进电机可以控制精度要求较高的仪器装置,如,打印机、绘图仪、磁盘光盘驱动器、自动控制阀、以及机器人等机械装置。可是步进电机不能直接接电源工作,需要配套的驱动器和控制器,而且驱动器的性能很大程度影响着步进电机的工作性能,因此使用良好的驱动器控制器有重要的意义。本次设计通过对步进电机的驱动特性的深入了解与学习,决定使用混合步进电机驱动芯片ULN2003A和单片机AT89C52设计混合式步进电机28BYJ-48的驱动器,并通过Lcd1602液晶显示器显

3、示运行状态。 关键词:步进电机;驱动器;单片机。 AbstractStepper motor is a mechanical and electrical actuator ,which can carry out precise stepping motion, it was widely used in various automation control systems because it is the essential component of the realization of the electromechanical automation. Stepper motor ha

4、s a high repeated positioning accuracy, command pulse can better control the drive speed, which also can realize positive rotation and the reverse rate smoothing conditioning , its operation speed and step distance is not affected by the supply voltage and the load fluctuation, the methode of contro

5、l is simple and convenient and the price is low, it has been widely used. With the development of SCM technology, people combined single-chip with microcomputer control stepper motor, so that the performance of the stepper motor greatly improved. Stepper motor can control precision high equipment re

6、quirements, such as printers, plotters, CD-ROM disk drive, automatic control valve, and the robot mechanical device. But stepper motor can not be directly connected to the power supply, need supporting driver and controller and driver performance greatly affects stepper motor performance, so good dr

7、ive controller has important significance. The design by the stepper motor driving characteristics of in-depth understanding and learning, using a hybrid stepper motor driving the chip uln2003a and AT89C52 single-chip design of hybrid step motor 28byj-48 drive, and through LCD1602 LCD display runnin

8、g status.Keywords:Stepper motor;Drive;SCM.目 录1.引言.11.1步进电机及其驱动器的发展概述.11.2设计步进电机驱动器的意义.12.步进电机的原理介绍及其相关参数.22.1步进电机工作原理.22.2步进电机的选取及相关参数.32.3步进电机静态指标.32.4步进电机动态指标.32.5步进电机特征及信号分布.43.步进电机驱动器硬件设计思路.53.1设计总结构框图.53.2驱动电路.53.3时针信号电路.53.4按键电路的设计.63.5单片机的选用.63.6液晶显示模块.74.简易程序设计.84.1启动停止简易流程图.84.2正转反转简易流程图.84

9、.3液晶显示与档位显示.94.4主程序设计简易程序图.95.软件调试仿真.105.1程序编写调试步骤.105.2调试过程及相关显示结果.10结论.12参考文献.13元件清单.14附录.15附录.25谢辞.26咸阳师范学院2015届本科毕业毕业论文(设计)1引言1.1 步进电机及其驱动器的发展概述 步进电机是一种开环控制元件,可以把时钟电脉冲信号转变为角位移或线位移。给电机加一个脉冲信号,电机则转过一个步距角。普通步进电机的精度为步进角的 3-5% ,且不累积。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,不受负载影响。正常情况下,步进电机转过的总角度和输入的脉冲数成正

10、比,连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。步进电机按特点分三类其特点分别为:永磁式(PM)电机通常为两相,转矩和体积较小;反应式(VR)电机一般为三相,可实现较大转矩输出,但噪音和振动频率大;混合式(HB)电机综合了前两种的优点,分为两相和五相,市场应用最广。六十年代在德国产生四相(两相)混合式步进电机,七十年代中期五相混合式步进电动机问世。到了七十年代中期依借电力电子技术和计算机技术的进步,步进电动机的细分驱动技术出现。细分驱动的的应用显著改善了步进电机综合性能。步

11、进电机细分驱动技术可以减小步进电动机的步距角,提高电机运行的稳定性,增加控制的简便性,大大扩展了步进电机的应用范围。1.2 设计步进电机驱动器的意义普通交直流电源不能直接给步进电机供电,因为它需要特定的的驱动控制器。步进电机在低速档运转时的的缺陷很明显,如振动噪声大、易产生共振现象、(在其自然震荡频率附近运行)、输出转矩随电机的转速加快会不断降低等。而实践应用证明,利用步进电机细分驱动技术可以显著改善步进电机的大多数缺陷,比如均化步距角误差、提高电机响应频率、提高了电机分辨率、简化电机应用操作、使电机工作更加平稳,可以大大改善步进电机的综合性能,拓展电机的应用范围,因此设计步进电机驱动器有着重

12、要的意义。2步进电机的原理介绍及其相关参数2.1 步进电机的工作原理步进电机是可以间接将脉冲信号转换为各种机械自动化控制系统所需要的角位移或者线位移,也就是利用脉冲信号驱动步进电机按设定要求转动。步进电机的精确运行,调速控制都可以通过控制脉冲频率实现。例如简单的四相步进,单极性直流作为电源供电。如果对步进电机的各相绕组按合适的时序通电,就可使步进电机按照我们的需要步进转动。图2.1是四相反应式步进电机工作原理图。图2.1步动电机工作原理图 四相步进电机按照通电电次序不同,可分为单四拍(单相绕组通电方式A-B-C-D-A-)、双四拍、(双相绕组同时通电AB-BC-CD-DA-AB-)八拍(结合前

13、两种导电方式A-AB-B-BC-C-CD-D-DA-A-)三种工作方式。单双四拍的步距角一样,单四拍的转动力矩比双四拍小。八拍工作方式的步距角是单四拍与双四拍的二分之一。八拍工作方式提高了工作精度的同时也减小扭转矩。单四拍、三种工作方式的电源通电时序与波形分别如图2 a b c 所示:图2.2四相步进电机三种工作方式通电时序波形图2.2 步进电机的选取及其相关参数选用步进电机28BYJ-48,其主要参数如表2-1所示:表2-1步进电机28BYJ-48主要参数电压DC(V)电阻()步距角减速比牵入转矩mN.m牵出转矩mN.m12/9/5505.625/641/644034.3空载牵入频率Hz空载

14、牵出频率Hz绝缘电阻DC.500V自定位转矩mN.m温升K噪音dB(A)50090050M无击穿或飞弧40402.3 步进电机静态指标相数:一般用m表示产生不同对极N、S磁场的励磁线圈对数。拍数:一般用n表示步进电机转动一个齿距角度所需导电状态。(即电机完成一个完整磁场周期变化所需脉冲个数)。步距角:每次接收到一个时针脉冲信号,电机转子转过固定的的角位移用表示,=360度(转子齿数*运行拍数)。比如常规两相、四相转子齿为100齿电机:两相四拍运行时步距角为=360度/(100*4)=0.9度(整步),两相八拍运行时步距角为=360度/(100*8)=0.45度(半步)。定位转矩:步进电机自身的

15、锁定力矩(通常在不通电状态下由磁场齿形波以及机械误差造成)。静转矩:电机在额定静态电作用下,电机没有转动时电机的转轴锁定力矩(与驱动电压电源电压无关)。2.4步进电机动态指标最大空载启动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。最大空载运行频率:在某种驱动形式、电压及额定电流下,电机不带负载的最高转速频率。失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,不可以采用细分驱动解决。失步:电机运转时的步数不等于理论上的步数。步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。

16、不同运行拍数其值不同,四拍运行时5%左右,八拍运行时15%左右。电机正反转控制:当电机绕组通电时序为A-AB-B-BC-C-CD-D-DA时为正转,通电时序为DA-D-CD-C-BC-B-AB-A时为反转。2.5步进电机特征及信号分配一般步进电机的精度为步进角的3%-5%,不积累。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点,一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。步进电机的力矩会随转速的升高而下降,当步进电机转动时,电机各

17、相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大,在它的作用下,电机随频率(或速度)的增大而相电流减少,从而导致力矩下降。步进电机低速时可以正常转动,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。步进电动机以其显著的特点,在数字化制造时代发挥着重大用途。伴随着不同数字化技术的发展以及步进电

18、机本身技术的提高,步进电机将会在更多的领域得到应用。步进电机接收到驱动器传送的一系列连续不断的控制脉冲时信号时,就会不间断地转动。四相步进电机可在数种通电方式下运行,常见的通电方式有单四拍(单相绕组通电)(A-B-C-D-A-.)则电流切换四次,即换相四次时,磁场就会旋转一周,同时转子转动一个齿距;双四拍(双相绕组通电)(AB-BC-CD-DA-AD-.)在步进电机的步进控制中,如果每次都是两相通电,控制电流切换四次,磁场旋转一周,转子移动一个齿距位置;单双八拍(A-AB-B-BC-C-CD-D-DA-A-.)对四相反应式步进电机进行控制时,把单四拍和双四拍工作方式结合起来,就产生了八拍工作方

19、式,在八拍工作方式中,控制电流切换八次,磁场旋转一周,转子移动一个齿距。此次设计采用四相八拍的工作方式。3 步进电机驱动硬件设计思路3.1 设计总结构框图如图3.1所示:用户按键可以方便控制电机正反转、加减速、启动停止;电源电路通过usb口负责给电机及驱动器供电;驱动电路位于单片机与外部电机之间负责时钟信号的转换控制;显示器用来显示电机运行状态(档位、转过的角度,转动方向)。 图3.1驱动器设计总体结系统构框图3.2 驱动电路步进电机的驱动采用ULN2003A反向器,接到单片机STC89C51/AT89C52的P1.4-P1.7,如图3.2所示:图3.2驱动电路3.3 时针信号电路时针信号由外

20、部晶振电路产生,电路部分晶振为12MHz,原理图如图3.3 图3.3时针信号原理电路3.4 按键电路的设计如果按键较多则选取矩阵式,本次设计用到的按键比较少(六个按键),采用独立式,K1作为初始化按键独立连接,P3.0P3.4分别接到K2K6。原理图如图3.4所示:图3.4按键电路图3.5 单片机的选用目前市面上以8位中档MCS-51和MCS-52系列单片机的应用最为普遍。此次设计选用较优质的52单片。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,

21、但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 兼容MCS51指令系统8k可反复擦写(>1000次)FlashROM 32个双向I/O口,256x8bit内部RAM  3个16位可编程定时/计数器中断,时钟频率0-24MHz   2个串行中断,可编程UART串行通道    2个外部中断源,共6个中断源    2个读写中断口线3级加密位

22、60; 低功耗空闲和掉电模式软件设置睡眠和唤醒功能3.6 液晶显示模块选取LCD1602作为显示器,它可以显示两行,每行16个字符采用单+5伏电源供电,价格便宜,体积小功耗小常用与单片机显示模块。P0接液晶的数据传送口,P2.0P2.2接液晶的控制端口。如图3.5所示:图3.5液晶显示模块图4 简易程序设计4.1 启动停止简易流程图 赋予Key1键启动停止功能,每次按下Key1都在将初始化标志位在0与1之间切换(启动停止的切换),具体流程图如图4.1所示:图4.1启动停止简易流程4.2 正反转简易流程图K4键控制电机正反转,初始化电机为顺时针转(“+”),按下K4键,电机转向在正反转

23、之间切换,反转(“-”)具体流程图如图4.2所示:图4.2正反转简易流程4.3 液晶显示与档位显示步进电机运行状态用1602液晶(LED/LCD)显示器显示,1602能够同时显示16x02即32个字符(16列2行)。运行显示(ang数字在不停变化)停止显示(ang数字停格在某个数字)、当前档位显示(spe:112)、正反转动方向显示(“+”或“-”)以及转动速度(spe)、转动圈数(cir)其显示。4.4 主程序设计简易程序图进入主程序,第一步对LED进行初始化,第二步依次进行键盘扫描,调用步进电机相关数据显示子函数,如果检测到有动作键按下,则进去相应的处理。流程图如图4.3所示:图4.3主程

24、序设计简易程序图5软件调试仿真5.1 程序编写调试步骤用keil软件进行编程及调试,程序的编写及调试步骤如下(1) 依照步28BYJ48步进电机的相序,编写正反转相序程序。(2) 定义相关变量以及相关液晶显示符号:uchar code cdis0 = “ WELCOME ”; /启动uchar code cdis1 = “STEPPING MOTOR”; /步骤uchar code cdis2 = “ CONTROL SYSTEM”;/控制uchar code cdis3 = “STOP”; /停止uchar code cdis4 = “spe:”; /档位uchar code cdis5 =

25、 “RUNNING”; /运行uchar code cdis6 = “spe”; /转速(3) 定义各个按键:sbit RS = P24;/1602数据/命令选择端(H:数据寄存器L:指令寄存器) sbit RW = P25;/1602读/写选择端 sbit E = P26;/1602使能信号端sbit key1=P30;/用户按键sbit key2=P31;sbit key3=P32;sbit key4=P33;sbit key5=P34;(4) 编写各个相关子程序。(5) 结合编好的子程序编写主程序,(扫描键盘和调用液晶显示在进入主程序时同时开始),(6) 其次编写定时器T0的中断服务程序

26、,当进入中断时,如果满足中断条件,就会向步进电机传送8个脉冲信号。5.2 调试过程及相关显示结果 将程序下载到单片机中,LED初始化显示如图5.1所示:图5.1LED初始化显示初始化状态下按Key3,液晶画面显示为(反转“-”),当前为5档(档位越高转速越快)如图5.2所示:图5.2LED电机转动方向状态显示按下键Key6后,显示出转向“-”即电机逆时针转,转一圈零16度如图5.3所示:图5.3LED电机运行状态显示结论这次是步进电机驱动器的设计,主要是要实现对步进电机的基本功能的控制。刚开始脑子一片空白不知道从哪下手,经过老师的指导,我慢慢有些思路。应该将学过的单片机知识与电机知识结合起来实

27、现对步进电机的控制,而且单片机在小型电子设备中应用很广泛,比较容易编程。经过老师的多次点拨,最终决定采用单片机AT89C52结合驱动芯片ULN2003A来设计步进电机驱动器。在设计仿真过程中对元器件的参数选定经过一番周折,因为选取的器件参数不搭配,出现多次调试不出结果,而且编程也多谢了老师建议把程序分成各个小部分,逐次编程先实现部分功能再实现总体功能。本次设计最终实现了对电机的正反转、加减速、启动停止,复位暂停以及转速、角度的显示功能。用单片机设计步进电机驱动器可以使整体电路简化更易于封装,同时单片机易编程可以由用户自由编程来控制电机的工作。但是本次由于设计不当导致出现电机转速很慢,振动噪音大

28、,不能平滑调速,电机容易发热等一系列问题。如果对各个方面加以改进优化,步进电机驱动器会有很好的市场前景。参考文献1李发海,王岩.电机与拖动基础(第4版)北京清华大学出版社,20112陈隆昌,阎治安,刘新正.控制电机(第4版)西安电子科技大学出版社,20133胡宴如,耿苏燕.模拟电子技术基础(第2版)高等教育出版社,20104郭文川 MCS-51单片机原理 电子工业出版社,20135袁任光,张伟武.电动机控制电路 机械工业出版社,20046步进电动机 科学出版社, 19797史敬灼,步进电动机伺服控制技术 北京科学出版社,20068张毅刚,刘杰.MCS-51单片机原理及应用M.哈尔滨:哈尔滨工业

29、大学出版社,2008.9童诗白,华成英.模拟电子技术基础M.北京:高等教育出版社,200910谭浩强.C程序设计(第三版)M.北京:清华大学出版社,200811郭天祥.51单片机C语言教程.电子工业出版社,200812王鉴光.电机控制系统.机械工业出版社M.13王晓明.电动机的单片机控制M.北京北京航空航天大学出版社,200214孙江宏,李良玉等.Protel99电路设计与应用,机械工业出版社,2004元件清单AT89S52单片机 1LCD1602 110k电位器 1ULN2003 128BYJ48步进电机 11uF电解电容 11k电阻 1100K电阻 112M晶振 130pF电容 2按键 6

30、10k九脚排阻 15-12V开关电源 15-12usbV开关电源座 1Pcb板 1排针 2附录 #include<reg52.h>#include<stdio.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit RS = P24;/1602数据/命令选择端(H:数据寄存器L:指令寄存器) sbit RW = P25;/1602读/写选择端 sbit E = P26;/1602使能信号端sbit key1=P30;/用户按键sbit key2=P31;sbi

31、t key3=P32;sbit key4=P33;sbit key5=P34;uchar code B_Rotation8=0x7f,0x3f,0xbf,0x9f,0xdf,0xcf,0xef,0x6f; /反转表格uchar code F_Rotation8=0xef,0xcf,0xdf,0x9f,0xbf,0x3f,0x7f,0x6f; /正转表格uchar table1="dir: + spe:005"uchar table2="cir:000 ang:000"uchar num;uint key,flag,speed=5,zflag,znum,f

32、flag,fnum,select,pp,qq;/1键值2键值标志3速度4正转标志5正转圈数6反转标志7反转圈数8正转角度9反转角度10选择float zang,fang;/*/* 延时函数 Xms */*/void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);/*/* LCD1602写命令操作 */*/void WriteCommand(uchar com)delay(5);/操作前短暂延时,保证信号稳定E=0;RS=0;RW=0;P0=com;E=1;delay(5);E=0;/*/* LCD1602写数据操作 *

33、/*/void WriteData(uchar dat)delay(5); /操作前短暂延时,保证信号稳定E=0;RS=1;RW=0;P0=dat;E=1;delay(5);E=0;/*/* 1602初始化程序 */*/void InitLcd()/1602初始化程序delay(15);WriteCommand(0x38); /display modeWriteCommand(0x38); /display modeWriteCommand(0x38); /display modeWriteCommand(0x06); /当读或写一个字符后地址指针加一,且光标加一WriteCommand(0x

34、0c); /显示开及光标不显示WriteCommand(0x01); /清屏 WriteCommand(0x80);for(num=0;num<15;num+)/第一行的显示WriteData(table1num);delay(15);WriteCommand(0x80+0x40);/第二行的显示for(num=0;num<15;num+)WriteData(table2num);delay(15); /*/* 独立键盘扫描函数 */*/void keyscan() P3=0xff;/拉高P3口,以读取P3口的值if(key1=0)/键1被按下delay(5);/延时消抖if(ke

35、y1=0)flag=1;while(!key1);delay(5);/延时消抖while(!key1);/松手检测if(key2=0)delay(5);if(key2=0)flag=2;while(!key2);delay(5);while(!key2);if(key3=0)/键1被按下delay(5);/延时消抖if(key3=0)flag=3;while(!key3);delay(5);/延时消抖while(!key3);/松手检测if(key4=0)delay(5);if(key4=0)flag=4;while(!key4);delay(5);while(!key4);if(key5=0

36、)delay(5);if(key5=0)flag=5;while(!key5);delay(5);while(!key5);/*/* 1602显示3位数 */*/void write_sfm(uchar add,uint date)/1602显示uchar bai,shi,ge;bai=date/100;shi=date%100/10;ge=date%10;WriteCommand(0x80+add);/设置数据地址指针WriteData(0x30+bai);WriteData(0x30+shi);WriteData(0x30+ge);WriteData(0x20);/*/* 键值处理 */*

37、/void handle_flag() uchar select1;if(TR0=0&&TR1=0)if(flag=1) /正转WriteCommand(0x80+0x05);WriteData('+');delay(20);select=0;if(flag=2) /反转WriteCommand(0x80+0x05);WriteData('-');delay(20);select=1;if(flag=3)/转速加 speed+;if(speed>=12)speed=12;write_sfm(0x0c,speed);/显示速度delay(20); if(flag=4)/转速减speed-;if(speed<=1)speed=1;write_sfm(0x0c,speed);/显示速度delay(20);if(flag=5)/关闭中断,停止电机select1+;select1%=2;if( select1=0)TR0=0;TR1=0;if(select=0)/显示转动的角度write_sfm(0x40+0x0c,zang);elsewrite_sfm(0x40+0x0c,fang); elseif(select=0)T

温馨提示

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

评论

0/150

提交评论