求单片机c语言控制步进电机调速程序

求单片机c语言控制步进电机调速程序,第1张

几相的步进电机啊?用不用驱动芯片?用的话选什么型号的驱动芯片?你要说具体点啊!

先给你三相的,个不用驱动芯片的步进电机程序。(驱动电路自己做)

#include<reg51h>

#define uchar unsigned char

#define uint unsigned int

uint time

void timer1(void) interrupt 1 using 1{ //定时器0中断,定时1ms//

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

time++;

}

void delay(uint n){ //一般延时

while(--n);

}

void delay(uint dtime){ //延时

TR0=1;

while(time<=dtime);

time=0;

TR0=0;

}

void moto(bit cf,uchar n,uint dtime){ //电机驱动子程序,

uchar idata zhpai[4]={0x78,0xb8,0xd8,0xe8};

uchar idata fpai[4]={0xe8,0xd8,0xb8,0x78};

uchar i,l=0;

if(cf==0) //正转,A-B-C-A

for(i=0;i<n;i++){

P1=zhpai[l];//P17~14为输出口,分别为A、B、C、D

l++;

delay(dtime);

if(l==4)l=0;

}

else{ //反转,C-B-A-C

for(i=0;i<n;i++){

P1=fpai[l];

l++;

delay(dtime);

if(l==4)l=0;

}

}

}

void main(){

TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

EA=1;

ET0=1;

while(1){

moto(0,4,70);//正转,转四相,每相间隔70ms

delay(10000);

moto(1,4,70);//反转,转四相,每相间隔70ms

delay(10000);

}

}

假设P0口低4位接步进电机4个绕组,高电平绕组通电,程序如下:

whille(1)

{P0=1;delayms(5);

P0=2;delayms(5);

P0=4;delayms(5);

P0=8;delayms(5);}

反转 的话, 就按 8 4 2 1 顺序输出。

AT89C51单片机,步进电机驱动器L298N驱动,实现单片机识别并输出显示键盘输入的数据信息(转角)并产生连续脉冲控制步进电机转动,电机型号是两相步进电动机42BYG121,其步进角为18度,通过半步驱动方式进行细分可获得09度的步进角;环形分配器和电机驱动器

控制器接收到上位机的命令后,首先获取需要转动的步数,然后根据相应命令打开相应定时器的计数功能。控制程序中用定时器1控制二路脉冲输出,定时器2控制一路脉冲输出,从而完成3路电机的控制。    定时器2使用CTC模式,匹配中断使能。通过匹配中断,在OCR2端口可以输出脉冲,通过设定寄存器OCR2寄存器的值可以改变输山脉冲频率。定时器1使用相位与频率修正模式

键则反向转1~9圈;左键固定正转90度,右键固定反转90;Esc 键终止转动。通过这个程序,我们也可以进一步体会到如何用按键来控制程序完成复杂的功能,以及控制和执行模块之间如何协调工作,而你的编程水平也可以在这样的实践练习中得到锻炼和提升。#include <reg52h> sbit KEY_IN_1 = P2

这里我们以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当选择电机转速较慢时,应该选择更多的细分数

