步进电机控制及驱动电路的设计

上传人:痛*** 文档编号:103701572 上传时间:2022-06-09 格式:DOC 页数:19 大小:168KB
收藏 版权申诉 举报 下载
步进电机控制及驱动电路的设计_第1页
第1页 / 共19页
步进电机控制及驱动电路的设计_第2页
第2页 / 共19页
步进电机控制及驱动电路的设计_第3页
第3页 / 共19页
资源描述:

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

1、课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目: 步进电机的控制和驱动电路设计 初始条件:本设计既可以使用集成移位寄存器、驱动器、555定时器和必要的门电路,以和所需电阻、电容、二极管、三极管、开关等元件。本设计也可以使用单片机系统构建步进电机的控制和驱动电路。自行设计所需电源。要求完成的主要任务: (包括课程设计工作量和其技术要求,以和说明书撰写等具体要求)1、课程设计工作量:1周。2、技术要求:设计一个方波发生器提供系统时钟;设计一个步进电机的驱动信号发生器,可以实现电机正转/反转控制和转速控制; 要求驱动器有足够的输出电流以驱动小功率4相步进电机;要求

2、可以实现步进电机的单相或双相激励;确定设计方案,按功能模块的划分选择元、器件和集成电路,设计分电路,阐述基本原理。绘制总体电路原理图。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。时间安排:1、 2008 年 7 月 5 日集中,作课设具体实施计划与课程设计报告格式的要求说明。2、 2008 年 7 月 5 日,查阅相关资料,学习电路的工作原理。2、 2008 年 7 月 6 日 至 2007 年 7 月 7 日,方案选择和电路设计。2、 2008 年 7 月 8 日 至 2007 年 7 月 10 日,电路调试和设计说明书撰

3、写。3、 2008 年 7 月 11 日上交课程设计成果和报告,同时进行答辩。课设答疑地点:鉴主14楼电子科学与技术实验室。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录1.步进电机原理.21.1步进电机简介.21.2步进电机原理和控制技术.21.3 步进电机驱动方法.21.4总体设计方框图.31.5设计原理分析.31.5.1元器件介绍.31.5.2方案论证.52硬件设计.62.1控制电路.62.2最小系统.62.3驱动电路.72.4显示电路.72.5总体电路图.83软件设计.94程序编写.95实验心得和体会.17参考文献.171.步进电机原理和硬件和软件设计1.1步进

4、电机简介步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。1.2步进电机基本原理通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。

5、当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、频率和电动机各相绕组的通电顺序来控制步进电机的转动。1.3 步进电机驱动方法 步进电机不能直接接到工频交流或直流电源上工作,而必须使用专用的步进电动机驱动器,如下图所示。它由脉冲发生控制单元、功率驱动单元、保护单元等组成。图中点划线所包围的二个单元可以用微机控制来实现。驱动单元与步进电动机直接耦合,也可理解成步进电动机微机控制器的功率接口。1.4总体设计方案框图51单片机数码管反

6、向驱动步进电机键盘电源状态选择状态显示1.5设计原理分析1.5.1元器件介绍(1)步进电机 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机区别于其他控制电机的最大特点是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件,其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域

7、获得了广泛应用。步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度或前进、倒退一步。步进电机旋转的角度由输入的电脉冲数确定。 四相步进电机的工作原理该设计采用了20BY-0型步进电机,该电机为四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐,由此可见,错齿是促使电机旋转的原因。 步进电机的静态

8、指标和术语相数:产生不同队N、S磁场的激磁线圈对数,常用m表示。拍数:完成一个磁场周期性变化所需脉冲用n表示,定位转矩:电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以和机械误差造成的)。静转矩:电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积的标准,与驱动电压和驱动电源等无关。虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。但过分采用减小气隙,增加励磁匝数来提高静转矩是不可取的,这样会造成电机的发热和机械噪音。 四相步进电机的脉冲分配规律对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分

9、配器等。本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。各种工作方式在电源通电时的时序与波形分别如图所示。本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。(2)89C51单片机 89C51单片机是一种低功耗、低电压、高性能的8位单片机,它采用CMOS和高密度非易失性存

10、储技术,而且其输出引脚和指令系统都与MCS-51兼容;片内的Flash ROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。1.5.2方案论证从课程设计要求可知,该系统的输入量为速度和方向,速度应该有增减变化,通常用加减按钮控制速度,由于设置八个键盘功能,采用P1口间接八个独立按键。系统的输出线与步进电机的绕组数有关。这里选5线4相步进电机制。该电机共有四相绕组,工作电压为+5V,可以个单片

11、机共用一个电源。步进电机的四相绕组用P1口的P1.0P1.3控制,由于P1口驱动能力不够,因而用一片2803增加驱动能力。用P0口控制液晶显示转动状态和速度。2硬件设计本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。2.1控制电路据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是K1、K2、K3、K4、K5、K6、 K7、K8,

