步进电机驱动方法

步进电机驱动方法,第1张

步进电机原理知道就知道怎么驱动了。一般用2003或298n来驱动,要配合光耦一起使用。

这里给你一个程序,自己参考一下。

#include <reg51h>

#include <absacch>

sbit p10=P1^0;

sbit p11=P1^1;

sbit p12=P1^2;

#define UP 20

#define DOWN 30

#define STOP 40

void delay()//延时程序

{

unsigned int i,j,k;

for(i=0;i<0x02;i++)

for(j=0;j<0x02;j++)

for(k=0;k<0xff;k++);

}

main()

{

unsigned char temp;

while(1)

{

if(p10==0)

{

temp=UP;//控制正转

P2=0X00;

delay();

}

if(p11==0)

{

temp=DOWN;//控制反转

P2=0X00;

delay();

}

if(p12==0)

{

temp=STOP;//控制停止

}

switch(temp)

{

case DOWN : P2=0X01;//控制反转 //0011

delay();

delay();

P2=0X02;//0110

delay();

delay();

P2=0X04;//1100

delay();

delay();

P2=0X08;//1001

delay();

delay();

break;

case UP : P2=0X08;//控制正转

delay();

delay();

P2=0X04;

delay();

delay();

P2=0X02;

delay();

delay();

P2=0X01;

delay();

delay();

break;

case STOP ://控制停止

P2=0X00;

delay();

delay();

break;

}

}

}

可编程序控制器(PLC)控制脉冲的数量和频率以及电机各相绕组的功率顺序,控制步进电机的旋转。

通常电动机的转子是永磁体。当电流流过定子绕组时,定子绕组产生矢量磁场。磁场将驱动转子旋转一个角度,使转子的一对磁场的方向与定子的方向一致。当定子的矢量磁场旋转一个角度时。转子也随磁场旋转一个角度。

每次输入电脉冲时,电机旋转一个角度前进一步。其输出角位移与输入脉冲数成正比,转速与脉冲频率成正比。改变绕组通电和电机反转的顺序。因此可以通过控制电机各相绕组的脉冲数、频率和功率序列来控制步进电机的旋转。

扩展资料:

步进电机控制技术发展概况:

在微电子技术特别是计算机技术发展之前,控制器脉冲信号发生器是完全由硬件实现的。控制系统采用独立的元件或集成电路构成控制回路。它不仅调试和安装复杂,而且需要消耗大量的组件。一旦最终确定,如果要改变控制方案,就必须重新设计电路。

这就需要为不同的电机开发不同的驱动器。开发难度大,成本高,控制难度大,限制了步进电机的推广。

由于步进电机是将电脉冲转化为离散机械运动的装置,具有良好的数据控制特性,计算机成为步进电机理想的驱动源。随着微电子技术和计算机技术的发展,软硬件结合已成为主流。

也就是说,控制脉冲由程序产生,驱动硬件电路。单片机通过软件控制步进电机,更好地发挥了步进电机的潜力。因此,利用单片机控制步进电机已成为必然趋势,也顺应了数字化时代的潮流。

参考资料来源:

百度百科-可编程逻辑控制器

百度百科-步进电机

本人没用过A4988,但你给出的数据有明显错误:

1、VBB(电机电源):最小8V最大35V,你用(VMOT接+5V)5V;(A4988资料上没VMOT这一接口)。

2、ENABLE(使能)端口接+A4988才能工作,你给它0V即是叫它休息不必工作。

以上

问题一:步进电机怎么选择驱动器 一、根据步进电机的额定电流选择适合的驱动器

任何一款步进电机都有自己的额定电流,选择与之配套的驱动器的最大电流不能低于电机的额定电流。山社电机生产的步进电机驱动器都有电流细分的功能,也就是可以根据不同的电机的额定电流进行设定驱动器的电流,同一款驱动器可以配不同电流的电机,只要电机的额定电流小于驱动器调到最大时的电流,就可以用,否则会有电机被烧的可能。

二、根据需要的步距角的大小来选择驱动器

市面上的步进电机普遍是18°、12°以及072°的步距角,但是由于客户对电机的精度要求越来越高,步距角也有了不同的要求,为了满足客户的需求,电机厂家距通过驱动器的细分来达到电机的细分。山社电机驱动器有半步和整步,2进制和5进制以及全细分,可以根据自己产品的需求选择不同细分的驱动器。

三、根据电源的提供的交直流电压

电压有交流电压和直流电压之分,步进电机驱动器有个额定电压,选择驱动器时,要选择额定电压是电源可提供的电压范围内的电机驱动器。如果选择的驱动器的额定电压过低,电源提供给驱动器的电压高于驱动器的额定电压,就容易将驱动器烧坏。

