摘 要根据目前市面上销售的步进电机驱动电路较为复杂编程也较为烦琐,性能不佳等缺点,现介绍一款新颖步进电机驱动电路,利用移位寄存器作为脉冲分配器,用DAC0832 构成细分驱动。经过多次实验,编程实现了对步进电机的转速和转向的控制并且可以精确计算出转过某一角度所需要的脉冲个数,实现精确控制步数这一目的。有步距小、运转稳定、抗噪声干扰强、带负载能力强和等优点。 关键词:步进电机;细分驱动1 引言步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变得非常简单。 相比直流电机,步进电机具有转矩大、惯性小、响应频率高等优点。需要逻辑关系分配脉冲,通过功率放大器加到步进电机的线圈上,因此具有瞬间起动与急速停止的优越特性。并且与其他驱动元件相比,有明显优点:通常不需要反馈就能实现位移和速度的精确控制。 输出的转角或位移精度高,误差不会积累。本文利用移位寄存器作为脉冲分配器无须烦琐的编程,轻松实现了脉冲的移位和分配而且使用细分驱动使步进电机的性能大大提高。 2 步进电机驱动实现图1 是步进电机驱动电路的系统框图,此电路以单片机为核心,利用移位寄存器作为脉冲分配器省去了繁琐的编程,只需单片机给几个控制信号就可以实现步进电机电机的控制,为了提高步进电机性能,用D / A 转换实现细分驱动调节步距的目的。2.1 细分驱动的原理步进电机的细分控制是由驱动器精确控制步进电机的相电流来实现的。 以四相电机为例,假如电机的相电流为2 A ,如果使用常规驱动(如常用的恒六载波方式)驱动电机,电机每运行一步,其绕组内的电流将从0 突然变为2 A 或由2 A 突然变为0 ,相电流的巨大变化,必然会引起电机运行的振荡和噪音。如果使用细分驱动器,在1 0 细分相—状态下驱动该电机,电机每走一微步,其绕组内的电流变化只有0.2A 而不是2A,且绕组内的电流变化,这样就大大改善了电机的振荡和噪音。提高步进电机性能上的优点才是细分的真正优点。步进电机细分器是将驱动电流设计成可变的恒流源通过控制绕组中的电流的数值可以调整步进电机步距的大小,从而把原步距角细分成若干步来完成。即原来对应于一个电压脉冲,转子转动一步为1.8 度,经10 细分后则每走一步为0.18度。一般情况下,电机的定子若为m 相绕组,如每次仅一相通电,那么一个循环,电机转子转过一个齿距角ar。因此,步进电机的步距角af 为: af=ar/m=360/mZr (1)式(1 )中,m 为定子的绕组数,Z 为转子齿牙,对同一台步进电机通过改变通电方式可以减小步距af,实现了步进电机局角的细分,这有利于控制系统中实现精确控制。但这种方法作用有限,不能满足更高的精度要求。根据式(1 )进一步减小步距a f的途径是增加定子相数和转子的齿数a f 。相应的电机成本和难度都会增加。为了使可达到的细分较大,就要在控制电路上采取一定的措施。典型的方法是控制步进电机各相绕组的电流,使其按阶梯上升下降。这样,电机绕组中的电流是由0 跃升到额定值,而是要经过若干小步的变化能达到额定值,所以绕组中的电流变化比较均匀。图2 分别为四相电机八细分时的各相电流状态图。 (a )四相电机不细分各相电流状态图(b)四相电机八细分各相电流状态图图2 四相电机各相电流细分前后对比图由图2 (b )可知,八细分时各相电流1 / 4 的步距上升下降的。原来的一步转过的α p 将由八步完成,即实现了步距角的八细分。 2.2 细分驱动的实现脉冲信号的由单片机产生,输入到移位寄存器(74LS194)的CLK 端,移位积存器接成循环左右移如图3 所示。在输出端Q 1 、Q 2 、Q 3 、Q 4 端产移位脉冲如图4 通过U 1 ( 光电偶合器TLP521-1)控制电机每一相的电源通断。改变移位寄存器的S 0 、S 1 电平就可以改变移位脉冲的方向,从而改变步进电机的正反转,改变预知数实现相数驱动的改变。单片机根据步进电机所需要的电流进行计算,把计算好的数值量输入DAC0832 的数字量输入端通过D / A 转化,输出所需的模拟电压送到三极管的基极,通过改变基极的电流大小来改变集电极的电流大小从而实现图2 (b )中所示的阶梯状脉冲信号实现八细分驱动。DAC0832 把转化好的模拟量同时送到T 1 、T 2 、T 3 、T 4 四个三极管,单片机的脉冲同过移位寄存器变成移位脉冲来选择电机某一相的导通,改变移位寄存器的左右移控制信号可以改变电机的正反转。 图3 脉冲分配器电路图4细分驱动的实现其中图3 中的C L K 、S 0 、S 1 、MR 端口分别接单片机的P2.0~P2.3 端口A 、B 、C 、D 分别连到四个光偶器件K 1 为四个拨码开关设置预知数,图4 中的L1 为步进电机的一相绕组D1为续流二极管,R 2 为大功率限流电阻。 3 实验研究此款驱动电路以单片机为核心,用移位积存器作为脉冲分配器不仅省去烦琐的编程而且便于计算步进电机转过的角度θ =360 度(转子齿数Zr* 运行拍数),本文以四相转子齿为5 0 齿电机为对象的。四拍运行时步距角为θ=360 度/(50*4)=1.8 度。此驱动电路只要给移位寄存器的C L K 端四个脉冲,移位积存器的输出端即可产生四拍脉冲使电机转过1.8 度,所以需要360/1.8*4=800 个脉冲时使电机转一圈。假设要精确控制步进电机转过某一角度θ要求计算出需要单片机提供几个脉冲信号,则计算公式为n= θ /1. 8*4。此时只要控制单片机的输出脉冲个数即可达到要求。 细分驱动的计算也非常方便,DAC0832 是8 位的D/A 转换参考电压接5 V ,它的精度为5 / 2 5 5 。本细分驱动电路要实现八细分,即把5V 分为四个阶梯脉冲上升和四个阶梯脉冲下降。每个阶梯脉冲电位间隔5 / 4 = 1 . 2 5 V ,因此四个上升阶梯脉冲的电位U 分别为1.25V、2.5V、3.75V 和5V那么对应的数字量输入的计算为X=255*U,分别为77、1 2 8、1 9 1、2 5 5 转换成十六进制分别为4 D H ,8 0 H ,0 B F H ,0 F F H ,下降阶梯脉冲的值正好与其相反。 实现细分的程序如下所示: unsigned char code dispcode[]={0x4d,0x80,0x0bf,0x0ff, 0x0bf,0x80,0x4d,0x00} W h i e l (1 ){P2_0=1; // 置高电平光偶开启接通电机的某一相的电源for(i=0;i<8;i++) //D/A转换8 次实现8 细分的目的{P0=dispcode[i]; // 送转换值show_DA(); // 调DA转换子程序delay100us(); //延时程序1 加长阶梯脉冲宽度} P2_0=0; // 置0 光偶关闭同时断开电机的某一相的电源delaynMS(); // 延时程序2(改变延时时间可以改变步进电机的转速)} 执行以上程序在P2.0 口与D/A 转换的模拟量输出口测得的信号如图5 所示。在移位积存器的输出端Q1 、Q2 、Q 3 、Q 4 与D / A 转换的模拟量输出口测得的信号如图6 所示,改变延时2 可以改变电机的转速。当n 取1 时周期为2Ms 电机转速为V=(360/1.8)/(500/4)r/s 。 图5 P2.0 口与D/A 转换的输出信号 4 结论 通过实验发现使用移位寄存器作为脉冲的分配器省去繁琐的程序,只要给几个启动信号,循环脉冲就源源不断地产生,而且利用光偶器件把两个电源隔离避免电机转动产生电磁干扰影响控制电路。此款驱动电路使用DAC0832实现八细分驱动,比普通的驱动电路在稳定性抗噪声等性能上有了很大的提高。步进电机由其自身原因,导致电机机械特性在某个频率下,会产生丢步或跳步现象,采用细分电路后,改善了特性,消除了共振点,电机在工作频率范围内运行平稳。低频,低转速工作稳定,转矩增大,噪声降低。在低速工作时电机的加速度力矩明显减小,可以使输出工作力矩增加,带负载能力提高。减小步距角,提高了分辨率和步距精度。此驱动电路实现了对电机的转速和转向的控制并且可以精确计算出转过某一角度所需要的脉冲个数实现精确控制步数的目的,为步进电机的实际应用提供了一种可行的参考方案。 图6 移位积存器Q 1 、Q 2 、Q 3 、Q 4 端与D / A 转换的输出信号。
联系方式
电话:18801063276(李先生)
QQ:928221169
淘宝:http://zgbjdj.com/news2.asp?id=9440/ |