您的位置 首页 ADAS

28BYJ48型步进电机的操控办法

前不久弄到一只28BYJ48型步进电机,没有资料,从网上查找,搜到一些资料,但按照网上介绍的程序实验,都没有成功。后来根据资料的原理

  前不久弄到一只28BYJ48型步进电机,没有材料,从网上查找,搜到一些材料,但依照网上介绍的程序试验,都没有成功。后来依据材料的原理部分,试着自己编写了一段程序,经过屡次试验调试,总算成功了。

  哈哈,收成不小!!!

  步进电机是一种将电脉冲转化为角位移的履行设备。浅显一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向滚动一个固定的视点(即步进角)。咱们能够经过操控脉冲个数来操控角位移量,然后到达精确定位的意图;一起咱们能够经过操控脉冲频率来操控电机滚动的速度和加速度,然后到达调速的意图。

  28BYJ48型步进电机是四相八拍电机,电压为DC5V~DC12V。当对步进电机按必定次序施加一系列接二连三的操控脉冲时,它能够接二连三地滚动。每一个脉冲信号使得步进电机的某一相或两相绕组的通电状况改动一次,也就对应转子转过必定的视点。当通电状况的改动完结一个循环时,转子转过一个齿距。四相步进电机能够在不同的通电方法下运转,常见的通电方法有单(单相绕组通电)四拍(A-B-C-D-A……),双(双相绕组通电)四拍(AB-BC-CD-DA-AB……),四相八拍(A-AB-B-BC-C-CD-D-DA-A……)。本例是运用四相八拍驱动方法完成的。

  下面是我写的C言语操控程序完成28BYJ48型步进电机正转五圈然后倒转五圈的作用:

//********************************************************************************
//* 标题: 步进电机正回转演示程序 *
//* 文件: 步进电机正回转演示.C *
//* 日期: 2011-3-13 *
//* 环境: 运用克己单片机最小体系板测试经过 *
//********************************************************************************
//* 描绘: 28BYJ-48步进电机正回转操控 *
//* 电机运用端口:P1.0、P1.1、P1.2、P1.3 *
//* 单双八拍工作方法:A-AB-B-BC-C-CD-D-DA *
//********************************************************************************

#include
#include

//**********************正向旋转相序表*****************************
unsigned char code FFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};

//**********************反向旋转相序表*****************************

unsigned char code REV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};

//***********************延时子程序********************************

void delay(unsigned int t)
{
unsigned int k;
while(t–)
{
for(k=0; k<125; k++)
{}
}
}

//**********************步进电机正转******************************

void motor_ffw(unsigned int n)
{
unsigned char i;
unsigned int j;
for (j=0; j<8*64*n; j++)
{
for (i=0; i<8; i++)
{
P1 = FFW[i];
delay(1);
}
}
}

//*********************步进电机回转********************************

void motor_rev(unsigned int n)
{
unsigned char i;
unsigned int j;
for (j=0; j<8*64*n; j++)
{
for (i=0; i<8; i++)
{
P1 = REV[i];
delay(1);
}
}
}

//*************************主程序*********************************
main()
{
while(1)
{
motor_ffw(5); //电机正转5圈
delay(1000);
motor_rev(5); //电机回转5圈
delay(1000);

}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/261132.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部