28BYJ48电机详细使用说明.docx

上传人:b****0 文档编号:12808041 上传时间:2023-04-22 格式:DOCX 页数:9 大小:347.57KB
下载 相关 举报
28BYJ48电机详细使用说明.docx_第1页
第1页 / 共9页
28BYJ48电机详细使用说明.docx_第2页
第2页 / 共9页
28BYJ48电机详细使用说明.docx_第3页
第3页 / 共9页
28BYJ48电机详细使用说明.docx_第4页
第4页 / 共9页
28BYJ48电机详细使用说明.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

28BYJ48电机详细使用说明.docx

《28BYJ48电机详细使用说明.docx》由会员分享,可在线阅读,更多相关《28BYJ48电机详细使用说明.docx(9页珍藏版)》请在冰豆网上搜索。

28BYJ48电机详细使用说明.docx

28BYJ48电机详细使用说明

24BYJ48步进电机使用手册

 

驱动方法及参数

插入到开发板的方法:

 

直接插入到LCD12864位置

 

一、前言:

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

为此,黑金刚开发板套件中首次引入了步进电机技术,采用扩展的方式,方便用户应用掌握。

虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。

它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。

因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。

步进电机的主要特性:

1、步进电机必须加驱动才可以运转,驱动信号必须为脉冲信号,没有脉冲的时候,步进电机静止,如果加入适当的脉冲信号,就会以一定的角度(称为步角)转动。

转动的速度和脉冲的频率成正比。

2、黑金刚配套的是28BYJ485V驱动的4相5线的步进电机,而且是减速步进电机,减速比为1:

64,步进角为5.625/64度。

如果需要转动1圈,那么需要

360/5.625*64=4096个脉冲信号。

3、步进电机具有瞬间启动和急速停止的优越特性。

4、改变脉冲的顺序,可以方便的改变转动的方向。

因此,目前打印机,绘图仪,机器人,等等设备都以步进电机为动力核心。

 

二、配套的原理图及程序:

1、如果不考虑数据锁存功能,步进电机的扩展板电路可以简化为下图:

2、黑金刚套件采用的是5V步进电机,该步进电机的耗电流为200ma左右,采用

uln2003驱动,驱动端口为P0.0(A),P0.1(B),P0.2(C),P0.3(C)。

正转次序:

AB组--BC组--CD组--DA组(即一个脉冲,正转5.625度);反转次序:

AB组--AD组--CD组--CB组(即一个脉冲,正转5.625度),如下表:

表1:

正转表

端口值

步数

P0.0(A)

P0.1(B)

P0.2(C)

P0.3(D)

0x03

1

1

1

0

0

0x06

2

0

1

1

0

0x0C

3

0

0

1

1

0x09

4

1

0

0

1

表2:

反转表

端口值

步数

P0.0(A)

P0.1(B)

P0.2(C)

P0.3(D)

0x03

1

1

1

0

0

0x09

2

1

0

0

1

0x0C

3

0

0

1

1

0x06

4

0

1

1

0

 

3ASM驱动程序:

;*******步进电机的驱动********

;FOSC=12MHz

;---------------------------------------------------------------------------------

;步进电机的驱动信号必须为脉冲信号!

!

!

转动的速度和脉冲的频率成正比!

!

!

;本步进电机步进角为5.625度.一圈360度,需要64个脉冲完成!

!

!

;---------------------------------------------------------------------------------

;A组线圈对应P0.0

;B组线圈对应P0.1

;C组线圈对应P0.2

;D组线圈对应P0.3

;正转次序:

AB组--BC组--CD组--DA组(即一个脉冲,正转5.625度)

;----------------------------------------------------------------------------------

ORG0000H

LJMPMAINORG0100H

MAIN:

;----------------------------正转--------------------------

MOVR3,#192;正转3圈共192个脉冲

START:

MOVR0,#00HSTART1:

MOVP0,#00HMOVA,R0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

JZSTART;对A的判断,当A=0时则转到START

MOVP0,ALCALLDELAYINCR0

DJNZR3,START1

MOVP0,#00HLCALLDELAY1

;-----------------------------反转------------------------

MOVR3,#128;反转2圈共128个脉冲

START2:

MOVP0,#00HMOVR0,#05

START3:

MOVA,R0

MOVDPTR,#TABLEMOVCA,@A+DPTRJZSTART2

MOVP0,A

CALLDELAYINCR0

DJNZR3,START3

MOVP0,#00HLCALLDELAY1

LJMPMAIN

;---------------------------转速控制-----------------------

DELAY:

MOVR7,#10;步进电机的转速

M3:

MOVR6,#248

DJNZR6,$DJNZR7,M3

RET

;---------------------------延时控制----------------------

DELAY1:

MOVR4,#5;2S延时子程序

DEL2:

MOVR3,#200

DEL3:

MOVR2,#250

DJNZR2,$DJNZR3,DEL3

DJNZR4,DEL2

RET

;---------------------------正反转表----------------------

TABLE:

DB03H,06H,0CH,09H;正转表

DB00;正转结束

DB03H,09H,0CH,06H;反转表

DB00;反转结束

END

 

4、C语言驱动程序:

 

/******************************步进电机的驱动*************************************

;FOSC=12MHz

;---------------------------------------------------------------------------------

;步进电机的驱动信号必须为脉冲信号!

!

!

转动的速度和脉冲的频率成正比!

!

!

;本步进电机步进角为5.625度.一圈360度,需要64个脉冲完成!

!

!

;---------------------------------------------------------------------------------

;A组线圈对应P0.0

;B组线圈对应P0.1

;C组线圈对应P0.2

;D组线圈对应P0.3

;正转次序:

AB组--BC组--CD组--DA组(即一个脉冲,正转5.625度)

;----------------------------------------------------------------------------------

**********************************************************************************/

/*头文件*/

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

#definenop()_nop_()

ucharcodetable1[]={0x03,0x06,0x0c,0x09};/*正转表*/

ucharcodetable2[]={0x03,0x09,0x0c,0x06};/*反转表*/

#definemotorP0

 

voiddelay(ucharms)/*延时*/

{

ucharj;

while(ms--){

for(j=0;j<250;j++)

{;}

}

}

voidmain()

{

uchari,j;

while

(1){

//正转3圈共192个脉冲

j=0;

for(i=0;i<192;i++){

motor=0x00;

motor=table1[j];

j++;

if(j>=4)j=0;

delay

(2);

}delay(200);delay(200);delay(200);delay(200);delay(200);

//正转2圈共128个脉冲

j=0;

for(i=0;i<128;i++){

motor=0x00;

motor=table2[j];

j++;

if(j>=4)j=0;

delay

(2);

}delay(200);delay(200);delay(200);delay(200);delay(200);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1