实验三步进电机实验文档格式.docx

上传人:b****6 文档编号:19342186 上传时间:2023-01-05 格式:DOCX 页数:26 大小:134.50KB
下载 相关 举报
实验三步进电机实验文档格式.docx_第1页
第1页 / 共26页
实验三步进电机实验文档格式.docx_第2页
第2页 / 共26页
实验三步进电机实验文档格式.docx_第3页
第3页 / 共26页
实验三步进电机实验文档格式.docx_第4页
第4页 / 共26页
实验三步进电机实验文档格式.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

实验三步进电机实验文档格式.docx

《实验三步进电机实验文档格式.docx》由会员分享,可在线阅读,更多相关《实验三步进电机实验文档格式.docx(26页珍藏版)》请在冰豆网上搜索。

实验三步进电机实验文档格式.docx

图1是该四相反应式步进电机工作原理示意图。

图1四相步进电机步进示意图

  开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。

  当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。

而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。

依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

  四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。

单四拍与双四拍的步距角相等,但单四拍的转动力矩小。

八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

  单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:

a.单四拍 

 

b.双四拍 

c八拍

图2.步进电机工作时序波形图

2、MAX7219驱动芯片

MAX9219典型的应用电路:

MAX7219的时序逻辑:

MAX7219的数据格式:

MAX7219可以显示的数字及字母:

【实验步骤】

1、硬件接线

●SPI_LED显示部分的接线说明:

实验模块(NLED)控制模块(ADSPSECTION)

DSPDIN(J17)SPISIMOA(J34)

DSP/CS(J17)SPITEA(J34)

DSPCLK(J17)SPICLKA(J34)

此外还需要NLED模块的J52对应管脚短接;

NLED模块的J18的VCC和DIS_VCC端接;

NLED模块供电J61(ADSPSECTION)的GND短接。

●步进电机部分的接线说明:

实验模块(IStepMotor)控制模块(ADSPSECTION)

PA(J22)PWM1(J36)

PB(J22)PWM3(J36)

PC(J22)PWM2(J36)

PD(J22)PWM4(J36)

按键模块(KKEYBOARD)控制模块(ADSPSECTION)说明

K1(J21)PWM7(J35)启动

K2(J21)PWM8(J35)停止

K3(J21)PWM9(J35)正转

K4(J21)PWM10(J35)反转

K5(J21)PWM11(J35)加速

K6(J21)PWM12(J35)减速

2、开启设备

①打开计算机电源,打开实验箱电源开关。

②如使用USB型仿真器用附带的USB电缆连接计算机和仿真器相应接口。

③设置CodeComposerStudio为Emulator方式。

④启动CodeComposerStudio。

3、打开工程并浏览程序。

4、编译并下载程序

5、运行程序,观察结果

①键K1控制电机启动;

②键K2控制电机停止;

③键K3控制电机正转;

④键K4控制电机反转;

⑤键K5控制电机加速;

⑥键K6控制电机减速;

同时在进行上述按键操作中,相应的LED端会有显示。

【试验程序】

.实验主程序;

#include"

DSP28_Device.h"

DSP28_Globalprototypes.h"

#definePhase_AGpioDataRegs.GPADAT.bit.GPIOA0//接PWM1,步进电机A相

#definePhase_CGpioDataRegs.GPADAT.bit.GPIOA1//接PWM2,步进电机B相

#definePhase_BGpioDataRegs.GPADAT.bit.GPIOA2//接PWM3,步进电机C相

#definePhase_DGpioDataRegs.GPADAT.bit.GPIOA3//接PWM4,步进电机D相

#defineStartGpioDataRegs.GPBDAT.bit.GPIOB0//接PWM7,启动

#defineStopGpioDataRegs.GPBDAT.bit.GPIOB1//接PWM8,停止

#definePosGpioDataRegs.GPBDAT.bit.GPIOB2//接PWM9,正转

#defineNegGpioDataRegs.GPBDAT.bit.GPIOB3//接PWM10,反转

#defineSpeedUpGpioDataRegs.GPBDAT.bit.GPIOB4//接PWM11,加速

#defineSpeedDownGpioDataRegs.GPBDAT.bit.GPIOB5//接PWM12,减速

#defineON1

#defineOFF0

#defineA1

#defineC2

#defineB3

#defineD4

#defineSTT0x01

#defineSTP0x02

#defineP0x03

#defineN0x04

#defineSUp0x05

#defineSDn0x06

unsignedintflag;

unsignedintssflag;

inttimer;

unsignedintkeytmp;

unsignedintKeyData;

unsignedintStartOrNot=0;

unsignedintNegOrPos=1;

unsignedintshownum;

inttimer1;

//MAX7219的相关变量

unsignedintSpi_VarRx[100];

unsignedinti,j;

externunsignedintInt_Flag;

unsignedintMF11;

unsignedintMF22;

unsignedintMF33;

voidGpio_select(void);

//GPIO设置

voidDelay_SM(unsignedintt);

//延时

voidStepMotor(intphase,intstatus);

//步进电机控制函数

voidstop(void);

//停止函数

unsignedcharScanKey(void);

//扫描按键值

voidMoDe1(unsignedintMF1,unsignedintt);

