步进电机,arduino新手,程序怎样设定总步数,这样的配件如何正反转停止,求程序,用按钮控制

步进电机,arduino新手,程序怎样设定总步数,这样的配件如何正反转停止,求程序,用按钮控制,第1张

这里我们以TB6600步进电机驱动器为例,进行介绍。其他型号的驱动器也大同小异。如图是我们使用的步进电机驱动器

一输入输出端说明

1信号输入端

PUL+:脉冲信号输入正。

PUL-:脉冲信号输入负。

DIR+:电机正、反转控制正。

DIR-:电机正、反转控制负。

EN+:电机脱机控制正。

EN-:电机脱机控制负。

2电机线连接段

A+:连接电机绕组A+相。

A-:连接电机绕组A-相。

B+:连接电机绕组B+相。

B-:连接电机绕组B-相。

3电源电压连接

VCC:电源正端“+”

GND:电源负端“-” (需要注意的是电机驱动器上DC电源还是AC,DC只能接入直流电源,而AC的话既交流又可以直流电源)

4输入端接线说明

输入信号共有三路,它们是:①步进脉冲信号PUL+,PUL-;②方向电平信 号DIR+ ,DIR-③脱机信号EN+,EN-。

输入信号接口有两种接法,用户可根据 需要采用共阳极接法或共阴极接法。

共阳极接法:分别将PUL+,DIR+,EN+连接到控制系统的电源上, 如果此电源是+5V 则可直接接入,

如果此电源大于+5V,则须外部另加限流 电阻R,保证给驱动器内部光藕提供8—15mA 的驱动电流。

脉冲输入信号通 过CP-接入,方向信号通过DIR-接入,使能信号通过EN-接入。如下图:

共阴极接法:分别将 PUL-,DIR-,EN-连接到控制系统的地端; 脉冲输入信号通过PUL+接入,方向信号通过DIR+接入,

使能信号通过EN+接 入。若需限流电阻,限流电阻R 的接法取值与共阳极接法相同。如下图:

这里需要注意的是:在一般情况下EN端可不接,EN有效时电机转子处于自由状态(脱机状态),这时 可以手

动转动电机转轴,做适合您的调节。手动调节完成后,再将 EN 设为 无效状态,以继续自动控制 。

二、系统接线方法

驱动器与控制器、电机、电源的接线,以共阳接法为例,如下图所示:

三、拨码开关的设定细分以及电流

1细分数设定

细分数是以驱动板上的拨码开关选择设定的,用户可根据驱动器外盒上 的细分选择表的数据设定(最好在断电情况下设定)。细分后步进

电机步距 角按下列方法计算:步距角=电机固有步距角/细分数。如:一台固有步距角 为18°的步进电机在4细分下步距角为18°/4=045°

驱动板上拨码开关1、2、3、分别对应S1、S2、S3 (这里需要注意的是并不是设置细分数越大越好,400细分的意思就是:400个脉冲电机转动1圈)

2电流大小设定

驱动板上拨码开关4、5、6分别对应S4、S5、S6

(这里需要注意的是并不是设置电流越大越好,根据电机的功率取合适值即可)

四、脱机信号(EN)

打开脱机功能后,电机转子处于自由不锁定状态,可以轻松转动,此时 输入脉冲信号不响应,

关闭此信号后电机接受脉冲信号正常运转。

注:一般在实际应用中可不接。

五、常见的问题解答

1、问:初次使用该步进驱动器,如何能尽快上手?

答:正确接好电源和电机后,只接脉冲信号PUL(先将频率设置为1K以内),细分设置为16,方向和脱机悬空,

此时加电后电机默认正转。运行无误后再 依次测试加速(提高频率)、方向、细分和脱机等功能。

2、问:控制信号高于5V,一定要加串联电阻吗?

答:是的,否则有可能烧毁驱动器控制接口的电路。

3、问:接线后电源指示灯亮,但电机不转,是什么原因?

答:如果接线正确,但仍然不转,说明控制部分驱动能力不够,这种情况多出现在

用单片机的io口直接控制方式。请确保控制接口有5mA的驱动能力

4、问:如何判断步进电机四条线的定义?

答:将电机的任意两条线接在一起,此时用手拧电机转子有阻力,则这两条线是同一相,

