《基于单片机控制的步进电机___毕业论文说课材料.doc》由会员分享,可在线阅读,更多相关《基于单片机控制的步进电机___毕业论文说课材料.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。基于单片机控制的步进电机_毕业论文-毕业论文题目基于单片机控制的步进电机学生姓名*学号*院系滨江学院专业电子信息工程指导教师*二*年*月*日基于单片机控制的电机*南京信息工程大学*南京210044摘要:介绍了步进电机和直流电机原理及其驱动程序控制控制模块,通过AT89S52单片机及脉冲分配器(又称逻辑转换器)L298完成步进电机和直流电机各种运行方式的控制。实现步进电机的正反转速度控制并且显示数据。整个系统采用模块化设计,结构简单、可靠,通过按键控制,操作方便,节省成本。关键词:步进电机;单片机控制;A
2、T89S52;1、引言随着数字化技术发展,数字控制技术得到了广泛而深入的应用。步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件,具有快速起动和停止的特点。因为步进电动机组成的控制系统结构简单,价格低廉,性能上能满足工业控制的基本要求,所以广泛地应用于手工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,投影仪、数码摄像机、大型望远镜、卫星天线定位系统、医疗器件以及各种可控机械工具等等。直流电机广泛应用于计算机外围设备(如硬盘、软盘和光盘存储器)、家电产品、医疗器械和电动车上,无刷直流电机的转子都普遍使用永磁材料组成的磁钢,并且在航空、航天、汽车、精密电子等行业也被广
3、泛应用。在电工设备中的应用,除了直流电磁铁(直流继电器、直流接触器等)外,最重要的就是应用在直流旋转电机中。在发电厂里,同步发电机的励磁机、蓄电池的充电机等,都是直流发电机;锅炉给粉机的原动机是直流电动机。此外,在许多工业部门,例如大型轧钢设备、大型精密机床、矿井卷扬机、市内电车、电缆设备要求严格线速度一致的地方等,通常都采用直流电动机作为原动机来拖动工作机械的。直流发电机通常是作为直流电源,向负载输出电能;直流电动机则是作为原动机带动各种生产机械工作,向负载输出机械能。在控制系统中,直流电机还有其它的用途,例如测速电机、伺服电机等。他们都是利用电和磁的相互作用来实现向机械能能的转换。1. 电
4、机的工作原理1. 步进电机原理步进电机本质上是一个数字角度转换器。以三相电机为例,其结构原理见图1。各相夹角为120的定子磁极上均匀分布了5个矩形小齿,没有绕组的转子圆周上也均匀的分布着40个小齿(相邻齿夹角为9)。利用电磁学的性质,在某相绕组通电时,相应的磁极产生磁场,与转子形成磁路如此时定子的小齿与转子的小齿没有对齐,则在磁场作用下,转子就转动一定角度,达到齿的对齐。在单三拍控制方式下,若A相通电,B、C相不通电,在磁场作用下使转子齿和A相定子齿相对假设此时为初态并且令与A相中心对齐的转子齿为0号齿,因为B相与A相相差120,可知120/9=1339,不为整数,即此时转子齿与B相不对齐,只
5、是13号齿靠近相的中心,且相差3。如果此时突然变为B相通电,而A、C相都不通电,那么,13号齿会在磁场的作用下转到与相中心对齐的位置,这就是常说的走一步,此时,转子转了。这样,按照A一B一C一A顺序通电次,可以使转子转动9。那么步进电机的步距角Q=(360/NZ)(式中N=MC为运行拍数;M为控制绕组相数;C为状态系数,单三拍或双三拍时C=1,单六拍或双六拍时C=2为转子齿数)。2. 直流电机的原理由直流电动机和发电机工作原理示意图可以看到,直流电机的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组
6、成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。直流电机的结构:电机要实现机电能量变换,电路和磁路之间必须有相对运动。所以旋转电机具备静止的和旋转的两大部分。静止和旋转部分之间有一定大小的间隙,称为气隙。静止的部分称为定子,作用是产生磁场和作为电机的机械支撑。包括主磁极、换向极、机座、端盖、轴承、电刷装置等。旋转部分称为转子或电枢,作用是感应电势实现能量转换。包括电枢铁心,电枢绕组,换向器、轴和风扇等。定子部分:1、主磁极:也称为主极。作用是产生气隙磁场。2、换向极:也称为附加
7、极或间极。作用是改善换向。装在主极之间。3、机座:由铸钢或厚钢板焊成。是电机的机械支撑。4、电刷装置:将直流电压、电流引入或引出的装置。其组数与主极极数相等。2. 转动部分:(转子部分)1、电枢铁心:主磁路的主要部分及嵌放电枢绕组,由硅钢片迭压而成。2、电枢绕组:由许多按一定规律联接的线圈组成。用来感应电势和通过电流,是电路的主要部分。3、换向器:由许多彼此绝缘的换向片构成。硬件系统1. 原理流程ULN2003ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于T
8、TLCOMS,由达林顿管组成驱动电路。ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。ULN2003是一个非门电路,包含7个单元,但独每个单元驱动电流最大可达350mA.资料的最后有引用电路,9脚可以悬空。比如1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用9脚。UL
9、N2003的作用:ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达500mA/50V。ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器。ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003A引脚图及功能:ULN2003是高耐压、
10、大电流、内部由七个硅NPN达林顿管组成的驱动芯片。经常在以下电路中使用,作为显示驱动、继电器驱动、照明灯驱动、电磁阀驱动、伺服电机、步进电机驱动等电路中。ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。ULN2003的封装采用DIP16或SOP16。ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。每对达
11、林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。显示电路主要包括大型LED数码管BSI20-1(共阳极,数字净高12cm)和高电压大电流驱动器ULN2003,大型LED数码管的每段是由多个LED发光二极管串并联而成的,因此导通电流大、导通压降高。ULN2003是高压大电流达林顿晶体管阵列电路,他具有7个独立的反相驱动器,每个驱动器的输出灌电流可达500mA,导通时输出电压约1V,截止时输出电压可达50V。ULN2003的17脚为信号输入脚,依次对应的输出端为1610脚,8脚为接地端。当驱动电源电压为+12V时,若要求数码管每段导通电流为40mA,则每段的限流
12、电阻为50。则一块ULN2003恰好驱动一个LED数码管的7段。大数码管采用共阳极接法,低电平有效。锁存器输出的电平经NPN三极管9014反相后,再由ULN2003放大后推动大数码管显示.3. L2984. L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298是一款单片集成的高电压、高电流、双路全桥式电机驱动,设计用于连接标准TTL逻辑电平,驱动电感负载(诸如继电器、线圈、DC和步进电机)。L298提供两个使能输入端,可以在不依赖于输入信号的情况下,使能或禁用L298器件。L2
13、98低位晶体管的发射器连接到一起,而其对应的外部端口则可用来连接一个外部感应电阻。L298还提供一个额外的电压输入,所以其逻辑电路可以工作在更低的电压下。L298特性:L298工作电压高达46V;总DC电流达4A;低饱和电压;L298具有过温保护功能;逻辑“0”输入电压高达1.5V(高抗噪性);74HC5735. SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出兼容。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。输出能直接接到CMOS
14、,NMOS和TTL接口上;操作电压范围:2.0V6.0V;低输入电流:1.0Ua;CMOS器件的高噪声抵抗特性。软件系统1、主程序该系统采用多个模块的方式来实现对步进电机的控制。控制模块采用单片机AT89S52来控制L298,L298驱动电机转动。进入判断程序输出相应的控制信号取消启动(开始)初始化程序I/O口2、直流电机驱动程序#includesbitKEY0=P30;/控制按键,为高电平时,直流电机工作。为0时启动步进电机;sbitKEY1=P32;/控制直流电机调速按键sbitKEY2=P33;/控制步进电机正反转、停机按键sbitPWM=P15;/定义直流电机PWM输出调速端口unsi
15、gnedcharCYCLE;/定义周期该数字X基准定时时间如果是10则周期是10x0.1msunsignedcharPWM_Num=0;/直流电机速度档位;unsignedcharPWM_ON;/定义高电平时间unsignedcharFlag;/定义步进电机正反转和停止标志位unsignedcharcodeF_Rotation4=0x1f,0x2f,0x4f,0x8f;/步进电机正转表格unsignedcharcodeB_Rotation4=0x8f,0x4f,0x2f,0x1f;/步进电机反转表格/*/*延时函数*/*/voidDelay(unsignedinti)/延时while(-i);
16、/*/*主函数*/*/main()unsignedchari;EX0=1;/外部中断0开,控制直流电机EX1=1;/外部中断1开,控制步进电机IT0=1;/边沿触发IT1=1;/边沿触发EA=1;/全局中断开P0=0x06;/开机显示直流电机1档位TMOD|=0x01;/定时器设置1msin12McrystalTH0=(65536-1000)/256;TL0=(65536-1000)%256;/定时1mSET0=1;/打开中断TR0=1;CYCLE=10;/时间可以调整这个是10步调整周期10ms,PWM的周期不变,8位PWM就是256步while(KEY0=1)/P3.0为高电平,则直流电机
17、运转;switch(PWM_Num)case0:P0=0x06;PWM_ON=0;break;/高电平时长,P0口段码为1;case1:P0=0x5B;PWM_ON=4;break;/P0口段码为2;case2:P0=0x4F;PWM_ON=6;break;/P0口段码为3case3:P0=0x66;PWM_ON=8;break;/P0口段码为4case4:P0=0x6D;PWM_ON=10;break;/P0口段码为停机Sdefault:break;while(KEY0=0)/KEY0按下,则步进电机工作。while(Flag=0)P0=0x71;/显示F标示正转for(i=0;i4;i+)
18、/4相P2=F_Rotationi;/输出对应的相可以自行换成反转表格Delay(500);/改变这个参数可以调整电机转速,数字越小,转速越大while(Flag=1)P0=0x7C;/显示b标示反转for(i=0;i4;i+)/4相P2=B_Rotationi;/输出对应的相Delay(500);/改变这个参数可以调整电机转速,数字越小,转速越大while(Flag=2)/停止P0=0x6D;/显示SP2=0x0F;/*/*定时器中断函数,产生PWM波。*/*/voidtim(void)interrupt1using1staticunsignedcharcount;/TH0=(65536-1
19、000)/256;TL0=(65536-1000)%256;/定时1mSif(count=PWM_ON)PWM=1;count+;if(count=CYCLE)count=0;if(PWM_ON!=0)PWM=0;/*/*中断0入口函数,控制直流电机转速*/*/voidISR_Key1(void)interrupt0using1/定义档位Delay(500);if(!KEY1)PWM_Num+;/s3按下触发一次if(PWM_Num=5)PWM_Num=0;/*/*中断入口函数,控制步进正反转、停机*/*/voidISR_Key2(void)interrupt2using1Delay(500)
20、;if(!KEY2)Flag+;/s3按下触发一次if(Flag=3)Flag=0;3、步进电机驱动程序#includeunsignedcharFlag;/定义正反转和停止标志位sbitKEY=P33;unsignedcharcodeF_Rotation4=0xf1,0xf2,0xf4,0xf8;/正转表格unsignedcharcodeB_Rotation4=0xf8,0xf4,0xf2,0xf1;/反转表格/*/*延时函数*/*/voidDelay(unsignedinti)/延时while(-i);/*/*主函数*/*/main()unsignedchari;EX1=1;/外部中断0开I
21、T1=1;/边沿触发EA=1;/全局中断开while(Flag=0)P0=0x71;/显示F标示正转for(i=0;i4;i+)/4相P1=F_Rotationi;/输出对应的相可以自行换成反转表格Delay(500);/改变这个参数可以调整电机转速,数字越小,转速越大while(Flag=1)P0=0x7C;/显示b标示反转for(i=0;i4;i+)/4相P1=B_Rotationi;/输出对应的相Delay(500);/改变这个参数可以调整电机转速,数字越小,转速越大while(Flag=2)/停止P0=0x6D;/显示SP1=0;/*/*中断入口函数*/*/voidISR_Key(vo
22、id)interrupt2using1Delay(500);if(!KEY)Flag+;/s3按下触发一次if(Flag=3)Flag=0;6. 结语该系统设计通过单片机AT89S52来控制步进电机的运转状况,实现了占用CPU时间少,效率高;易控制步进电机的转速;易控制电机的转向;提高了步进电机的步进精度等。再有,该设计过程考虑比较周全,系统中除采用光电隔离电路有效地抑制电磁干扰,以提高系统的可靠性外,还考虑到以下方面:第一、在驱动回路中,适当减缓MOSFET开关的开通速度,同时可以采用RCD吸收回路,抑制浪涌的产生,减少电磁干扰的强度。其次,合理的接地设计。各单元回路的接地必须按照一定顺序连接。同时步进电机各相通电显示只需在单片机的P2口低三位外接3个发光二极管,在其高三位外接导线将环分后的信号引入单片机。由软件根据高三位状态点亮与熄灭发光二极管。参考文献-