步进电机实训报告Word文件下载.docx

上传人:b****5 文档编号:21657170 上传时间:2023-01-31 格式:DOCX 页数:11 大小:224KB
下载 相关 举报
步进电机实训报告Word文件下载.docx_第1页
第1页 / 共11页
步进电机实训报告Word文件下载.docx_第2页
第2页 / 共11页
步进电机实训报告Word文件下载.docx_第3页
第3页 / 共11页
步进电机实训报告Word文件下载.docx_第4页
第4页 / 共11页
步进电机实训报告Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

步进电机实训报告Word文件下载.docx

《步进电机实训报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《步进电机实训报告Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

步进电机实训报告Word文件下载.docx

连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。

由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。

此实训中用到的其他知识如下:

常用的步进电机

❑反应式步进电动机(VR):

结构简单,生产成本低,步距角可以做的相当小,但动态性能相对较差。

❑永磁式步进电动机(PM):

出力大,动态性能好;

但步距角一般比较大。

❑混合步进电动机(HB):

综合了反映式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机。

半步模式

脉冲信号图:

脉冲分配信号:

整步模式

步进电机驱动电路:

2、嵌入式GUI

图形用户系统是由显示模型接口程序、窗口模型接口程序和用户模型接口程序共同组成的。

3、触摸屏

触摸屏相关寄存器初始化;

voidTouch_Init(void)

{

rADCDLY=(50000);

//ADCStartorIntervalDelayrADCTSC=(0<

<

8)|(1<

7)|(1<

6)|(0<

5)|(1<

4)|(0<

3)|(0<

2)|(3);

//tarkDown,YM:

GND,YP:

AIN5,XM:

Hi-z,XP:

AIN7,XPpullup

//En,Normal,Waiting

//设置成为等待中断模式,disableint

rADCCON=(1<

14)|(39<

2)|(0<

1)|(0);

}

触摸屏控制器初始化,及其中断初始化

Touch_Init(),TouchINT_Init()

中断服务程序

Touch_ISR

坐标转换为像素坐标,保存状态坐标,(窗体事件调用处理)

GUI_TOUCH_Exec()

五、实训流程

显示界面

主要程序的流程图

六、实训步骤

(一)先选择一张图片作为界面的背景,然后利用画图软件使其转化为“.C”文件,并添加到此项目的文件夹中;

(二)在背景图片上添加功能按钮,共有六个,分别开始、停止、正转、反转、加速、减速;

(三)编写界面上的显示姓名、学号

(四)分别编写能够控制步进电机正转、反转、加速、减速四个功能的代码;

(五)调试运行。

七、实训主要程序

#include"

gui.h"

#include"

FRAMEWIN.h"

button"

teeth"

//头文件

externGUI_CONST_STORAGEGUI_BITMAPbm789;

//图片

intfan=0;

//定义变量

#defineGUI_ID_OK10x801

#defineGUI_ID_OK20x802

#defineGUI_ID_OK30x803

#defineGUI_ID_OK40x804

#defineGUI_ID_OK50x805

unsignedchartab[]={0x05,0x09,0x0a,0x06};

//正转脉冲

unsignedchartab1[]={0x06,0x0a,0x09,0x05};

//反转脉冲

unsignedcharrow=0;

void_cbControl(WM_MESSAGE*pMsg)

{

intNCode,Id;

switch(pMsg->

MsgId)

{

caseWM_NOTIFY_PARENT:

Id=WM_GetId(pMsg->

hWinSrc);

NCode=pMsg->

Data.v;

switch(NCode)

{

caseWM_NOTIFICATION_RELEASED:

if(Id==GUI_ID_OK)

{

fan=0;

//GUI_DEBUG_LOG("

开始\n"

);

//测试

}

if(Id==GUI_ID_OK1)

fan=1;

停止\n"

if(Id==GUI_ID_OK2)

fan=2;

正转\n"

}

if(Id==GUI_ID_OK3)

fan=3;

反转\n"

}

if(Id==GUI_ID_OK4)

fan=4;

加速\n"

}

if(Id==GUI_ID_OK5)

fan=5;

减速\n"

break;

}

break;

}

WM_DefaultProc(pMsg);

}

voiddelay(intt)

inti,j;

for(i=t;

i>

0;

i--)

for(j=100000;

j>

j--);

voidMain(void*pdata)

chark;

WM_HWINhf;

BUTTON_Handlehb,hb1,hb2,hb3,hb4,hb5,hb6;

//定义

TEXT_Handlehb0;

Target_Init();

GUI_Init();

//驱动初始化

GUI_DrawBitmap(&

bm789,0,0);

//画图

