基于STM32的步进电机控制系统

发布时间 : 星期一 文章基于STM32的步进电机控制系统更新完毕开始阅读

4.5.5 LCD显示程序设计

液晶显示模块的显示器上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;驱动控制芯片当中共有65(8 Page x 8 bit+1)X 132个位的显示RAM 区。而显示器的显示点阵大小为64X128点,所以实际上在液晶显示模块中有用的显示RAM 区为64 X 128个位;按byte为单位划分,共分为8个Page,每个Page为8行,而每一行为128个位(即128列)。驱动控制芯片的显示RAM区每个byte的数据对应屏上的点的排列方式为:纵向排列,低位在上高位在下。如要点亮LCD屏上的某一个点时,实际上就是对该点所对应的显示RAM区中的某一个位进行置1操作;所以就要确定该点所处的行地址、列地址。从图中可以看出,MzL02-12864液晶显示模组的行地址实际上就是Page的信息,每一个Page应有8行;而列地址则表示该点的横坐标,在屏上为从左到右排列,Page中的一个Byte对应的是一列(8行,即8个点),达128列,根据这样的关系在程序中控制LCD显示屏的显示。

显示的主程序中,通过引用下面的程序显示字体在TFT的显示屏,展示字体的颜色和背景的颜色,如下:

LCD_Init();

LCD_Clear_Screen(Blue); adc_Init(); Font = 0;

LCD_PutString(20,0,\步进电机控制系统\

//LCD_PutString(56,111,\ad_value=-180+analog[0] * 360 / 0xFFF; ad_value1=analog[0]; if(ad_value>0) run_dir=1; else run_dir=0;

LCD进行初始化,全屏显示为绿色,显示小号字体,在屏幕上显示“步进电机控制系统”,通过A/D转换读取数值,如果数值大于0,则步进电机正转,否则步进电机进行反转。

32

第5章 步进电机控制系统综合调试与分析

调试包括硬件调试、软件调试和整体联调。由于硬件和软件的研制是相对独立进行的,因此软件调试是在硬件完成之前,而硬件也是在无完整软件情况下进行调试的。在调试中找出缺陷,判断故障源,对硬、软件做出修改,反复进行这一过程,直至确信没有错误之后接入单片机进行整机联调。

步进电机控制系统包括硬件系统和软件系统两大部分,只有硬件和软件密切配合、协调一致,才能构成一个功能完善、性能可靠的控制系统。当系统的软硬件设计完成之后,首先要进行硬件的组装工作,然后便可以进入软件调试阶段,软件程序的调试是软件系统设计的重要环节。

软件系统的调试任务是要查出程序设计当中的语法及逻辑错误,并加以纠正。由于本课题设计软件程序的编写是按功能模块的划分来完成的,所以软件调试可以采用“先分块独立测试后组合联机”、“先单步调试后联合调试”的方法。所谓的“先分块独立后组合联机”就是首先将软件程序进行模块分类,把与硬件无关的模块进行独立调试,把与硬件相关的程序模块进行软、硬联合仿真调试。当各模块都独立调试完成后,可将各程序模块连接起来进行联调,以解决在程序模块连接中可能出现的逻辑错误。

5.1 硬件电路调试

系统的调试过程是整个系统的设计开发过程中,最困难也是最麻烦的一个环节。如何能够有效而且在最短的时间内完成整个系统的调试过程,需要一定的经验和技巧。在硬件和软件都设计成功的情况下,对硬件的调试仍然是比较重要的一部分。

在调试软件程序模块之前,为了确保电路中各个元件之间线路连接良好确保各个元件都能正常工作,我们需要首先检测一下硬件电路的导线连接情况。

将硬件电路的检测工作分为两个部分:

1. 参照硬件电路图,检查电源、地线以及各元件引脚之间的连接是否正确。

33

2. 检查电路中各连线是否牢固地连接上,不能存在接触不良、短接和断接等情况。

在检查硬件电路连线时用到最多的检查工具就是万用表,它能方便快捷地测量出电路中各节点间电压、各节点对地电压和电路中两点连线是否牢固地连接上。通过检查发现,在电路连接中有几个地方连接错误。

5.2 软件电路调试

软件调试过程中,对各个子程序都分别做了调试,而且都得到了较好的效果。而调试过程中遇到的简单的错误大多数时变量每定义、子程序名冲突或没定义之类的错误,一般比较好修改。

5.3 系统联调结果与分析

总体来说,软件还是比较容易实现的,但由于不联系硬件,其中的某些错误是看不出来的,所以重要的部分还是软硬件联调。

系统软、硬件的联调是一个不断完善的过程,常常需要反复多次修改补充才能调试出一个性能良好的系统。在联调过程中我们经常遇到故障,这时需要对系统进行检查,万用表是使用最多的检查工具。在系统联调时不排除某个元件被烧坏或者不工作,如SPGT62C19B芯片被烧坏,重新换个芯片。

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

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

原因分析与解决方法:既然能够显示数据,说明硬件LCD连接是正确的。可知,还是在软件编写时出现了问题,便从LCD显示程序一步步检查,最后发现定义数据的类型出现了错误,改正后,显示出稳定的舵机转动的角度。

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

原因分析与解决方法:软件配置没有设置好,经过指导老师的指导找到了问题的所在,重新配置好软件后程序顺利的下载。

34

结论

本设计将步进电机作为控制对象,基本实现了PWM细分技术下的控制调速的功能。本文设计的基于STM32的舵机控制系统就是在这种背景基础上设计的。本设计是在各种仪器连接使用的基础上设计而成的,只有充分了解有关STM32微处理器以及各部分之间的关系才能达到要求。

整个课题的开发过程主要包括了硬件电路设计和软件程序的编写两个部分,主要任务是开发一个以STM32为核心的舵机控制系统,通过在MDK的环境下编程,由STM32产生PWM信号,可实现键盘对舵机角度和速度的控制,能够通过LCD显示步进电机方向和速度。通过整机联调验证了系统的可行性,能满足设计要求,达到了设计的指标。硬件部分是利用STM32体积小、易扩展、集成度高、可靠性高、功耗低、中断处理能力强等特点。软件部分采用模块化设计,这些模块包括主程序、ADC转换子程序、PWM细分子程序和LCD显示子程序。通过运用STM32平台、PWM细分技术,成功开发出基于STM32平台的步进电机调速系统,并得出以下结论:

(1) 本系统由常用的步进电机和STM32平台构成,实现简单,可广泛适用于工业生产;

(2) 本系统成功完成多级调速,实现了PWM信号的精确输出; (3) 本系统通过TFT彩色LCD显示出步进电机的转速与正反转; (4) 本系统实现ADC输入电位器来调节步进电机的转速与方向;

35

联系合同范文客服:xxxxx#qq.com(#替换为@)