更新时间:2022-07-19 16:02:37作者:佚名
基于单片机的步进马达控制基于51单片机的步进马达控制[摘要]本课程设计的内容是借助51单片机,达到控制步进马达的启动、停止、正转、反转、两档速率和状态显示的目的,使步进电机控制愈发灵活.步进马达驱动芯片采用ULN2803,ULN2803有大电压、高电流,外电路简单等优点.借助四位数码管增设马达状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求.关键字:步进马达、数码管、51单片机、ULN2803哪些是步进马达步进马达是一种将电脉冲转化为角位移的执行机构。浅显一点讲:当步进驱动器接收到一个脉冲讯号,它就驱动步进马达按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,进而达到确切定位的目的;同时也可以通过控制脉冲频率来控制马达转动的速率和加速度,进而达到调速的目的。1.2步进马达的种类步进马达分永磁式(PM)、反应式(VR)、和混和式(HB)三种。永磁式步进通常为两相,力矩和容积较小,步进角通常为7.55度;反应式步进通常为单相,可实现大扭矩输出,步进角通常为1.5度,但噪音和震动都很大。在欧美等发达国家80年代已被淘汰;混和式步进是指混和了永磁式和反应式的优点。
它又分为两相和五相:两相步进角通常为1。8度而五相步进角通常为0.7度。这些步进马达的应用最为广泛。1.3步进马达的特性1.精度高通常的步进马达的精度为步进角的3-5%,且不累积。可在广阔的频度范围内通过改变脉冲频度来实现调速,快速起停、正反转控制及刹车等,这是步进电动机最突出的优点2.过载性好其怠速不受负载大小的影响,不像普通马达,当负载加强时才会出现速率下滑的情况,所以步进马达使用在对速率和位置都有严格要求的场合;3.控制便捷步进马达是以“步"为单位旋转的,数字特点比较显著,这样就给计算机控制带来了很大的便捷,反过来,计算机的基于单片机的步进马达控制出现也为步进马达开辟了更为宽广的使用市场;4。整机结构简单传统的机械速率和位置控制结构比较复杂,调整困难,使用步进马达后,致使整机的结构显得简单和紧凑。1.4步进马达的原理是一种四相可变磁阻型的步进马达结构示意图。这些马达绕组上有八个凸齿,每一个齿上有一个线圈。线圈定子的联接形式,是对称齿上的两个线圈进行反相联接,如图中所示。八个齿构成四对,所以称为四相步进马达。它的工作过程是这样的:当有一相定子被激励时,磁路从正相齿,经过软铁芯的定子,并以最短的路径流向负相齿,而其他六个凸齿并无铁损。
为使磁路路径最短,在磁场力的作用下,定子被逼迫移动,使近来的一对齿与被激励的一相对准。在图1(a)中A励,定子上大箭头所指向的那种齿,与正向的A齿对准。从这个位置相进行激励,如图1中的(b),定子向反秒针转过15。若是D相被激励,如图1中的(c),则定子为顺秒针转过15。下一步是C相被激励.由于C相有两种可能性:A—B-C—D或A—D-C—B。一种为反秒针转动;另一种为顺秒针转动。但每步都使定子转动15。马达步长(步距角)是步进马达的主要性能指标之一,不同的应用场合,对步长大小的要求不同。改变控制定子数(相数)或极数(定子齿数),可以改变步长的大小。它们之间的互相关系,可由下式估算:Lθ=360步进马达的驱动混合步进马达的工作原理在实际应用中,最流行的还是混合型的步进马达。但工作原理与图1所示的可变磁阻型同步马达相同。但结构上稍有不同。比如它的定子嵌有永吸铁石.激励磁路平行于X轴.通常来说,这类马达具有四基于单片机的步进马达控制相定子,有八个独立的引线终端,如图2a所示。或则接成两个三端方式,如图2b所示。每相用双极性晶体管驱动,但是联接的极性要正确。
图3所示的电路为四相混合型步进马达晶体管驱动电路的基本方式。它的驱动电流是固定的。表1列举了全部步进开关的逻辑时序。Q1Q2Q3Q4方案设计与论证2.1按键设计该系统中只运用到三个控制按键,即“正反”,“换挡”,“启停”,因为按键较少,所以采用独立键电路,这些按钮电路的键盘结构相对行列式键盘电路更简单,更使人易懂。2。2显示电路设计如图2.31,采用LED数码管动态显示数据与个项参数,方式简单,容易控制,成本低.设计如右图10U1C111213U1DR1R2R3R4R5R6R7R8R9Q1Q2Q3Q4GNDGNDGND5VD1D2D3D45V5VGNDAIN/AINBIN/BINCOMGND+12VAOUT/AOUTBOUT/BOUT基于单片机的步进马达控制驱动电路设计驱动电路可分为:二极管直接驱动(图3),采用移相恒流驱动形式(图2。41)和芯片驱动电路等.驱动电路的性能直接关系到步进马达走步的确切与稳定。本电路采用驱动芯片03。3是一种大电压高电流型元件,外电路简单(图2。
42)。P27St.42三电路设计3.1、设计要点和软硬环境1、步进马达的设计要点和软硬件环境步进马达和普通电动机不同之处是步进马达接受脉冲讯号的控制.即步进马达是将电脉冲讯号转换为机械角位移的执行器件。步进马达的控制可以用硬件,也可以用软件通过单片机实现。硬件方式是采用脉冲分配器芯片进行通用换相控制;而软件方式是用单片机形成控制脉冲来控制步进马达的运行状态,这些方式可简化电路,增加成本。在用软件控制时,主要设计要点如下:确定控制步数和每一步的延时时间。因为单片机的驱动电压通常都比较小,不能直接驱动马达工作,所以单片机的I/O口输出必须接驱动电路,即功率驱动,才得以控制马达正常工作。控制框图如右图所示:基于单片机的步进马达控制(2)、相关参数设定:这儿采用四相六线步进马达,这款步进马达的驱动电流12V,步进角为一圈360须要48个脉冲完成.其缺相A-AB-B-BC-C—CD—D-DA。所以其正转控制脉冲为:01h,09h,08h,0ch,04h,06h,02h,03h,00h;反转控制脉冲为:01h,03h,02h,06h,04h,0ch,08h,09h,00单片机的晶振为12MHZ;(3)、系统电路图:一、单片机最小系统的硬件原理接线图:1、接电源:VCC(PIN40)、GND(PIN20).加接退耦电容0.1uF2、接晶体:X1(PIN18)、X2(PIN19)。
注意标出晶体频度(选用12MHz),还有辅助电容20pF接复位:RES(PIN9)。接上电复位电路,以及自动复位电路,剖析复位工作原理二、单片机内部I/O部件:(所为学习单片机,实际上就是编程控制以下I/O部件,完成指定任务)1、四个8位通用I/O端口,对应引脚P0、P1、P2两个16位定时计数器;(TMOD,TCO0,TL1,TH1)一个中断控制器;(IE,IP)按照以上的方案比较与论证确定总体方案,确定硬件原理图。原理图如下:控制按键单片机功率驱动基于单片机的步进马达控制图103.2主要元件资料AT89C51单片机是一种带4K字节FLASH储存器(FPEROM—FlarogrammableanableReadnlyMemory)的低电流、高性能CMOST是一种带2K字节闪存可编程可擦除只读储存器的单片机。单片机的可擦除只读储存器可以反复擦除1000该元件采用ATMEL莱州度非易失储存器制造技术制造,与工业标准的MCS—51指令集和输出管脚相兼容.因为将多功能8位CPT89C51是一种高效微控制器,A是它的一种精简版本。
AT89C单片机为好多嵌入式控制系统提供了一种灵活性高且价廉的方案.与MCS—51兼容4K字节可编程FLASH储存器数据保留时间:10年全静态工作:0Hz-24MHz五级程序储存器锁定位内部RAM32可编程I/O线两个16位定时器/计数器可编程串行通道低帧率的闲置和掉电模式片内振荡器和时钟电路寿命:1000写/擦循环ULN2803步进马达控制器是一种大电压型高电流元件,步进马达控制器。内部电路如图11基于单片机的步进马达控制图11系统软件设计基于单片机的步进马达控制4.1程序流程图4.1基于单片机的步进马达控制马达是否工正反转显示正转显示反转是否停机是否停机处理马达速率处理马达速率停机返回开始显示清零程序初使化并口是否发送数据调用子程序结束基于单片机的步进马达控制图4.14.2程序设计按照要求,可以将程序分为以下几个部分:(1)按键输入程序设计本系统使用的按键较少,因而采用独立式按键插口设计。独立式按键适用于按钮数目较少的场合.独立按键工作原理:通过上拉内阻接到+5V上。
无键盘,处于高电平状态,有键按下电平为低。在消除晃动影响上是可以采用了软件消抖方式:在第一次测量到有键按下时,执行一段延时子程序后(约5ms),再确认电平是否仍保持闭合状态电平,假如保持闭合状态电平,则确认真正有键按下,进行相应处理工作,清除了晃动的影响。(2)步进马达运行步数控制程序此方案采用三相和双相交差通电处理方法.此方式具有运行速率稳定,运行步数确切无误等优点。第五章调试总结5。1操作控制:本电路经调试符合题目要求,各项技术指标均达到设计的目的.具体操作控制方式如下:1、当马达启停按键时,步进马达依照拟定默认状态开始转动;2、当马达再启停按键时,步进马达停止转动;3、当马达换挡按键时,步进马达速率快速转动;4、当马达再换挡按键时,步进马达速率平缓转动;5、当马达正反按键时,步进马达反转;6、当马达再正反按键时,步进马达正转;5.2设计过程中遇见的主要问题以及解决办法1、仿真时数码管显示有闪动,在程序中多加上几次display()函数即可.2、步进马达在仿真调试的时侯,出现往返转的情况,即不能正常转动,PROTEUS中的步进马达MOTOR-STEPPER,不知道具体机型,即不晓得其内部接线结构,经过反复的调试,才得以解决问题。
在仿真调试成功的前提下,进行硬件调试的时侯,出现步进马达不转的情况,这是由于仿真的步进马达和硬件的步进电机是两个不同的机型,不同步进马达所容许的最快转动速度是不同的,在设置延时程序的时间参数时,一旦超过此值,马达就不能启基于单片机的步进马达控制动。所以硬件调试时,须要重新设置延时程序的时间参数,问题才得以解决.3、第一次烧录程序时烧不进去,不知怎么解决。驱动也装好了,各方面都没问题就是不晓得问题出在那里。心得感受步进马达的控制可以用硬件,也可以用软件通过单片机实现。本系统采用了软件方式单片机控制步进电机,即用单片机形成控制脉冲来控制步进马达的运行状态,这些方比采用硬件方式,即采用脉冲分配器芯片进行通用换相控制,电路愈发简单,成本更低。在做本次设计的过程中,我感慨最深的当属查阅大量的设计了。为了让自己的设计愈发建立,查阅这方面的设计资料是非常必要的。在此次课程设计中,我们运用到了先前所学的专业课知识,如:C语言、模拟和数字电路知识等。其实过去未曾独立应用过它们,但在学习的过程中带着问题去学我发觉效率很高,这是我做此次课程设计的又一收获。设计结束了,并且从中得到的知识会让我受惠终生。
发觉、提出、分析、解决问题和实践能力的提升就会获益于我在之后的学习、工作和生活中。这次设计更锻练了我的毅力,我认为做任何事情要善始善终,不要中途舍弃,只要自己认真的去对待,再难的问题也能找到办法解决。最后谢谢张老师在我遇见困难时,给与我们的建议与鼓励。附表一:引用文献占友,王彦朋,孟志永,《单片机外围电路设计》,电子工业出版社;3童诗白,华成英,《模拟电子技术基础》,上海高等教育出版社;4康华光,陈大钦,《电子技术基础》,上海高等教育出版社;5黄继昌,张海贵,郭继忠,《实用单元电路及其应用》,人民邮张迎新《单片机中级教程——单片机基础》,上海民航航天大。基于单片机的步进马达控制附表二:单片机源程序/*AllCopyAight@2012P0口控制段选p1步进马达P2控制位选ﻩ独立鼠标P3。0~P3.2数码管的第一位为正反转标志位1:反转数码管的第二位为速率标志位#ucharnsignedchar#defineuintunsignedelay(uintxms);//延时子函数voidkeyscan();ﻩﻩ//鼠标检查子程序voiddisplay();sbitey1=P3^0;ﻩ//正反转选择sbkey2=P3^1;//速率选择key3=P3^2;ﻩﻩ//执行键基于单片机的步进马达控制ucharzx,k,sudu,bu;intuchacodeable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,x7f,0x6f单片机控制步进电机,0x77,0x7c,x39,0x5A—AB-B—BC—C—CD-D-DA(即一个脉冲,转3。
75ucharcodeZ[]={0x11,0x33,0x22,4,0xcc,0x88,0x99};//反转W[]={0x99,0x88,0xcc,0x44,0x66,0x22,0x33,0x11};A—B—C-D(即一个脉冲,转7.5度)*ucharcodeshuangz[]={0x88,0x22,0x44,0x11};ucharodeshugw[]={0x11,0x44,0x22,0x88};A-B-C-D(即一个脉冲,转7.5//ucharcodedanz[]={0x88,0x22,0x44,0x11};//ucharcodedanw[]={0x11,0x44,0x22,0x88};voidmain()MOD=0x01;基于单片机的步进马达控制EA=1;ETTH0=-1000/256;TL0=-1000%256;TRﻩwhile(1)keyscaplay();ﻩ//if(zx==1)qudong();voidkeyscan()ﻩif(key1==0)ﻩ//正反转选择while(!key1)display();ﻩif(key2==0)ﻩﻩ//速率选择udu==2)sudu=0;ﻩwhile(!key2)display();ﻩdelay(5);ﻩﻩif(key3==0)ﻩzx++;基于单片机的步进马达控制ﻩif(zx==2)zx=0;voidtime0()uptL0=-1000%256;for(bu=4;bu>0;bu--)P1=shuangz[bu];if(sudu==0)//八拍基于单片机的步进马达控制for(bu=8;bu〉0;bu—-)P1=shuangw[belay(2);display();voiddelay(uintxms)display()ﻩﻩ//正反转标志位ﻩP2=0x01;ﻩ//选通第一位00000001delay(3);P0=table[sudu];ﻩﻩ//速率标志位基于单片机的步进马达控制P2=0x02;//选通第二位0000010delay(3);P0=table[zx];ﻩ//开关标志位P2=0x04;ﻩ//选通第二位0000100delay(3);