步进电机驱动电路
- 格式:doc
- 大小:106.00 KB
- 文档页数:8
四相步进电机驱动电路及驱动程序设计我们用一个单片机控制多个步进电机指挥跳舞机器人的双肩、双肘和双脚伴着音乐做出各种协调舒缓充满感情的动作,荣获一等奖。
电路采用74373锁存,74LS244和ULN2003作电压和电流驱动,单片机(Atc52)作脉冲序列信号发生器。
程序设计基于中断服务和总线分时利用方式,实时更新各个电机的速度、方向。
整个舞蹈由运动数据所决定的一截截动作无缝连接而成。
本文主要介绍一下这个机器人的四相五线制步进电机驱动电路及程序设计.1、步进电机简介步进电机根据内部线圈个数不同分为二相制、三相制、四相制等。
本文以四相制为例介绍其内部结构。
图1为四相五线制步进电机内部结构示意图。
2、四相五线制步进电机的驱动电路电路主要由单片机工作外围电路、信号锁存和放大电路组成。
我们利用了单片机的I/O端口,通过74373锁存,由74LS244驱动,ULN2003对信号进行放大。
8个电机共用4bit I/O端口作为数据总线,向电机传送步进脉冲。
每个电机分配1bit的I/O端口用作74373锁存信号,锁存步进电机四相脉冲,经ULN2003放大到12V驱动电机运转。
电路原理图(部分)如图2所示。
(1)Intel 8051系列单片机是一种8位的嵌入式控制器,可寻址64K字节,共有32个可编程双向I/O口,分别称为P0~P3。
该系列单片机上集成8K的ROM,128字节RAM可供使用。
(2)74LS244为三态控制芯片,目的是使单片机足以驱动ULN2003。
ULN2003是常用的达林顿管阵列,工作电压是12V,可以提供足够的电流以驱动步进电机。
关于这些芯片的详细介绍可参见它们各自的数据手册。
(3)74373是电平控制锁存器,它可使多个步进电机共用一组数据总线。
我们用P1.0~P1.7作为8个电机的锁存信号输出端,见表1。
这是一种基于总线分时复用的方式,以动态扫描的方式来发送控制信号,这和高级操作系统里的多任务进程调度的思想一致。
实用的步进电机驱动电路(图)概述步进电机是一种将电脉冲转化为角位移的执行机构,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。
本设计选用第三种方案,用PMM8713三相或四相步进电机的脉冲分配器、SI-7300A 两相或四相功率驱动器,组成四相步进电机功率驱动电路,以提高集成度和可靠性,步进电机控制框图见图1。
图1 步进电机控制系统框图硬件简介● PMM8713原理框图及功能PMM8713是日本三洋电机公司生产的步进电机脉冲分配器,适用于控制三相或四相步进电机。
控制三相或四相步进电机时都可以选择3种励磁方式,每相最小吸入与拉出电流为20mA,它不仅满足后级功率放大器的输入要求,而且在其所有输入端上均内嵌施密特触发电路,抗干扰能力强,其原理框图如图2所示。
图2 PMM8713的原理框图在PMM8713的内部电路中,时钟选通部分用于设定步进电机的正反转脉冲输入发。
PMM8713有两种脉冲输入法:双脉冲输入法和单脉冲输入法。
采用双脉冲输入法时,CP、CU两端分别输入步进电机正反转的控制脉冲。
当采用单脉冲输入时,步进电机的正反转方向由U/D的高、低电位决定。
激励方式控制电路用来选择采用何种励磁方式。
激励方式判断电路用于输出检测;而可逆环形计数器则用于产生步进电机在选定的励磁方式下的各相通断时序信号。
● SI-7300A的结构及功率驱动原理SI-7300A是日本三青公司生产的高性能步进电机集成功率放大器,该器件为单极性四相驱动,采用SIP18封装。
步进电机功率驱动级电路可分为电压和电流两种驱动方式。
电流驱动方式最常用的是PWM恒流斩波驱动电路,也是最常用的高性能驱动方式,其中一相的等效电路图如图3所示。
图3 LM331电压/频率变换电路● LM331芯片LM331是美国国家半导体公司生产的双列直插式8脚芯片,只需接入几个外部元件就可以方便地构成电压/频率(V/F)变换电路,电路如图4所示。
步进电机H桥功率驱动电路设计步进电机是一种特殊的直流电机,可以通过一定的控制方式实现精准的角度控制。
步进电机的驱动电路通常采用H桥功率驱动电路,其中H桥电路是通过四个开关元件(通常是MOSFET管或者IGBT管)和两个电源组成的,能够实现电机的正、反向旋转。
H桥电路由四个开关元件组成,其中开关S1和S4连接在一起,共同控制电机的一个端口,开关S2和S3连接在一起,共同控制电机的另一个端口。
H桥电路有四种状态:S1和S4为导通状态,S2和S3为截止状态;S2和S3为导通状态,S1和S4为截止状态;S1和S3为导通状态,S2和S4为截止状态;S2和S4为导通状态,S1和S3为截止状态。
步进电机的驱动原理是通过控制H桥电路的四种状态,使得电机在施加电源电压的不同方向上旋转。
控制步进电机的一个重要参数是步距角,即电机每转一圈所走过的角度。
根据步距角的大小,步进电机可以分为全角步进电机和半角步进电机。
全角步进电机的步距角为360度/步数,控制方式可以是单相驱动方式或者双相驱动方式。
单相驱动方式只需要两个驱动电路,一个控制电机的一个端口,另一个端口通过调整S1和S4的导通时间来实现,通过调整导通的时间长短,可以控制电机的速度。
双相驱动方式需要四个驱动电路,分别控制电机的两个端口,通过交替切换四种状态来实现控制。
半角步进电机的步距角为360度/(2×步数)。
控制半角步进电机通常采用四相驱动方式,需要八个驱动电路,通过交替切换八种状态来实现控制。
四相驱动方式的原理是将步进电机的一个端口分成四段,通过施加电源电压的不同顺序,使得电机在不同的相邻段上产生磁场,并完成旋转。
步进电机的驱动电路设计需要考虑以下几个问题:1.驱动电路的工作电压范围,要能适应电机的额定电压以及工作电压波动范围。
2.驱动电路的开关元件的选型,要能够满足电流和功率的要求,并具有足够的开关速度。
3.驱动电路的保护措施,要考虑过流、过热等异常情况的保护。
第三节步进电动机及其驱动一、步进电机的特点与种类1.步进电机的特点步进电机又称脉冲电机。
它是将电脉冲信号转换成机械角位移的执行元件。
每当输入一个电脉冲时,转子就转过一个相应的步距角。
转子角位移的大小及转速分别与输入的电脉冲数及频率成正比,并在时间上与输入脉冲同步。
只要控制输入电脉冲的数量、频率以及电机绕组通电相序即可获得所需的转角、转速及转向。
步进电动机具有以下特点:✍工作状态不易受各种干扰因素(如电压波动、电流大小与波形变化、温度等)的影响;✍步进电动机的步距角有误差,转子转过一定步数以后也会出现累积误差,但转子转过一转以后,其累积误差变为“零” ;✍由于可以直接用数字信号控制,与微机接口比较容易;✍控制性能好,在起动、停止、反转时不易“丢步”;✍不需要传感器进行反馈,可以进行开环控制;✍缺点是能量效率较低。
就常用的旋转式步进电动机的转子结构来说,可将其分为以下三种:(1)可变磁阻(VR-Variable Reluctance),也叫反应式步进电动机(2)永磁(PM—Permanent Magnet)型(3)混合(HB—Hybrid)型(1)可变磁阻(VR—Variable Reluctance)结构原理:该类电动机由定子绕组产生的反应电磁力吸引用软磁钢制成的齿形转子作步进驱动,故又称作反应式步进电动机.其结构原理如图3.5定子1上嵌有线圈,转子2朝定子与转子之间磁阻最小方向转动,并由此而得名可变磁阻型。
图3。
6 可变式阻步进电机可变磁阻步进电机的特点:❖反应式电动机的定子与转子均不含永久磁铁,故无励磁时没有保持力;❖需要将气隙作得尽可能小,例如几个微米;❖结构简单,运行频率高,可产生中等转矩,步距角小(0。
09~9°)❖制造材料费用低;❖有些数控机床及工业机器人上使用。
(3)混合(HB—Hybrid)型结构原理这类电机是PM式和VR式的复合形式。
其定子与VR类似,表面制有小齿,转子由永磁铁和铁心构成,同样切有小齿,为了减小步距角可以在结构上增加转子和定子的齿数。
三相步进电机驱动电路设计一、引言步进电机是一种将电脉冲信号转换为机械转动的电动机,具有结构简单、定位精度高、起动停止快的特点,被广泛应用于数控机床、机器人、自动化设备等领域。
本文将介绍三相步进电机驱动电路的设计。
二、驱动原理三相步进电机的驱动原理基于磁场交替作用的原理,通过控制电流的改变,使电机在不同的磁场中转动。
它分为两种驱动方式:全、半步进驱动。
全步进驱动方式中,步进电机每接收一个脉冲信号就转动一个步距,而在半步进驱动方式中,步进电机每接收一个脉冲信号就转动半个步距。
本文以全步进驱动为例进行设计。
三、电路设计1.电源电路:步进电机驱动电路需要一个稳定的直流电源,通常使用电容滤波器和稳压电路来提供稳定的电压输出,保证电机正常工作。
2.脉冲发生及控制电路:脉冲发生电路产生脉冲信号,用于控制步进电机的转动。
常用的发生电路有震荡电路和微处理器控制电路。
本文以震荡电路为例,通过计算电容充放电时间确定震荡频率。
3.驱动电路:驱动电路是步进电机的核心,它将脉冲信号转换为电流控制信号,控制步进电机的转动。
常用的驱动方式有双H桥驱动和高低电平驱动。
本文以双H桥驱动为例进行设计。
4.电流检测和反馈电路:为了控制步进电机的转速和转矩,需要对电机的电流进行检测和反馈。
常用的检测电路有电阻检测和霍尔效应检测。
通过检测电流大小,可以调节驱动电流,以达到控制步进电机的效果。
5.保护电路:为了保护步进电机和驱动电路的安全,需要设计相应的保护电路。
常见的保护电路有过流保护电路、过热保护电路和短路保护电路等。
四、总结本文介绍了三相步进电机驱动电路的设计。
通过合理设计电路,可以实现对步进电机的控制和保护,提高步进电机的运行效果和寿命。
未来,可以进一步研究和改进三相步进电机驱动电路的设计,以满足更高精度、更高速度的步进电机应用需求。
步进电机驱动电路[单机片]1. 步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。
只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。
图1是该四相反应式步进电机工作原理示意图。
图1 四相步进电机步进示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。
而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。
依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。
单四拍与双四拍的步距角相等,但单四拍的转动力矩小。
八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:图2.步进电机工作时序波形图图3 步进电机驱动器系统电路原理图AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。
使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。
图中L1为步进电机的一相绕组。
AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。
图3中的RL1~RL4为绕组内阻,50Ω电阻是一外接电阻,起限流作用,也是一个改善回路时间常数的元件。
D1~D4为续流二极管,使电机绕组产生的反电动势通过续流二极管(D1~D4)而衰减掉,从而保护了功率管TIP122不受损坏。
步进电机驱动电路单极性(unipolar) 和双极性(bipolar) 是步进电机最常采用的两种驱动架构。
单极性驱动电路使用四颗晶体管来驱动步进电机的两组相位,电机结构则如图1所示包含两组带有中间抽头的线圈,整个电机共有六条线与外界连接。
这类电机有时又称为四相电机,但这种称呼容易令人混淆又不正确,因为它其实只有两个相位,精确的说法应是双相位六线式步进电机。
六线式步进电机虽又称为单极性步进电机,实际上却能同时使用单极性或双极性驱动电路。
单极性步进电机驱动电路双极性步进电机的驱动电路则如图2所示,它会使用八颗晶体管来驱动两组相位。
双极性驱动电路可以同时驱动四线式或六线式步进电机,虽然四线式电机只能使用双极性驱动电路,它却能大幅降低量产型应用的成本。
双极性步进电机驱动电路的晶体管数目是单极性驱动电路的两倍,其中四颗下端晶体管通常是由微控制器直接驱动,上端晶体管则需要成本较高的上端驱动电路。
双极性驱动电路的晶体管只需承受电机电压,所以它不像单极性驱动电路一样需要箝位电路。
双极性步进电机驱动电路用单片机控制步进电机2006-4-9 平凡步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
一、步进电机常识常见的步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。
在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。
它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。
这种步进电机的应用最为广泛。
二、永磁式步进电机的控制下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。
图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。
要使用步进电机转动,只要轮流给各引出端通电即可。
将COM端标识为C,只要AC、 C、BC、 C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、、B、轮流接地。
下表列出了该电机的一些典型参数:表1 35BY48S03型步机电机参数型号步距角相数电压电流电阻最大静转距定位转距转动惯量35BY48S03 7.5 4 12 0.26 47 180 65 2.5有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,因此用一块开路输出达林顿驱动器(ULN2003)来作为驱动,通过P1.4~P1.7来控制各线圈的接通与切断,电路如图3所示。
开机时,P1.4~P1.7均为高电平,依次将P1.4~P1.7切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。
如果要改变电机的转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接通的顺序。
图1 35BY48S03型步进电机外形图图2 35BY48S03型步进电机的接线图图3 单片机控制35BY48S03型步进电机的电路原理图三、步进电机的驱动实例要求:控制电路如图3所示,开机后,电机不转,按下启动键,电机旋转,速度为25转/分,按下加1键,速度增加,按下减1键,速度降低,最高速度为100转/分,最低转带为25转/分,按下停止键,电机停转。
速度值要求在数码管上显示出来。
1.要求分析按上面的分析,改变转速,只要改变P1.0~P1.3轮流变低电平的时间即可达到要求,这个时间不应采用延时来实现,因为会影响到其他功能的实现。
这里以定时的方式来实现。
下面首先计算一下定时时间。
按要求,最低转速为25转/分,而上述步进电机的步距角为7.5,即每48个脉冲为1周,即在最低转速时,要求为1200脉冲/分,相当于50ms/脉冲。
而在最高转速时,要求为100转/分,即48000脉冲/分,相当于12.5ms/脉冲。
可以列出下表表1 步进电机转速与定时器定时常数关系速度单步时间(us) TH1 TL1 实际定时(us)25 50000 76 0 49996.826 48077 82 236 48074.1827 46296 89 86 46292.6128 44643 95 73 44640.155… … … … …100 12500 211 0 12499.2表中不仅计算出了TH1和TL1,而且还计算出了在这个定时常数下,真实的定时时间,可以根据这个计算值来估算真实速度与理论速度的误差值。
表中TH1和TL1是根据定时时间算出来的定时初值,这里用到的晶振是11.0592M。
有了上述表格,程序就不难实现了,使用定时/计数器T1为定时器,定时时间到后切换输出脚即可。
2.程序实现定义DSB-1A实验板的S1为启动键,S2为停止键,S3为加1键,S4为减1键,程序如下:StartEnd bit 01H ;起动及停止标志MinSpd EQU 25 ;起始转动速度MaxSpd EQU 100 ;最高转动速度Speed DATA 23H ;流动速度计数DjCount DATA 24H ;控制电机输出的一个值,初始为11110 111Hidden EQU 10H ;消隐码Counter DATA 57H ;显示计数器DISPBUF DATA 58H ;显示缓冲区ORG 0000HAJMP MAINORG 000BHJMP DISPORG 001BHJMP DJZDORG 30HMAIN:MOV SP,#5FHMOV P1,#0FFHMOV A,#HiddenMOV DispBuf,AMOV DispBuf+1,AMOV DispBuf+2,AMOV DjCount,#11110111BMOV SPEED,#MinSpd ;起始转动速度送入计数器CLR StartEnd ;停转状态MOV TMOD,#00010001B ;MOV TH0,#HIGH(65536-3000)MOV TL0,#LOW(65536-3000)MOV TH1,#0FFH;MOV TL1,#0FFHSETB TR0SETB EASETB ET0SETB ET1LOOP: ACALL KEY ;键盘程序JNB F0,m_NEXT1 ;无键继续ACALL KEYPROC ;否则调用键盘处理程序m_NEXT1:MOV A,SpeedMOV B,#10DIV ABMOV DispBuf+5,B ;最低位MOV B,#10DIV ABMOV DispBuf+4,BMOV DispBuf+3,AJB StartEnd,m_Next2CLR TR1 ;关闭电机JMP LOOPORL P1,#11110000Bm_Next2:SETB TR1 ;启动电机AJMP LOOP ;主程序结束;---------------------------------------D10ms:……;---------延时程序,键盘处理中调用KEYPROC:MOV A,B ;获取键值JB ACC.2,StartStop ;分析键的代码,某位被按下,则该位为1 JB ACC.3,KeyStyJB ACC.4,UpSpdJB ACC.5,DowSpdAJMP KEY_RETStartStop:SETB StartEnd ;启动AJMP KEY_RETKeySty:CLR StartEnd; ;停止AJMP KEY_RETUpSpd:INC SPEED;MOV A,SPEEDCJNE A,#MaxSpd,K1 ;到了最多的次数?DEC SPEED ;是则减去1,保证下次仍为该值K1:AJMP KEY_RETDowSpd:DEC SPEEDMOV A,SPEEDCJNE A,#MAXSPD,KEY_RET ;不等(未到最大值),返回MOV SPEED,#MinSpd;KEY_RET:RETKEY:……获取键值的程序RETDjZd: ;定时器T1用于电机转速控制PUSH ACCPUSH PSWMOV A,SpeedSUBB A,#MinSpd ;减基准数MOV DPTR,#DjHMOVC A,@A+DPTRMOV TH1,AMOV A,SpeedSUBB A,#MinSpdMOV DPTR,#DjLMOVC A,@A+DPTRMOV TL1,AMOV A,DjCountCPL AORL P1,AMOV A,DjCountJNB ACC.7,d_Next1JMP d_Next2d_Next1:MOV DjCount,#11110111Bd_Next2:MOV A,DjCountRL AMOV DjCount,A ;回存ANL P1,APOP PSWPOP ACCRETIDjH: DB 76,82,89,95,100,106,110,115,119,123,12……DjL: DB 0,236,86,73,212,0,214,96,163,165……DISP: ;显示程序POP PSWPOP ACC……RETIBitTab: DB 7Fh,0BFH,0DFH,0EFH,0F7H,0FBHDISPTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H, 0A1H,86H,8EH,0FFHEND3.程序分析本程序主要由键盘程序、显示器程序、步进电机驱动程序三部份组成,主程序首先初始化各变量,将显示器的高3位消隐,步进电机驱动的各引脚均输出高电平,然后调用键盘程序,并作判断,如果有键按下,则调用键盘处理程序,否则直接转下一步。
下一步是将当前的转速值转换为BCD码,送入显示缓冲区;接着判断StartEnd这个位变量,是“1”还是“0”,如果是“1”,则开启定时器T1,否则关闭定时器T1,为防止关闭时某一相线圈长期通电,因此,在关闭定时器T1时,将P1.0~P1.3均置高。
至此,主程序的工作即结束。
这里为简便起见,这里没有做高位“0”消隐的工作,即如果速度为10转/分,则显示值“010”,读者可以自行加入相关的代码来处理这一工作。
步进电机的驱动工作是在定时器T1的中断服务程序中实现的,由前述分析,每次的定时时间到达以后,需要将P1.0~P1.3依次接通,程度中用了一个变量DjCntr来实现这一功能,在主程序初始化时,该变量被赋予初值11110111B,进入到定时中断以后,将该变量取出送ACC累加器,并在累加器中进行左移,这样,该数值就变为1110 1111,然后将该数与P1相“与”,此时,P1.4即输出低电平,第二次进入中断时,先将该数取反,成为 0001 0000,然后将该数与P1相“或”,这样,P1.4即输出高电平,关断了相应的线圈,然后将该数重新取出,并作左移,即1110,1111右移成为1101 1111,将该数与P1相“与”,这样P1.5即输出低电平,依次类推,P1.7~P1.4即循环输出低电平。