《步进电机控制系统》由会员分享,可在线阅读,更多相关《步进电机控制系统(41页珍藏版)》请在金锄头文库上搜索。
1、步进电机的控制步进电机的控制班级:团队:成员:指导老师:PCB版图版图(1)3D正面PCB版图(2)3D反面PCB版图(3)实物连接图实物连接图步进电机步进电机28BYJ-48步数输入按键步数输入按键第一部分步进电机的相关介绍步进电机的简单介绍步进电机的简单介绍步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电
2、机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中
3、,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。步进电机的工作原理步进电机的工作原理步电机是一种将电脉冲转化为角位移步电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定步进电机按设定的方向
4、转动一个固定的角度(及步进角)。可以通过控制的角度(及步进角)。可以通过控制脉冲个来控制角位移量,从而达到准脉冲个来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速冲频率来控制电机转动的速度和加速度,从而达到调速的目的。度,从而达到调速的目的。步进电机28BYJ-48介绍步进电机28BYJ48型四相八拍电机,电压为DC5VDC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成
5、一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。红线接电源5V,橙色电线接口,黄色电线接口,粉色电线接口,蓝色接口。电机型号电压V相数相电阻(欧)步距角度减速比2BBYJ48543005.625/641:64(N=64)起动转矩100P.P.S启动频率P.P.S定位转矩g.cm摩擦转矩g.cm噪声dB绝缘介电强度30055030035600VAC1S主要技术参数注:由于单片机接口信号不够大需要通过UL
6、N2003放大再连接到相应的电机接口。如下:橙AP1.3黄BP1.2粉CP1.1蓝DP1.0十六制(P1口)10000x0811000x0c01000x0401100x0600100x0200110x0300010x0110010x09第二部分硬件电路原理图的相关介绍 89C51 单片机复位电路键盘控制电路ULN2803启动电路步进电机状态显示电路电源及时钟电路设计思路图总体设计思路硬件电路组成本设计的硬件电路主要由控制电路、最小系统、驱动电路、显示电路四大部分组成。最小系统是为了使单片机正常工作。控制电路由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状
7、态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。显示电路U2:74L373锁存器7SEG-COM-CATHODE显示管驱动部分电路步进电机步进电机步进电机步进电机28BYJ-4828BYJ-48控制部分电路X1:晶振R1:1K电阻电容c1,c2,c3步数控制按键k1-k9步数输入按键EnterU1:AT89C51芯片电路原理总图第三部分软件部分软件设计软件设计通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中
8、断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。下面分析主程序与定时器中断程序及外部中断程序。(1)主程序设计主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化P1=11H、速度和方向
9、初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,。主程序图如下所示:开 始初 始 化速度值为0?启动开关为0?停止计时器显 示启动计时器延 时停止计时器主程序流程图YNYN(2)定时中断设计步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。程序流程图
10、如下图:中断返回T0中断入口发速度脉冲读方向指示重送相关状态恢复现场保护现场中断次数-1=0?NY 定时中断程序流程图控制程序(C语言版)#include#defineucharunsignedchar#defineuintunsignedintuchari=0,flag=0,t;uintk=0,keyvalue2=0;ucharcodetable15=10,8,6,4,2;ucharcodetable25=0x86,0xdB,0xcF,0xe6,0xed;ucharcodetable33=0x3f,0x5f,0x6f;ucharcoderun_pos4=0x40,0x20,0x10,0x08
11、;ucharcoderun_neg4=0x08,0x10,0x20,0x40;sbitKey1=P32;sbitKey2=P33;sbitKey3=P34;sbitKey4=P31;voiddelay(ucharx)uchari,j;for(i=0;ix;i+)for(j=0;j148;j+);voidTime0_init()TMOD=0x01;IE=0x82;TH0=0x4c;TL0=0x00;TR0=1;voidTime0_int()interrupt1using1staticucharj=0;if(k=keyvalue2&k!=0)keyvalue2=0;TR0=0;if(t=0)t=t
12、able1i;t-;if(t=0)k+;if(j=4)j=0;if(!flag)P2=run_posj+;elseP2=run_negj+;uchargetKey()uchari,j,temp;for(i=0;i3;i+)temp=0x01;P1=table3i;delay(10);for(j=0;j4;j+)if(!(P1&temp)P1=0x0f;returnj*3+i;temp=temp1;return-1;main()ucharkeyvalue=0;P0=0x86;Time0_init();while(1)P1=0x0f;if(!Key1)delay(10);if(!Key1)whil
13、e(!Key1);if(TR0)i+;if(i=5)i=0;P0=table2i;if(!Key2)delay(10);if(!Key2)while(!Key2);if(TR0)if(i=0)i=5;i-;P0=table2i;if(!Key3)delay(10);if(!Key3)while(!Key3);if(TR0=1)P0=0xbf;P2=0;TR0=0;elsei=0;P0=0x86;Time0_init();if(!Key4)delay(10);if(!Key4)while(!Key4);if(TR0)if(flag=0)flag=1;elseflag=0;if(P1!=0x0f)
14、delay(10);if(P1!=0x0f)if(getKey()=10)while(getKey()=10);TR0=0;P0=0xbf;while(1)P1=0x0f;if(P1!=0x0f)delay(10);if(P1!=0x0f)if(getKey()=10)while(getKey()=10);k=0;if(keyvalue2!=0)t=0;Time0_init();break;elsekeyvalue=getKey();while(P1!=0x0f);if(keyvalue!=-1)keyvalue2=keyvalue+keyvalue2*10;第四部分总结本设计通过分析步进电机结构、工作原理,查阅步进电机控制系统的相关科技文献,遵循实用、简单、可靠和低成本的原则,设计了一种既可用于精度要求不高,但控制需完备的场合。对本次设计,有以下结论:(1)采用单片机为控制核心,利用其强大的功能,把键盘和显示电路有机的结合起来,组成一个操作方便、交互性强的控制系统。(2)键盘电路和显示电路采用了动态扫描技术,节约了单片机资源。(3)系统软件采用结构化设计,具有易维护性,根据用户新的要求,对软件系统进行少量的修改,使系统功能得到一定程度的提高。