永发信息网

51单片机控制L298N驱动两相步进电机

答案:1  悬赏:0  手机版
解决时间 2021-01-03 16:33
  • 提问者网友:献世佛
  • 2021-01-02 23:41
感觉程序没有问题,运行的的时候步进电机不转,老是在抖!大侠帮我看看是怎么回事
#include
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);
}
}
}
最佳答案
  • 五星知识达人网友:零点过十分
  • 2021-01-10 05:11
老是抖的话,有几个可能(可能性排名不分先后):
1、程序节拍不对,这个您既然已经排除了,就查另外其他问题
2、一个线圈没电。试试单独接一个线圈,找出没电的线圈,看是否电路问题,比如对应线圈的EN脚的电平是否正常,还是接触不良。还有一个极小的可能是电机烧了一个线圈,用万用表测一下两个线圈的电阻,如果悬殊太大就说明一个线圈烧了。
3、驱动电流不足,电压太低。
4、启动频率太高(这个一般会傍有呼叫声,但电流太小或频率搞得离谱可能也听不到),delay(5)再弄大一点

5、单片机的端口驱动能力不足,导致信号微软不稳定(这个可能性还比较大)。用上拉电阻提高单片机输出能力,包括EN脚的电平
嗯,暂时想到这么多了……
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