//步进电机工作模式1函数

voidMoDe2(unsignedintMF2,unsignedintt);

//步进电机工作模式2函数

voidMoDe3(unsignedintMF3,unsignedintt);

//步进电机工作模式3函数

//MAX7219函数

voidIntensity(intbrightness);

voidScanLimit(intdigits);

voidDisplayTest(void);

voidShutDown(intctrl);

voidDecodeMode(unsignedintw);

unsignedintBIN2BCD(unsignedintbin);

voidShowBCD(unsignedintbcd);

//主函数

voidmain(void)

{

unsignedintkb=0;

InitSysCtrl();

//禁止、清除所有CPU中断

DINT;

IER=0x0000;

IFR=0x0000;

//初始化PIE向量表

InitPieCtrl();

InitPieVectTable();

//MAX7219初始化

InitPeripherals();

Gpio_select();

#ifSpi_Int

EALLOW;

PieVectTable.SPITXINTA=&

SPITXINTA_ISR;

PieVectTable.SPIRXINTA=&

SPIRXINTA_ISR;

EDIS;

IER|=M_INT6;

#endif

/*开中断*/

EINT;

ERTM;

Intensity(11);

ScanLimit(7);

DisplayTest();

ShutDown(NO);

DecodeMode(0x0ff);

timer=2000;

StartOrNot=0;

NegOrPos=1;

stop();

while

(1)

{

//模式判断

if(MF11==1)

W2MAX7219(0x0701);

if(MF22==1)

W2MAX7219(0x0702);

if(MF33==1)

W2MAX7219(0x0703);

//分隔横线

W2MAX7219(0x050A);

if(StartOrNot==1&

&

NegOrPos==1)

MoDe2(1,timer);

if((Spi_TxReady()==1))

timer1=1000000/timer;

shownum=BIN2BCD(timer1);

ShowBCD(shownum);

W2MAX7219(0x060C);

}

elseif(StartOrNot==1&

NegOrPos==0)

MoDe2(0,timer);

if((Spi_TxReady()==1))

W2MAX7219(0x060D);

elsestop();

kb=ScanKey();

switch(kb)

caseSTT:

StartOrNot=1;

break;

caseSTP:

StepMotor(A,OFF);

StepMotor(C,OFF);

StepMotor(B,OFF);

StepMotor(D,OFF);

caseP:

NegOrPos=1;

caseN:

NegOrPos=0;

caseSUp:

if(SpeedUp==0)

timer=timer-10;

if(timer<

100)timer=101;

caseSDn:

if(SpeedDown==0)

timer=timer+10;

if(timer>

10000)timer=9999;

default:

}

voidGpio_select(void)

GpioMuxRegs.GPAMUX.all=0x0000;

GpioMuxRegs.GPADIR.all=0x000F;

GpioMuxRegs.GPAQUAL.all=0x0000;

;

GpioMuxRegs.GPBMUX.all=0x0000;

GpioMuxRegs.GPBDIR.all=0x0000;

GpioMuxRegs.GPBQUAL.all=0x0000;

}

voidDelay_SM(unsignedintt)

inti,j;

for(i=0;

i<

t;

i++)

{for(j=0;

j<

200;

j++);

//单拍方式

voidMoDe1(unsignedintMF1,unsignedintt)

if(MF1==1)

StepMotor(A,ON);

Delay_SM(t);

StepMotor(C,ON);

StepMotor(B,ON);

StepMotor(B,OFF);

StepMotor(D,ON);

}else

MF11=MF1;

//双拍方式

voidMoDe2(unsignedintMF2,unsignedintt)

if(MF2==1)

}

MF22=MF2;

//单双拍结合

voidMoDe3(unsignedintMF3,unsignedintt)

if(MF3==1)

MF33=MF3;

voidStepMotor(intphase,intstatus)

switch(phase)

caseA:

if(status==ON)

Phase_A=ON;

}else

Phase_A=OFF;

caseB:

Phase_B=ON;

Phase_B=OFF;

caseC:

Phase_C=ON;

Phase_C=OFF;

caseD:

Phase_D=ON;

Phase_D=OFF;

voidstop(void)

unsignedcharScanKey(void)

{

GpioMuxRegs.GPBDIR.all=0x0FFFF;

GpioDataRegs.GPBSET.all=0x003F;

GpioDataRegs.GPBCLEAR.all=0x0FFC0;

Delay_SM(1000);

keytmp=GpioDataRegs.GPBDAT.all;

/*if(keytmp==0x003F)

flag=0;

while(flag==0)

keytmp=GpioDataRegs.GPBDAT.all&

0x003F;

flag=1;

}*/

switch(keytmp&

0x003F)

case0x003E:

KeyData=STT;

case0x003D:

KeyData=STP;

case0x003B:

KeyData=P;

case0x0037:

KeyData=N;

case0x002F:

//while(SpeedUp==0);

KeyData=SUp;

case0x001F:

KeyData=SDn;

return(KeyData);

2.MAX7219相关函数程序。

unsignedintInt_Flag;

interruptvoidISRTimer2(void)

Int_Flag=1;

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

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

当前位置:首页 > 表格模板 > 合同协议

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

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