微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM的步进电机控制系统

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

时间:12-21 来源:互联网 点击:

第二部分是设计该系统的重点——步进电机驱动电路,采用的是L298N电机驱动芯片设计的驱动电路。该芯片是SGS公司的美国国家半导体公司生产的。L298N是一个高电压,高电流全桥驱动电路,其支持TTL逻辑标准电平,是驱动步进电机的良好方案。其工作的最大电压可以达到46V,电流可达到4A,具有过电流保护,低功耗芯片。其有15个引脚,内含两个H桥电路,能够驱动两个直流电机和一个四相的步进电机。它接受PWM脉冲波,输出为跟输入PWM波占空比一样的脉冲波驱动电机,这样如果需要改变步进电机的转速,可以通过调整PWM的占空比和频率实现。该驱动电路可以控制电机的转动方向,只需要用GPIO控制L298N的方向引脚,设置其为低电平或者高电平这样方可改变其方向。这部分还需要12 V的直流电源,可通过电压稳压芯片实现。
第三部分是键盘显示部分,这部分主要是用来显示电机的速度和给定,左边显示了速度的给定,右边显示电机当前的速度,其中按键用来设定电机调速的调整参数。其设计原理是利用ARM的SPI进行串行通信实现每次传送两个字节,其中第一个字节是段码,该段码是八段数码管的段码值,它是8个数码管公用的段码;第二个字节是位码,该位码的8位分别对应8个数码管的公共端。用两个74HC164移位寄存器实现数据的移位传输,并且把8个按键连接到8个数码管的公共端,这样实现动态扫描显示数码管。
3.3 软件设计
软件设计主要是包含三个部分,分别是系统初始化模块、电机调速控制模块和键盘显示模块。设计流程如图2所示,其中第一部分系统初始化模块。主要实现LPC2131的启动设置,包括初始化中断向量表、初始化堆栈、系统变量初始化、中断系统初始化、I/O初始化、外围设备初始化、存储器初始化和地址重映射初始化等操作,这部分主要是用ARM汇编实现的,为C语言的运行提供一个良好的环境。

第二部分是电机调速模块。这部分是该系统设计的重点,其中需要PWM初始化,定时器捕获初始化、I/O初始化和PID算法实现。对于PWM模块的初始化需要两路PWM以实现四相电机时序来控制电机的转动,其中PWM的占空比实现电机电压的速度控制。I/O实现电机的方向控制,通过设置低电平和高电平设置不同的电机转向。定时器捕获模块实现闭环调速系统,用定时器捕获电机转动时电机叶子切割红外线产生的脉冲数进而算出电机的转速,不过计算电机转速时得注意电机的减速比。PID算法以实现电机的智能控制,通过设置给定转速和捕获回来的转速,计算出下次需要给出的PWM占空比,以实现电机速度的准确控制。
第三部分是键盘显示模块。该模块主要是实现通过键盘实时的调整PID参数,那么左边显示的是给定的电机转速,右边显示的是当前的电机转速。在该模块中需要定时器模块、SPI模块,其中定时器模块实现对数码管的动态扫描和获取按键的键值;SPI模块实现把数码管的段码和位码串行发送出去。其中按键的功能主要实现加法、减法、修改和确定,这样就可以实时的根据当前的转速修改PID参数,以实现电机转速的实时控制。

4 结束语
为了提出一种更高效、实用性更强、更优化的控制系统,本文的控制系统是基于ARM LPC2131来设计的步进电动机控制系统,其通过ARM的高速和丰富的外设资源对步进电机实现转速的精确控制和实时监测控制,具有对步进电机实时控制、数据处理速度快、精度高、良好的人机界面、操作简单和易于维修等特点。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top