四、根据步进电机运行时要达到一定速度时需要的电压来选驱动器

以上四点即为选择驱动器的最重要的四个方面,

问题二:单片机为什么不能直接驱动步进电机 电机一般工作电流几十到几百ma,而单片机的管脚最多20ma的驱动能力,根本不够维持电机运转,就像你用24v电点不亮220v的灯泡一样的道理

问题三:如何用软件实现步进电机细分驱动 一、引言

由于步进电机成本低,控制线路简单,调试方便,所以在许多开环控制系统中得到了广泛的应用。但是当步进电机转子运动频率达到其机械谐振点时,就会产生谐振和噪声。

为了克服机械噪声可以改变驱动方式,步进电机的驱动方式一般分为单相激励、两相激励和半步激励等。单相激励时虽然具有输入功率小,温度不会升的太高的优点,但是由于振荡厉害,控制不稳,所以很少采用。两相激励、半步激励都可以提高平稳度,减小机械振荡。据此,采用细分驱动控制减小噪声是一种比较完善和理想的解决手段。

二、步进电机细分驱动原理

所谓细分驱动就是把机械步距角细分成若干个电的步距角,当转子从一个位置转到下一个位置的时候,会出现一些“暂态停留点”。这样使得电机启动时的过调量或者停止时的过调量就会减小,电机轴的振动也会减小,使电机转子旋转过程变得更加平滑,更加细腻,从而减小了噪声。

图1 电机驱动示意图

首先介绍步进电机整步驱动,我们以两相混合式步进电机57BYB406为例,它的步距角为18°。该电机有A,B两相绕组,其中我们用C表示A通反向电流时的磁场-A,用D表示B通反向电流时的磁场-B。

当分别给各相绕组通电时,各相绕组产生的旋转磁场如下:仅有A相导通时,旋转磁场指向A;仅有B相导通时,旋转磁场指向B;仅有C相导通时,旋转磁场指向C;仅有D相导通时,旋转磁场指向D。依次为各相绕组通电,每切换一次,旋转磁场矢量转过90°,电机转过一个步距角18°。当旋转磁场矢量转过360°时,电机转过一个齿距,这种工作方式称为整步工作。

如果改变上述加电过程,采用四相八拍工作,即通电顺序依次为:

此工作方式称半步工作,旋转磁场的矢量变化如图2所示。每改变一次通电状态,旋转磁场的矢量转过45°。

图2 四细分驱动磁场矢量图

同理,旋转磁场转过360°,电机转过一个齿距。

由半步原理给予启发,如果让旋转磁场矢量每次转过225°,这样就实现了四细分驱动。其旋转磁场矢量变化如图3所示。

图3 步进电机四细分驱动磁场矢量图

为了使电机输出转距大小一致,也就是使电机匀速转动,我们控制流入A,B,C,D各相电流的大小,具体按公式sin2α+cos2α=1来计算。图4给出了四细分驱动时各相电机输入电流值的变换曲线。

图4 四细分驱动转距均匀输出原理图

三、细分驱动在喷膜机的应用

1、喷膜机总体设计

喷膜机中X方向细分驱动控制如图5所示。这里我们采用8052微处理机,它是增强的MCS-51系列单片机,具有8K字节的ROM,256字节的RAM。8位DA转换器AD7524通过锁存器与单片机的数据线相连,构成步进电机的脉冲信号发生器。如果该脉冲信号驱动能力不够大,可以在DA转换器之后加一级放大器。产生的脉冲信号加在驱动器NJM3770的VR引脚,用来驱动步进电机。

图5 喷膜机X方向控制图

2、脉冲分配器的设计

在喷膜机的设计中,我们采用软件的方法实现脉冲分配器。将电机四细分驱动脉冲数据存储在内存中,如表1所示。当电机逆时针方向运转时,自上而下走表索取控制量;当电机顺时针方向运转时,自下而上走表索取控制量,这样就可以控制电机上的电流的大小。其中控制量的最高位是方向控制信号,低7位存储电机脉冲信号的大小。

如何实现7位数据的数模转换呢这里介绍两种方法实现DA转换。第一种方法的思想是:脉冲信号的大小用8位表示,但要求存储的任何数据的最高位都为零,这样就可以将DA转换器的最高位直接接地,用最高位存储方向控制信号。为>>

问题四:步进电机与驱动器控制器的电路如何连接 驱动器上的A-,A+,B-,B+和步进电机的线一一对上就行了。步进电用万用表量,通的为一组,四线步进电机可以量出2组,6线就有3组了,以四线为列,一组接A,另一组接B就行了。不分正负。