可接在驱动器A+、A-;另外两条线短接仍然有阻力,则将 这两条线接在B+和B-

5、问:电机的正反转情况与应实际达到的相反?

答:只需要把电机其中一相的两根线互换接入即可

六、自己本人在实践中遇到的问题以及解决

只是根据实验尝试而得,并不一定正确

1电机旋转电流吱吱声音过大 PWM频率过低 改变方法提高频率或者减少细分数

2驱动器自动断电时 设置电流过大,应该降低设置电流

3电流设置会影响转速

4电机过烫,设置的电流过大,应该降低设置电流

5ENA-和ENA+不接,这是脱机信号控制

6PWM输出都采用开漏输出,需要外接上拉5V,不然没有PWM输出

7当选择电机转速较慢时,应该选择更多的细分数

步进驱动器实际上是一个被动控制部件,完全按照控制指令运动,给脉冲就运动,频率变快运动就加速,停止发脉冲就停止。另外一类步进驱动器驱动器是开关控制型步进驱动器,如英纳仕的EZD系列,通过高低电平可以控制步进电机的运动或停止。

接近开关是通过接受到接近信号然后将信号传输给主机(单片机,plc等控制器),进而控制步进电机的启停。

接近开关是一种无需与运动部件进行机械直接接触而可以 *** 作的位置开关,当物体接近开关的感应面到动作距离时,不需要机械接触及施加任何压力即可使开关动作,从而驱动直流电器或给计算机(plc)装置提供控制指令。接近开关是种开关型传感器(即无触点开关),它既有行程开关、微动开关的特性,同时具有传感性能,且动作可靠,性能稳定,频率响应快,应用寿命长,抗干扰能力强等、并具有防水、防震、耐腐蚀等特点。产品有电感式、电容式、霍尔式、交、直流型。

步进电机控制原理是发一个固定脉冲,电机转过一定的角度,而脉冲的个数是可以控制的。至于说设定角度,这个还要看电机参数,一般的电机最小转角是45度,你的设定需为最小角的整数倍。我可以给你程序,不过具体的还要看你的电机参数

给你一段电机走一步的函数吧!

/

函数名:步进电机正反转一步

调 用:MOTOR()

参 数:Mot=0,电机反转一步 ,Mot=1电机正转

返回值:无

结 果:电机坐标 Motor 自动加一或减一,电机走一步

/

void MOTOR(void){ //步进电机正反转一步子程序

code unsigned char MOTOR_DB[]={0x00,0xb0,0x90,0xd0,0x50,0x70,0x60,0xe0,0xa0,0x00};//定义电机输出编码

unsigned char i;

MOIC=0; //开电机电流

i=0; //电机输出编码初值设00

CBB=10; //设减小电机电流时间设为10

if(Mot==1)Mo_data++;

else{if(Mo_data!=0)Mo_data--;}//如果电机反转,并且当前电机坐标不小于1时,坐标减一

while(1)

{

if(Mot)Motor_t ++;//当前电机输出编码加一指向下一编码

else Motor_t --;//电机输出编码减一

i=MOTOR_DB[Motor_t]; //取电机输出编码

if(i!=0)break;

else{

if(Mot)Motor_t=0;

else Motor_t=9;

}

}

i=i&0xf8; //屏蔽低3位,高5位不变

M_data=M_data&0x07;//屏蔽P1口的高5位,低3位不变

M_data=M_data|i; //高5位送P1口,P1口的低3位不变

}

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件,在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进电机接收到一个脉冲信号,她就驱动步进电机按设定的方向转一个角度。

单片机用一个按钮控制步进电机启动和停止,这很容易的,识别按键按下的程序会写吧,那定义一个位变量,即标志位,如flag,上电后flag=0,为电机停止状态。每按一次按键,flag=!flag,即取反一次,然后再判断标志位,flag=1,则启动电机。flag=0,则停止电机。

以上就是关于步进电机,arduino新手,程序怎样设定总步数,这样的配件如何正反转停止,求程序,用按钮控制全部的内容,包括:步进电机,arduino新手,程序怎样设定总步数,这样的配件如何正反转停止,求程序,用按钮控制、步进电机走完脉冲后怎么停止、接近开关如何控制步进电机的停止和运行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存