基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx

上传人:b****2 文档编号:915757 上传时间:2023-04-29 格式:DOCX 页数:13 大小:1.03MB
下载 相关 举报
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第1页
第1页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第2页
第2页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第3页
第3页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第4页
第4页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第5页
第5页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第6页
第6页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第7页
第7页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第8页
第8页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第9页
第9页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第10页
第10页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第11页
第11页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第12页
第12页 / 共13页
基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx

《基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。

基于stm32的步进电机控制系统嵌入式课程设计Word文件下载.docx

通过STM32实现对步进电机的精确控制,经按键实现正转、反转以及转一定角度,再通过TFT彩色LCD显示图片和系统信息。

[1]杜春雷.STM32体系结构与编程.北京:

清华大学出版社,2003

[2]刘灿伟.基于STM32的步进电动机调速系统的研究.华北电力大学硕士学位

论文,2007

[3]周立功.STM32微控制器基础与实践(第二版).北京:

北京航空航天大学出版

社,2005

[4]张绮文,谢建雄,谢劲心.北京:

STM32嵌入式常用模块与综合系统设计实例

精讲.电子工业出版社,2007

[5]谭浩强.C程序设计.北京:

清华大学出版社,1999

[6]顾绳谷.电机及拖动基础.机械工业出版社,2007

[7]陈世元.电机学.中国电力出版社,2005

[8]张民.微机控制步进脉宽调速系统设计.辽宁工程技术大学学报,2001

[9]张广溢,郭前岗.电机学.重庆:

重庆大学出版社,2002

[10]李发海.电机与拖动基础.北京:

北京广播电视大学出版社,1993

[11]于海生.微型计算机控制技术.清华大学出版社,2006

[12]邵裕森,戴先中.过程控制工程.机械工业出版社,2000

学生姓名:

学号:

专业:

课程设计题目:

成绩:

指导教师:

年月日

信息工程学院课程设计成绩评定表

摘要

本文的主要工作是基于STM32步进电机控制系统的设计。

随着越来越多的高科技产品逐渐融入了日常生活中,步进电机控制系统发生了巨大的变化。

单片机、C语言等前沿学科的技术的日趋成熟与实用化,使得步进电机的控制系统有了新的的研究方向与意义。

本文描述了一个由STM32微处理器、步进电机、LCD显示器、键盘等模块构成的,提供基于STM32的PWM细分技术的步进电机控制系统。

该系统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘的输入,使STM32产生周期性PWM信号,用此信号对步进电机的速度及转动方向进行控制,并且通过LCD显示出数据。

结果表明该系统具有结构简单、工作可靠、精度高等特点.

关键词:

STM32微处理器;

步进电机;

LCD显示;

PWM信号;

目录

1任务提出与方案论证5

1.1任务提出5

1.2方案论证5

2总体设计6

2.1系统的硬件设计6

2.2控制系统软件设计6

3详细设计及仿真8

3.1设计主要程序部分8

3.2调试与仿真9

4总结10

5实物图和仿真图11

1任务提出与方案论证

步进电机控制系统的整个设计中最重要的部分是利用PWM细分实现步进电机调速的处理,虽然PWM调速很早就开始研究应用,但如何用PWM细分调速的快速性和准确性至今仍是生产和科研的课题。

随着微电子技术的发展与普及,更多高性能的单片机应用使得PWM细分实现步进电机PWM调速的快速性和准确性都有了极大的提高。

1.1任务提出

总体方案根据课题要求,本设计采用STM32cortex-M3处理器,由SPGT62C19B电机控制模块作为直流电机的驱动芯片,由ADC输入电位器产生调速命令,用TFT彩色LCD作为显示模块。

1.2方案论证

步进电机控制系统硬件方案

本系统主要由一块STM32平台、SPGT62C19B型步进电机驱动模块构成,以STM32为核心,包括电机驱动、电机、A/D转换、LCD显示等模块。

系统的结构框图如图2.1所示。

STM32作为主控芯片,通过I/O端口来控制SPGT62C19B型步进电机驱动芯片,从而实现对步进电机的控制。

通过ADC输入电位器产生调速命令反馈给STM32,STM32调节SPGT62C19B型步进电机驱动模块的状态,从而使电机改变转速和方向。

同时,电机转速可由彩色液晶LCD显示出来,用ADC输入电位器来对步进电机的转动方向和转速等进行设定。

步进电机控制系统软件方案

硬件功能的实现离不开软件的设计与完成。

软件设计是步进电机控制系统设计中最重要、最关键的部分,也是本次毕业设计的难点之处。

由于本系统使用STM32平台,运用KeilforARM开发环境,在KeiluVision软件平台进行开发。

本课题软件设计的思想主要是自顶向下,模块化设计,逐一设计各个子模块,分别进行调试,最后的连调整个程序,判断是否达到预期的要求,做出结论。

