51单片机 a4988驱动器 测试代码

51单片机 a4988驱动器 测试代码,第1张

/*-----------------------------------------------

名称:步进电机搏御

------------------------------------------------*/

#include <基清岩reg52.h>

sbit step=P1^0//步进脉冲,一个正行正脉冲就转一个步距角

sbit dir=P1^1//1为正转,0为反转。

sbit sleep=P1^2

sbit res=P1^3

unsigned char sum=0

unsigned char i=200

/********************毫秒延时函数***************************/

void Delay(unsigned int xms)

{

unsigned int i,j

for(i=xmsi>0i--)

for(j=110j>0j--)

}

void ISR_Key(void) interrupt 2 //外部中断1

{

Delay(20)

sum++

if(sum==1)

{

dir=~dir

}

if(sum==1) sum=0

}

/******************************************************************/

/* 主函数 */

/******************************************************************/

main()

{

dir=1//正转

sleep=1//休眠无效

res=1//复位无效

step=1

EX1=1//外部中断1开

IT1=1//边沿触发

EA=1//全局中断开

while(i)

{

step=~step

Delay(2)

i--

//需要延时,不延时电机不动,延时太久也不动。改变这个参数可以调整电机转速 ,数字越小,转速越大。

}

dir=1//反转

while(1)

{

step=~step

Delay(2)

}

}

这看你的驱动模式和要求了。还有你玩单片的情度了!

ULN2003只是可控功率器件,并无其它功能,与分立元件无什么分别。现在我忽略其最高工作电压、最大输出电流等因素来说事。

下面就拿驱动二相步进电机为例:

1、采用底边驱动方式筒单地驱动二相五线步进电机应无问题。但步进电机驱动还要刹车、半流刹车等功能,要具备槐培旦这些功能,单片机的程序和内部运算就复杂了。

2、如果采用桥式驱动方式驱动二相四线步进电机,上桥的驱动电压要很高(Vgs),单片机的输出电压无法打开上桥电路,

3、如果需要细分、过流保护、热保护、半流等功能那其配套电路或单中猛片机程序和内部运算也大复杂了。

4、步进电机专用芯片一般功能齐全,许多还有限流功能(或叫恒流)。每个电机的驱动只需要两路输入信号:一个是步进脉冲、一个正反转信号就能工作。这铅扰样单片机的程序就简单了。


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

原文地址: http://outofmemory.cn/yw/12451335.html

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

发表评论

登录后才能评论

评论列表(0条)

保存