问题一:如何判断步进电机的好坏 一、看观察步进电机运行过程中有无异常,其主要表现为以下几种情况。1定子绕组短路时,可能会看到步进电机冒烟。2步进电机严重过载或缺相运行时,转速会变慢且有较沉重的”嗡嗡”声。3步进电机维修网正常运行,但突然停止时,会看到接线松脱处冒火花;保险丝熔断或某部件被卡住等现象。4若步进电机剧烈振动,则可能是传动装置被卡住或步进电机固定不良、底脚螺栓松动等。5若步进电机内接触点和连接处有变色、烧痕和烟迹等,则说明可能有局部过热、导体连接处接触不良或绕组烧毁等。二、听步进电机正常运行时应发出均匀且较轻的”嗡嗡”声,无杂音和特别的声音。若发出噪声太大,包括电磁噪声、轴承杂音、通风噪声、机械摩擦声等,均可能是故障先兆或故障现象。1 对于电磁噪声,如果步进电机发出忽高忽低且沉重的声音,则原因可能有以下几种。(1)定子与转子间气隙不均匀,此时声音忽高忽低且高低音间隔时间不变,这是轴承磨损从而使定子与转子不同心所致。(2)三相电流不平衡。这是三相绕组存在误接地、短路或接触不良等原因,若声音很沉闷则说明步进电机严重过载或缺相运行。(3)铁芯松动。步进电机在运行中因振动而使铁芯固定螺栓松动造成铁芯硅钢片松动,发出噪声。2对于轴承杂音,应在步进电机运行中经常监听。监听方法是:将螺丝刀一端顶住轴承安装部位,另一端贴近耳朵,便可听到轴承运转声。若轴承运转正常,其声音为连续而细小的”沙沙”声,不会有忽高忽低的变化及金属摩擦声。若出现以下几种声音则为不正常现象。(1)轴承运转时有”吱吱”声,这是金属摩擦声,一般为轴承缺油所致,应拆开轴承加注适量润滑脂。(2)若出现”唧哩”声,这是滚珠转动时发出的声音,一般为润滑脂干涸或缺油引起,可加注适量油脂。(3)若出现”喀喀”声或”嘎吱”声,则为轴承内滚珠不规则运动而产生的声音,这是轴承内滚珠损坏或步进电机长期不用,润滑脂干涸所致。3若传动机构和被传动机构发出连续而非忽高忽低的声音,可分以下几种情况处理。(1)周期性”啪啪”声,为皮带接头不平滑引起。(2)周期性”咚咚”声,为联轴器或皮带轮与轴间松动以及键或键槽磨损引起。(3)不均匀的碰撞声,为风叶碰撞风扇罩引起。三、闻通过闻步进电机的气味也能判断及预防故障。若发现有特殊的油漆味,说明步进电机内部温度过高;若发现有很重的糊味或焦臭味,则可能是绝缘层维修网被击穿或绕组已烧毁。四、摸摸步进电机一些部位的温度也可判断故障原因。为确保安全,用手摸时应用手背去碰触步进电机外壳、轴承周围部分,若发现温度异常,其原因可能有以下几种。1通风不良。如风扇脱落、通风道堵塞等。2过载。致使电流过大而使定子绕组过热。3定子绕组匝间短路或三相电流不平衡。4频繁启动或制动。5若轴承周围温度过高,则可能是轴承损坏或缺油所致。

问题二:如何判断步进电机的好坏 简单判断方法(混合式步进电机):1、上电能锁紧,力矩输出正常,转角正确,这个电机就是好的,否则就有问题;2、断电状态下,用手转动电机轴,注意各引出线不要短路,好的电机应当阻力均匀,可以用手转动;在把电机引出线拧在一起(短路),此时转动电机轴的力矩就是电机的标称力矩,也就是需要电机标称力矩那么大的力矩才能转动电机轴,否则电机就是坏的。纯属经验之谈,不知是否满意。

问题三:如何简单检测步进电机驱动器的好坏,越简单越好 在没有步进电机的情况下,接上电源,在脉冲端通断电数次,用万用表测量步进电机绕组输出端是否有电压信号交替输出

问题四:步进电机驱动器怎么检测好坏呢 30分 如果接线都正确,发送控制脉冲电机能运动说明驱动器是好的,否则可能有问题。

问题五:如何判断步进电机驱动器的好坏 具体型号具体分析,一般驱动器都有保护,有绿色和红色指示灯,如果绿灯亮一般是正常,如果亮红灯则表示不正常,也有驱动器有讯号检测指示灯,请提供型号来分析

问题六:判断两相四线步进电机的好坏 1.用指针式万用表Rx1档,用两表笔分别快速碰各相两引线,碰一次电机会走一步,掉转表笔再碰会反向走一步,那电机基本上是好的

2.短路其中一相的两引线,用手转动电机轴,再短路另一相两引线再转动电机轴,如果两次用力都一样,电机基本上是好的

问题七:怎样用万用表测量电机的好坏 单相电机,一支表笔接地,另一支分别测量电机启动,运行,公共绕组,阻值应无穷大或接近无穷大,没有阻值或阻值很小,表示电机已坏。然后分别测量三绕组阻值,启动绕组等于运行和公共绕组阻值之和,三相电机与单相电机测量方法相同,不同的是三相电机三绕组阻值相同

问题八:怎么测试a4988步进电机驱动板的好坏 一般驱动器都有自检的功能。也就是说。步进电机接驱动器外接电源。驱动器挑到自检档。就可以测试好坏。步进电机的型号参数每种品牌都不一样。外观是多少

问题九:如何区别步进电机质量的好坏 10分 脱电试就是用手拎输出轴,阻力均匀,无杂音,无摩擦卡顿,转动灵活。把线并接(短路)。阻力增大并不跳步。

上电转动平稳,发热低,无杂音,高速震动小,不失步。转速高,力量大,等等就是好电机。

建议还是看看电机参数表,矩频特性表很重要。

问题十:如何判断步进电机是几相的 你看它的步距角,你所说的电机是三相六拍的。像两相的基本步距角是18度,如果厂家参数是09度,就是半步的,也就是两相四拍的了。简单看就是你看他提供的步距角是基本步距角的几分之几,就可以知道是几相几拍了。

以上就是关于求单片机c语言控制步进电机调速程序全部的内容,包括:求单片机c语言控制步进电机调速程序、单片机控制步进电机程序、步进电机控制程序是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10061460.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存