7回答

0收藏

[求助] 步进电机不转

51单片机 51单片机 2950 人阅读 | 7 人回复 | 2013-08-17

这段时间研究步进电机,买了42步进电机和L298N的驱动板,利用别人的代码,但是运行时步进电机只是小幅度的来回震动,不知怎么回事。求高手帮忙解决。
#include<reg52.h>  
/*****P1.0=A 1.1=B 1.2=c ; P1.3=d****/  
code unsigned char run[4]={0x07,0x0b,0x0d,0x0e};  //两相四线四拍工作方式
unsigned char s,i,j,k;
void delay(i)//延时函数
{
for(j=0;j<i;j++)
for(k=0;k<250;k++);
}
main()
{
unsigned char z,y;
y=30;     //定义延时时间,时间越长电机转速越慢反之则快
while(1)
{
for(z=0;z<4;z++)
{
P1=run[z];
delay(y);
}
}
}
分享到:
回复

使用道具 举报

回答|共 7 个

倒序浏览

沙发

fengye5340-272571

发表于 2013-8-17 13:32:17 | 只看该作者

楼主要测试一下你的延时频率,步进频率一般在2KHZ-20KHZ运行,有的最高在30KHZ,如果频率过低或过高,就出现震动了,不转的
板凳

minehe

发表于 2013-8-17 16:10:25 | 只看该作者

fengye5340 发表于 2013-8-17 13:32
楼主要测试一下你的延时频率,步进频率一般在2KHZ-20KHZ运行,有的最高在30KHZ,如果频率过低或过高,就出现 ...

那我应该具体怎么操作,我试着写了个循环改了下延时时间,依旧没有用
地板

fengye5340-272571

发表于 2013-8-17 17:13:33 | 只看该作者

minehee 发表于 2013-8-17 16:10
那我应该具体怎么操作,我试着写了个循环改了下延时时间,依旧没有用

你得先用示波器测试一下你的延时频率是多少?有了个基准,再修改参数才好
5#

lxalxy

发表于 2013-8-17 18:07:02 | 只看该作者

有可能是频率太高丢步了
6#

油炸冰激凌

发表于 2013-8-17 19:14:15 | 只看该作者

首先你要确定你电路板和电机的接线顺序有没有错
7#

minehe

发表于 2013-8-19 13:24:22 | 只看该作者

fengye5340 发表于 2013-8-17 17:13
你得先用示波器测试一下你的延时频率是多少?有了个基准,再修改参数才好 ...

非常感谢,后来发现是程序中通电相数弄错了,之前买的时候淘宝卖家给的资料错了
8#

fengye5340-272571

发表于 2013-8-19 13:31:13 | 只看该作者

minehee 发表于 2013-8-19 13:24
非常感谢,后来发现是程序中通电相数弄错了,之前买的时候淘宝卖家给的资料错了 ...

不客气,转起来就好了,呵呵
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条