各个部分函数都可相互调用又相对独立可调,保证调试的便利与程序的可读性。

2总体设计

第一部分具体介绍了步进电机控制系统的硬件设计,包括SPGT62C19B电机控制模块电路的设计;

第二部分阐述了步进电机控制系统的软件设计;

2.1系统的硬件设计

本系统采用STM32作为主控制器,采用ADC输入电位器作为输入部分,步进电机及其驱动电路采用SPGT62C19B型步进电机驱动模块。

下面分别对STM32以及相关模块的特性进行具体介绍。

(1)步进电机模块

本设计选用专用的电机驱动芯片SPGT62C19B。

SPGT62C19B电机控制模组是为学生以及单片机爱好者学习步进电机和直流电机控制而设计的学习套件。

模组采用凌阳SPGT62C19B电机驱动芯片,配置两相步进电机和直流电机各一台,并提供4位LED数码管用来显示电机转速等信息。

模组配备的步进电机为35BYJ26型永磁步进电机,工作方式为双极性两相四拍。

步进电机是一种将电脉冲转化为角位移的执行机构。

当步进电机接收到一个脉冲信号,它就按设定的方向转动一个固定的角度(称为“步距角”)。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;

同时可以通过控制脉冲频率实现步进电机的调速。

(2)LCD显示模块

显示电路是本设计硬件的主要构成部分,STM32外接TFT模块,MzT24彩色TFT模块是一个2.8英寸的TFT模块,内置TFT控制器,对外连接直接通过8位的8080总线进行指令和数据的传输。

MzT24有像素点数为240×

320,色彩深度为16位色,也就是每一个像素点需要用16位的数据来表示其显示的内容。

MzT24模块的显示操作非常简便,需要改变某一个像素点的颜色时,只需要对该点所对应的2个字节的显存进行操作即可。

这部分电路连接时主要是把数据准确稳定的显示出来,因此连接电路时需注意端口对应的准确连接,否则严重影响数据显示的稳定,甚至出现显示不出来数据。

2.2控制系统软件设计

控制系统软件设计步骤:

对于一个完整的嵌入式应用系统的开发,硬件的设计与调试工作仅占整个工作量的一半,应用系统的程序设计也是嵌入式系统设计一个非常重要的方面,程序的质量直接影响整个系统功能的实现,好的程序设计可以克服系统硬件设计的不足,提高应用系统的性能,反之,会使整个应用系统无法正常工作。

不同于基于PC平台的程序开发,嵌入式系统的程序设计具有其自身的特点,在编写嵌入式系统应用程序时,可采取如下几个步骤:

(1)明确所要解决的问题:

根据问题的要求,将软件分成若干个相对独立的部分,并合理设计软件的总体结构

(2)合理配置系统的资源:

与基于8位或16位微控制器的系统相比较,基于32位微控制器的系统资源要丰富得多,但合理的资源配置可最大的限度发挥系统的硬件潜能,提高系统的性能。

对于一个特定的系统来说,其系统资源,如Flash、EEPROM、SDRAM、中断控制等,都是有限的,应合理配置系统资源。

(3)程序的设计、调试与优化:

根据软件的总体结构编写程序,同时采用各种调试手段,找出程序的各种语法和逻辑错误,最后应使各功能程序模块化,缩短代码长度以节省存储空间并减少程序的执行时间。

此外,由于嵌入式系统一般都应用在环境比较恶劣的场合,易受各种干扰,从而影响到系统的可靠性,因此,应用程序的抗干扰技术也是必须考虑的,这也是嵌入式系统应用程序不同于其他应用程序的一个重要特点。

KeilforARM软件开发环境

本次设计的软件部分采用模块化的设计思想,将各个功能都编成了相应的子程序。

程序运行时,通过主程序的调用及相应模块之间的嵌套调用,实现系统的整体功能。

本设计所需的STM32的外设包括PA口、PB口、PC口和定时器端口,所以也要对外设的时钟进行设置。

由于PA口、PB口、PC口在APB1系统总线外设上,定时器TIM2和TIM3在APB2系统总线外设上,所以要对APB1和APB2总线的时钟频率进行设置。

经过APB1与APB2的分频,将SYSCLK转换成可以进行外设及TIM可以接收的系统时钟。

在时钟初始化子程序中先对系统时钟的模式进行选择,即将系统时钟设置为HSE模式(外部时钟模式),然后设置AHB时钟等于系统时钟,且设置了低速或高速AHB,最后使能的时钟,时钟初始化子程序的流程。

3程序设计及仿真

3.1设计主要程序部分

(主函数)

#include"

led.h"

delay.h"

key.h"

sys.h"

lcd.h"

usart.h"

#include"

drive.h"

chinese.h"

//Ö