问题五:步进电机用驱动器怎样调节运行 是不是35的步进电机,要是35的步进电机 电流设置05或者08A,静止设置50%半流,细分数看你喜好了,要是速度慢,就设置16细分吧。衰减设置也设置50%

问题六:51单片机怎么驱动步进电机 #include unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10}; 正转表格,换算成二进制 0000 0010,0000 0100,0000 1000,0001 0000unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02}; 反转表格,换算成二进制 0001 0000,0000 1000,0000 0100,0000 0010/ 延时函数 /void Delay(unsigned int i)延时{ while(--i);}/ 主函数 /main(){ unsigned char i; while(1) { for(i=0;i 问题七:如何选择步进电机驱动器? 根据多年雷赛步进的经营经验,有以下几点供参考:一,产品定位。如果整个设备性能要求很高,客户对品牌要求很高那就选日本的东方和山社,国产的雷赛都不逊色。如果客户完全追求价格,那也尽量用雷赛驱动,电机随便选选就行。第二,确定负载。根据不同的传动方式与负载情况算出大概的扭矩要求,考虑转速、惯量、安装尺寸、精度等因素影响选择合适电机。第三,跟据电机电流要求以及供电要求选择合适驱动器。细节问题可咨询思安吉。

问题八:步进电机驱动器如何接线 一个脉冲 + ― 。一个方向 + -

问题九:步进电机怎么样才能转起来? 步进电动机则有定位和运转两种基本状态,当有脉冲输入肘步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。 步进电动机按其输出转矩的大小来分,可以分为快速步进电动机和功率步进电动机。快速步进电动机连续工作频率高而输出转矩较小,一般在N・cm级,可以作为控制小型精密机床的工作台(例线切割机床)也可以和液压转矩放大器组成电液脉冲马达去驱动数控机床的工作台,而功率步进电动机的输出转矩就比较大是N・m级的,可以直接去驱动机床的移动部件。 步进电动机按其励磁相数,可以分为三相、四相、五相、六相甚至八相。一般来说随着相数的增加,在相同频率的情况下,每相导通电流的时间增加,各相平均电流会高些,从而使电动机的转速―转矩特性会好些,步距角亦小。但是随着相数的增加,电动机的尺寸就增加,结构亦复杂,目前多用3~6相的步进电动机。 由于步进电动机的转速随着输入脉冲频率变化而变化,调速范围很广,灵敏度高,输出转角能够控制,而且输出精度较高,又能实现同步控制,所以广泛地使用在开环系统中,也还可用在一般通用机床上,提高进给机构的自动化水平。 步进电动机按其工作原理来分,主要有磁电式和反应式两大类

#include "reg52h"

//Motor

sbit F1 = P1^0;

sbit F2 = P1^1;

sbit F3 = P1^2;

sbit F4 = P1^3;

///////////////////////////////////////

//步进电机驱动

unsigned char MotorStep=0;

unsigned int MotorTimer = 0;

unsigned int TIM,CT;

void InitMotor()

{

F1 = 1;

F2 = 1;

F3 = 1;

F4 = 1;

}

void SetMotor()

{

// if(Speed == 0) return;

switch(MotorStep)

{

case 0:

if(TIM)

{

F1 = 0;

F2 = 0;

F3 = 1;

F4 = 1;

MotorStep = 1;

TIM=0;

}

break;

case 1:

if(TIM)

{

F1 = 1;

F2 = 0;

F3 = 0;

F4 = 1;

MotorStep = 2;

TIM=0;

}

break;

case 2:

if(TIM)

{

F1 = 1;

F2 = 1;

F3 = 0;

F4 = 0;

MotorStep = 3;

TIM=0;

}

break;

case 3:

if(TIM)

{

F1 = 0;

F2 = 1;

F3 = 1;

F4 = 0;

MotorStep = 0;

TIM=0;

}

break;

}

}

void system_Ini()

{

TMOD|= 0x11;

TH0=0xDC; //110592M

TL0=0x00;

IE = 0x8A;

TR0 = 1;

}

main()

{ system_Ini();

InitMotor();

while(1)

{

SetMotor();

}

}

/

[ t1 (05ms)中断] 中断中做 PWM 输出

------------1000/(002ms250)=200Hz

/

void Tzd(void) interrupt 1

{

TH0 = 0xfe; //110592

TL0 = 0x33;

if( CT++==20)

{TIM=1;

CT=0;

}

}

希望对你有所帮助,这个亲自试过,可以的!

还有其他控制方式的~

以上就是关于步进电机驱动方法全部的内容,包括:步进电机驱动方法、PLC如何驱动步进电机、STM32F10驱动A4988步进电机驱动模块程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9509557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存