12、控制电路如下图所示。通过K1、K2、K3选择单相、二相、一二相驱动;通过K4、K5选择正转、反转;通过K6、K7控制转速,K8控制系统回复初始状态或重置状态。根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有:软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过K6、K7的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。2.2最小系统 单片机最小系统或者称为

13、最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。2.3驱动电路通过ULN2803构成驱动电路,电路图如下图所示。通过单片机的P1.0P1.3输出脉冲到ULN2803的1B4B口,经信号放大后从1C4C口分别输出到电机的A、B、C、D相。2.4显示电路在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的P0口,采用1602液晶作显示。第一行根据键盘控制显示“M

14、ode:Single +”/ “Mode: Single ” /“Mode: Double +” / “Mode: Double _”/ “Mode: Mixed +”/ “Mode: Mixed -”,分别代表一相正转/一相反转/二相正转/二相反转/一二相正转/一二相反转。第二行根据键盘控制显示“Speed:10”,初始数字为10,数字代表速度等级,共有20级,即数字可显示从0到20,数字越小即周期越短速度越快。2.5实物电路图各个部分的电路图组合成失误电路图,如下图所示。3软件设计通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效

15、率最高,这样总共要完成2个部分的工作才能满足课题要求,即主程序部分、定时器中断部分,其中主程序的主要功能是系统初始参数的设置和启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机各个状态确定设置。下面分析主程序与定时器中断程序和外部中断程序。(1)主程序设计主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以和各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断,液晶屏。当上电时,液晶屏第一行显示“Mode:”,第二行显示“Speed:”,由于未设置步进电机工作状态,步进电机未工作,且液晶未显

16、示步进电机有关状态。 (2)定时中断设计步进电机的状态设置由键盘的按下松开确定。K1K8的按下就会对数组进行赋值,通过对数组的判断确定我们所设置的工作状态。由于我们需要实时地调节步进电机的转速,因此采用定时中断程序,每当扫描键盘时,K6、K7的按下会对数组的值进行加减,通过数组值的大小的改变控制步进电机的转动频率从而调节步进电机的转速,数字值最大为20最小为0,超出范围时数组值不可改变。由于对每一按键定义了一种功能,当按下某些按键组合时会产生一些错误的设定,对于这种情况我们设定了K8作为初始化/复位按键,按下K8会使系统回到初始状态,这时我们可以对系统进行重新正确的设定或者转换另一种工作状态。

17、4程序编写#include #define KeyPort P3#define LCD P0 sbit rs=P24; /定义液晶使能控制端口sbit rw=P25;sbit en=P26;sbit A1=P10; /定义反向驱动端口sbit B1=P11;sbit C1=P12; sbit D1=P13; unsigned char n5; unsigned char T=10,Y=0;unsigned char mode=mode:,speed=speed:,one=Single,two=Double,mixed=Mixed,re=Reset ,er=Error;#define Coil_

18、AB1 A1=1;B1=1;C1=0;D1=0; /对步进电机进行编码#define Coil_BC1 A1=0;B1=1;C1=1;D1=0; #define Coil_CD1 A1=0;B1=0;C1=1;D1=1; #define Coil_DA1 A1=1;B1=0;C1=0;D1=1; #define Coil_A1 A1=1;B1=0;C1=0;D1=0; #define Coil_B1 A1=0;B1=1;C1=0;D1=0; #define Coil_C1 A1=0;B1=0;C1=1;D1=0; #define Coil_D1 A1=0;B1=0;C1=0;D1=1; #de

19、fine Coil_OFF A1=0;B1=0;C1=0;D1=0; void DelayMs(unsigned char t) /定义延时 int x,y; for(x=t;x0;x-) for(y=110;y0;y-);void write_com(unsigned char com)/液晶显示状态控制程序rs=0;rw=0;en=0;LCD=com;DelayMs(5);en=1;DelayMs(5);en=0;void write_date(unsigned char date)/液晶数据显示程序rs=1;rw=0;en=0;LCD=date;DelayMs(5);en=1;Delay

20、Ms(5);en=0;void init_LCD()/液晶初始化程序 int a;write_com(0x38); write_com(0x06);write_com(0x01);write_com(0x0c); write_com(0x80);for(a=0;a5;a+)write_date(modea);write_com(0x80+0x40);for(a=0;a6;a+)write_date(speeda);void Init_Timer0()/定时器初始化 TMOD=0x01; TH0=0x00; TL0=0x00; EA=1; ET0=1; TR0=1; PT0=1; void di