hf=WM_CreateWindowAsChild(0,0,640,480,WM_HBKWIN,WM_CF_SHOW,&

_cbControl,0);

//(intx0,inty0,intxsize,intysize,WM_HWINhParent,intId,intFlags,constchar*s,intAlign);

hb0=TEXT_CreateAsChild(0,10,640,30,hf,GUI_ID_OK,

WM_CF_SHOW,0,TEXT_CF_HCENTER);

hb1=TEXT_CreateAsChild(0,40,640,60,hf,GUI_ID_OK,

TEXT_SetText(hb0,"

远程控制电机"

TEXT_SetFont(hb0,&

GUI_FontHZ_Song_16);

TEXT_SetTextColor(hb0,GUI_YELLOW);

TEXT_SetText(hb1,"

35011203刘娜35011109李佳"

TEXT_SetFont(hb1,&

TEXT_SetTextColor(hb1,GUI_YELLOW);

hb=BUTTON_CreateAsChild(240,200,80,30,hf,GUI_ID_OK,WM_CF_SHOW);

BUTTON_SetFont(hb,&

BUTTON_SetText(hb,"

开始"

hb1=BUTTON_CreateAsChild(340,200,80,30,hf,GUI_ID_OK1,WM_CF_SHOW);

BUTTON_SetFont(hb1,&

BUTTON_SetText(hb1,"

停止"

hb2=BUTTON_CreateAsChild(290,250,80,30,hf,GUI_ID_OK1,WM_CF_SHOW);

BUTTON_SetFont(hb2,&

BUTTON_SetText(hb2,"

正转"

hb3=BUTTON_CreateAsChild(290,300,80,30,hf,GUI_ID_OK1,WM_CF_SHOW);

BUTTON_SetFont(hb3,&

BUTTON_SetText(hb3,"

反转"

hb4=BUTTON_CreateAsChild(290,350,80,30,hf,GUI_ID_OK1,WM_CF_SHOW);

BUTTON_SetFont(hb4,&

BUTTON_SetText(hb4,"

加速"

hb5=BUTTON_CreateAsChild(290,400,80,30,hf,GUI_ID_OK1,WM_CF_SHOW);

BUTTON_SetFont(hb5,&

BUTTON_SetText(hb5,"

减速"

while

(1)

{

switch(fan)

case0:

//开始设置为正转

if(row==4)row=0;

(*(volatileunsignedchar*)0x28000006)=tab[row++];

if(row==4)row=0;

delay(10);

break;

case1:

//停止

break;

case2:

//正转

case3:

//反转

if(row==4)row=0;

(*(volatileunsignedchar*)0x28000006)=tab1[row++];

if(row==4)row=0;

case4:

//正转减速

delay(30);

case5:

//反转加速

delay(7);

default:

break;

}

GUI_Exec();

八、调试过程

1、delay(m)中m太小,延迟时间不够,导致步进电机运行时不确定,有时很慢,有时很快眼睛看不清楚;

2、调试时出现许多错误,原因是引用的头文件没加;

3、有时候忘记定义变量,编译时也会出现错误;

4、BUTTON_SetFont(hb1,&

字体不对应的错误

九、实训小结

通过这一周的实训,给我感觉很充实,学到了比平时更多的东西,也觉得时间过的太快了,一下就过去,回顾这一周,给我很大的启发。

我们本来是要做贪吃蛇这个小游戏的,从网上找了许多的资料,也分析了贪吃蛇这个游戏的运行过程,可惜不会将代码转化成ARM环境能够运行的代码,所以就改做控制步进电机的实验了。

做完步进电机这个实训任务,使我对课本上关于步进电机的结构的知识有了更加深刻的理解,而且对其用法掌握得更加熟练。

在实训的过程中,不断地发现问题,并想办法解决,因此提高了我自己解决问题的能力。

在编写程序方面,我对ARM编程结构和技巧也有了深刻的理解和领会。

还有让我明白了流程图的重要性,以前在编程的时候,我一般不写流程图,直接开始写程序,这样出现了不该出现的问题。

但这次实训过程中,根据老师的提示我试着先画出流程图然后按照流程图编写程序,结果错误少了很多,即使有错误只要根据流程图一查就知道错在哪里,这让我节省了大量的时间和精力。

所以我认识到,以后要编写程序时,先写流程图是很有必要的。

不仅节约时间,而且能够使代码的结构很清晰。

总体来说我感觉这一周的时训我收获很多,以前在调试代码

时一出现错误就很烦躁,,有时候被些问题困惑了很久,后来老

师叫我们如何改错,我才恍然大悟,原来只要换个方式思考问题就能想到很好的方法,并且在改错中学到了许多。

非常感谢老师的帮助。

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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