51单片机控制L298N驱动两相步进电机
感觉程序没有问题,运行的的时候步进电机不转,老是在抖!大侠帮我看看是怎么回事#include<reg52.h>P1.0=A;P1.1=a;P1.2=B;P1.3=bcod...
感觉程序没有问题,运行的的时候步进电机不转,老是在抖!大侠帮我看看是怎么回事
#include<reg52.h>
P1.0=A ;P1.1=a ;P1.2=B ; P1.3=b
code unsigned char run[8]={0x08,0x0a,0x02,0x06,0x04,0x05,0x01,0x09}; //两相四线八拍工作方式
void delay(unsigned char i)//延时函数ms
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
main()
{
unsigned char z;
while(1)
{
for(z=0;z<8;z++)
{
P1=run[z];
delay(5);
}
}
} 展开
#include<reg52.h>
P1.0=A ;P1.1=a ;P1.2=B ; P1.3=b
code unsigned char run[8]={0x08,0x0a,0x02,0x06,0x04,0x05,0x01,0x09}; //两相四线八拍工作方式
void delay(unsigned char i)//延时函数ms
{
unsigned char j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
main()
{
unsigned char z;
while(1)
{
for(z=0;z<8;z++)
{
P1=run[z];
delay(5);
}
}
} 展开
1个回答
展开全部
老是抖的话,有几个可能(可能性排名不分先后):
1、程序节拍不对,这个您既然已经排除了,就查另外其他问题
2、一个线圈没电。试试单独接一个线圈,找出没电的线圈,看是否电路问题,比如对应线圈的EN脚的电平是否正常,还是接触不良。还有一个极小的可能是电机烧了一个线圈,用万用表测一下两个线圈的电阻,如果悬殊太大就说明一个线圈烧了。
3、驱动电流不足,电压太低。
4、启动频率太高(这个一般会傍有呼叫声,但电流太小或频率搞得离谱可能也听不到),delay(5)再弄大一点
5、单片机的端口驱动能力不足,导致信号微软不稳定(这个可能性还比较大)。用上拉电阻提高单片机输出能力,包括EN脚的电平
嗯,暂时想到这么多了……
1、程序节拍不对,这个您既然已经排除了,就查另外其他问题
2、一个线圈没电。试试单独接一个线圈,找出没电的线圈,看是否电路问题,比如对应线圈的EN脚的电平是否正常,还是接触不良。还有一个极小的可能是电机烧了一个线圈,用万用表测一下两个线圈的电阻,如果悬殊太大就说明一个线圈烧了。
3、驱动电流不足,电压太低。
4、启动频率太高(这个一般会傍有呼叫声,但电流太小或频率搞得离谱可能也听不到),delay(5)再弄大一点
5、单片机的端口驱动能力不足,导致信号微软不稳定(这个可能性还比较大)。用上拉电阻提高单片机输出能力,包括EN脚的电平
嗯,暂时想到这么多了……
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询