为什么,我的步进电机28BYJ-48不转

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define MotorData P0 //步进电机控制接口定义
uchar phasecw[4] ={0x08,0x04,0x02,0x01};//正转 电机导通相序 D-C-B-A
uchar phaseccw[4]={0x01,0x02,0x04,0x08};//反转 电机导通相序 A-B-C-D
//ms延时函数
void Delay_xms(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<112;j++);
}
//顺时针转动
void MotorCW(void)
{
uchar i;
for(i=0;i<4;i++)
{
MotorData=phasecw[i];
Delay_xms(2);//转速调节
}
}
//逆时针转动
void MotorCCW(void)
{
uchar i;
for(i=0;i<4;i++)
{
MotorData=phaseccw[i];
Delay_xms(2);//转速调节
}
}
//停止转动
void MotorStop(void)
{
MotorData=0x00;
}
//主函数
void main(void)
{
uint i;
Delay_xms(50);//等待系统稳定
while(1)
{
for(i=0;i<500;i++)
{
MotorCW(); //顺时针转动
}
MotorStop(); //停止转动
Delay_xms(50);
for(i=0;i<500;i++)
{
MotorCCW(); //逆时针转动
}
MotorStop(); //停止转动
Delay_xms(50);
}
}

首先要确认你外围接线是否正确。
再设定好步进的控制方式及细分,是双脉冲还是脉冲加方向控制。
最后再检测你的脉冲输出,脉冲频率先从低到高慢慢增加。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-19
28byj48这款电机是自带减速箱的,所以输出运转速度较慢,你可以试试增加驱动脉冲频率,在一定范围内可以增大速度
第2个回答  2012-09-25
看看您的电机空载的扭力是多大,在确定实载的扭力多大,应该是带不动您的设备
第3个回答  2012-09-29
调低频率,增加细分;