Ð

Î

Ä

Ï

Ô

Ê

¾

image2lcd.h"

//Í

¼

Æ

¬

externconstu8gImage_jiemian[];

floatt1;

u16t,t11,t12,t13,t14,result;

unsignedcharbeatcode2[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};

unsignedcharbeatcode1[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};

intmain(void)

{

unsignedchartemp=0,angle=0,index=0,flag1;

unsignedlongbeat=0;

intkey=2;

Drive_Init();

uart_init(9600);

//´

®

¿

Ú

³

õ

»

¯

ª

9600

delay_init();

KEY_Init();

LCD_Init();

LED_Init();

while

(1)

{

key=KEY_Scan(0);

if(key==1)

{

temp++;

if(temp>

2)

temp=0;

}

if(key==2)

angle+=15;

if(angle>

=360)

angle=0;

flag1=1;

if(temp==2)

for(index=0;

index<

8;

index++)

{GPIOA->

ODR=beatcode2[index];

delay_ms

(2);

}

elseif(temp==1)

{GPIOA->

ODR=beatcode1[index];

delay_ms

(2);

elseif(temp==0)

GPIOA->

ODR=0;

while(flag1)

beat=(angle*4076)/360;

while(beat--)

index++;

index=index&

0x07;

flag1=0;

LED0=!

LED0;

}

delay_ms(10);

3.2调试与仿真

调试包括硬件调试、软件调试和整体联调。

由于硬件和软件的研制是相对独立进行的,因此软件调试是在硬件完成之前,而硬件也是在无完整软件情况下进行调试的。

在调试中找出缺陷,判断故障源,对硬、软件做出修改,反复进行这一过程,直至确信没有错误之后接入单片机进行整机联调。

软件系统的调试任务是要查出程序设计当中的语法及逻辑错误,并加以纠正。

由于本课题设计软件程序的编写是按功能模块的划分来完成的,所以软件调试可以采用“先分块独立测试后组合联机”、“先单步调试后联合调试”的方法。

所谓的“先分块独立后组合联机”就是首先将软件程序进行模块分类,把与硬件无关的模块进行独立调试,把与硬件相关的程序模块进行软、硬联合仿真调试。

当各模块都独立调试完成后,可将各程序模块连接起来进行联调,以解决在程序模块连接中可能出现的逻辑错误。

系统软、硬件的联调是一个不断完善的过程,常常需要反复多次修改补充才能调试出一个性能良好的系统。

在联调过程中我们经常遇到故障,这时需要对系统进行检查,万用表是使用最多的检查工具。

在系统联调时不排除某个元件被烧坏或者不工作,如SPGT62C19B芯片被烧坏,重新换个芯片。

以下为在对各个模块进行调试过程中出现的问题,以及问题的分析与解决过程:

一、程序仿真正确,将程序下载到STM32处理器中时,LCD显示的数据不稳定。

原因分析与解决方法:

既然能够显示数据,说明硬件LCD连接是正确的。

可知,还是在软件编写时出现了问题,便从LCD显示程序一步步检查,最后发现定义数据的类型出现了错误。

二、软件编写完成后进行调试时下载不了程序。

软件配置没有设置好,经过指导老师的指导找到了问题的所在,重新配置好软件后程序顺利的下载。

4总结

本设计将步进电机作为控制对象,基本实现了PWM细分技术下的控制调速的功能。

本文设计的基于STM32的舵机控制系统就是在这种背景基础上设计的。

本设计是在各种仪器连接使用的基础上设计而成的,只有充分了解有关STM32微处理器以及各部分之间的关系才能达到要求。

整个课题的开发过程主要包括了硬件电路设计和软件程序的编写两个部分,主要任务是开发一个以STM32为核心的控制系统,通过在MDK的环境下编程,由STM32产生PWM信号,可实现键盘对舵机角度和速度的控制,能够通过LCD显示步进电机方向和速度。

通过整机联调验证了系统的可行性,能满足设计要求,达到了设计的指标。

硬件部分是利用STM32体积小、易扩展、集成度高、可靠性高、功耗低、中断处理能力强等特点。

软件部分采用模块化设计,这些模块包括主程序、ADC转换子程序、PWM细分子程序和LCD显示子程序。

通过运用STM32平台、PWM细分技术,成功开发出基于STM32平台的步进电机调速系统,并得出以下结论:

(1)本系统由常用的步进电机和STM32平台构成,实现简单;

(2)本系统成功完成多级调速,实现了PWM信号的精确输出;

(3)本系统通过TFT彩色LCD显示出步进电机的转速与正反转;

(4)本系统实现ADC输入电位器来调节步进电机的转速与方向;

整个过程中只有亲自动手才能学到相关的知识,为自己以后专业学的更扎实、牢固打下基础。

5实物图和仿真图

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2