21、splay()/显示程序char a,b,c,d,e;if(n0=1&n1=0&n2=0)write_com(0x80+6);for(a=0;a6;a+)write_date(onea); if(n0=0&n1=1&n2=0)write_com(0x80+6);for(a=0;a6;a+)write_date(twoa); if(n0=0&n1=0&n2=1)write_com(0x80+6);for(a=0;a1|e=2) init_LCD();write_com(0x80+6);for(a=0;a5;a+)write_date(era); unsigned char KeyScan(voi

22、d)/键盘扫面 unsigned char keyvalue; if(KeyPort!=0xff) DelayMs(10); if(KeyPort!=0xff) keyvalue=KeyPort; while(KeyPort!=0xff);switch(keyvalue) case 0xfe:return 1;break; case 0xfd:return 2;break; case 0xfb:return 3;break; case 0xf7:return 4;break; case 0xef:return 5;break; case 0xdf:return 6;break; case 0x

23、bf:return 7;break; case 0x7f:return 8;break; default:return 0;break; return 0;void danxiang_0()/步进电机单相正转 Coil_A1DelayMs(T);Coil_B1DelayMs(T);Coil_C1DelayMs(T);Coil_D1DelayMs(T);void danxiang_1()/步进电机单相发转Coil_D1DelayMs(T);Coil_C1DelayMs(T);Coil_B1DelayMs(T);Coil_A1DelayMs(T);void erxiang_0() /步进电机二相正

24、转Coil_AB1DelayMs(T);Coil_BC1DelayMs(T);Coil_CD1DelayMs(T);Coil_DA1DelayMs(T);void erxiang_1()/步进电机二相反转Coil_DA1DelayMs(T);Coil_CD1DelayMs(T);Coil_BC1DelayMs(T);Coil_AB1DelayMs(T);void yi_er_0()/步进电机一二相正转Coil_A1DelayMs(T);Coil_AB1DelayMs(T);Coil_B1DelayMs(T);Coil_BC1DelayMs(T);Coil_C1DelayMs(T);Coil_C

25、D1DelayMs(T);Coil_D1DelayMs(T);Coil_DA1DelayMs(T);void yi_er_1()/步进电机一二相反转Coil_DA1DelayMs(T);Coil_D1DelayMs(T);Coil_CD1DelayMs(T);Coil_C1DelayMs(T);Coil_BC1DelayMs(T);Coil_B1DelayMs(T);Coil_AB1DelayMs(T);Coil_A1DelayMs(T);void run()/步进电机控制程序if(n0=1&n3=1&n4=0)danxiang_0();if(n0=1&n3=0&n4=1)danxiang_1

26、();if(n1=1&n3=1&n4=0)erxiang_0();if(n1=1&n3=0&n4=1)erxiang_1();if(n2=1&n3=1&n4=0)yi_er_0();if(n2=1&n3=0&n4=1)yi_er_1();void Reset()/初始化/复位程序int a;T=10;n0=0,n1=0,n2=0,n3=0,n4=0;init_LCD();write_com(0x80+6);for(a=0;a10;a+)write_date(rea);void main() Coil_OFFinit_LCD();Init_Timer0();EX0=1;IT0=1; while(

27、1)if(Y=2) run();display(); void Timer0_isr(void) interrupt 1 /定时器 unsigned char num; TH0=(65536-1000)/256; TL0=(65536-1000)%256;num=KeyScan();/扫描键盘确定步进电机运行状态 switch(num) case 1:n0=1;break;case 2:n1=1;break;case 3:n2=1;break;case 4:n3=1;break;case 5:n4=1;break;case 6:if(T1) T-;break;case 8:Reset();br

28、eak;Y=n0+n1+n2+n3+n4; 5实验心得和体会通过本次课程设计我们学习到了许多书本上没有的知识,通过自己查资料和互相讨论,对系统进行整体设计后基本达到了要求,对本次设计,有以下结论:(1)采用单片机为控制核心,利用其强大的功能,把键盘和显示电路有机的结合起来,组成一个操作方便、交互性强的控制系统。而且整个系统所包含的技术几乎包括了现本科学校控制专业所要求的知识,有利于实践教学取得最大效果。(2)键盘电路和显示电路采用了动态扫描技术,节约了单片机资源。(3)系统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。在此衷心感谢老师的指导。参考文献1伍时和数字电子技术基础北京:清华大学出版社,2009.42宋嘉玉,孙丽霞EDA实用技术北京:人民邮电出版社,2006.12 3齐洪喜,陆颖VHDL电路设计实用技术北京:清华大学出版社,2004.54刘艳萍,高振斌,李志军EDA实用技术和应用北京:国防工业出版社,2006.15章彬宏EDA应用技术北京:北京理工大学出版社,2007.76谭会生EDA技术基础长沙:湖南大学出版社,2004.8

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