基于AVR单片机和LabVIEW的丝杆步进电机运动控制系统

2017-09-01 06:47杨美程杨益钧丁宁
科技创新与应用 2017年23期
关键词:步进电机单片机

杨美程+杨益钧+丁宁

摘 要:AVR单片机为核心的嵌入式系统,配备专用步进电机驱动器实现对丝杆步进电机运动的控制工作,LabVIEW软件构建虚拟仪器系统并创建友好交互界面。单片机和LabVIEW之间确定串口通信规则,使LabVIEW能够发送相应字符串到单片机从而实现对丝杆步进电机启停、运动方向、运动步数的直接控制,并能够读取电机相关运动状态。文章设计的丝杆电机运动控制系统具有工作稳定,易于操作和可移植性强的特点。

关键词:单片机;LabVIEW;步进电机;串口通信

中图分类号:TM383.6 文献标志码:A 文章编号:2095-2945(2017)23-0011-02

1 概述

丝杆步进电机,又称线性步进电机,由于其特殊的机械机构和工作机理,在日常实验研究及工业生产等相关领域发挥着越来越大的作用。随着技术的不断发展创新,对于丝杆步进电机运动的控制方法已经不仅仅只限于单种技术的使用,而是多技术混合,结合各自的独特优势来实现最优化的系统设计。本系统以AVR单片机为核心搭建硬件工作电路,LabVIEW软件创建虚拟仪器系统,解决了步进电机工作噪声较大,控制操作不便等问题。

2 系统组成

系统主要由装有LabVIEW软件的计算机,AVR单片机、电机驱动器和丝杆步进电机组成,系统组成框图如图1所示。

其中本系统中选用美国国家仪器(NI)公司研制开发的2014版LabVIEW软件,LabVIEW是一种图形化的编程语言的开发环境,可以方便地建立自己的虚拟仪器,利用其编写的上位机程序控制下位机;下位机选用ATMEL公司 中8位系列单片机的ATmega128系列单片机,该款单片机稳定性极高,功耗也很低,单片机与计算机之间通过USB线连接;电机驱动器选用TB6600型号的两相式步进电机驱动器,可实现正反转控制,通过3位拨码开关选择7档细分控制,3位拨码快关选择8档电流控制,能达到低振动、小噪声、高速度的效果;丝杆步进电机选用机身长度40mm,相电流1.7A,保持转矩43N·cm,导程8mm的42丝杆步进电机。

3 系统功能实现

本系统是一种丝杆步进电机运动控制系统,最终可通过LabVIEW直接发送控制丝杆步进电机启停、运动方向以及运动步数的命令,并能读取电机相关运动状态。要完成上述功能需要单片机硬件控制电机、单片机与LabVIEW串口通信和LabVIEW状态机三个基本功能的实现。

3.1 单片机硬件控制电机

步进电机的运动离不开PWM波的使用,因此将AVR单片机中定时器T0处于8位快速PWM工作模式,可产生高频的PWM波形。根据本系统中丝杆电机的结构参数及实际应用情况,经过一系列的测试,定时器T0工作在系统8分频频率下,初值TCNT0设为0,输出比较寄存器值OCR0设定为0x7F,此时相应引脚能够输出占空比50%,频率5.68KHz的PWM方波。将PWM方波输入到驱动器PUL+脉冲信号输入端,驱动器电机绕组连接端子与电机两相相连,通过细分控制和电流控制拨码开关的选择,使丝杆步进电机在细分工作方式下运动,本系统中选择32细分可达到6400脉冲/转,单步螺杆螺距相对运动0.025mm,此时电机运动平滑,稳定,噪声小。对于电机运动方向的控制,单片机通过直接控制电机驱动器DIR电机正反转控制端的电平变化即可实现。单片机、电机驱动器和丝杆步进电机连接如图2所示。

AVR单片机嵌入式系统根据收到的步数指令使电机运动相应的步数,且能够将当前运动步数发送出去。本系统设置定时器T1定时间隔8.25ms,定时到来记一次步数且根据方向标志位确定步数的加或减。单片机收到步数指令后先判断该指令步数与当前电机运动步数的大小来确定电机运动方向,随后使电机运动相应步数,并在收到读取步数指令后将当前步数发送出去。

3.2 单片机与LabVIEW串口通信

首先确定单片机与LabVIEW异步串口通信基本规则,本系统中波特率设置2400bps,数据位8位,停止位1位,无奇偶校验位、停止位和终止符。编写单片机串口通信初始化,发送字符串,接收字符串以及中断服务函数,使单片机能接收到相应指令字符串执行相应动作,并发送相关数据。

LabVIEW中使用仪器I/O工具包中串口相关函数完成串口通信。其中使用VISA配置串口函数连接单片机设备并配置相关通信参数;VISA写入函数写入缓冲区接线端连接需要写入的命令字符串;利用Byte at Port属性节点返回输入缓冲区已存在的字节数,并连接到VISA读取函数字节总数接线端,避免读函数一直处于等待状态,阻塞读进程,导致线程中的其他操作无法进行;VISA读取函数读取缓冲区接线端能输出从指定设备中读取到的字符串数据;最后使用VISA关闭函数释放设备会话空间从而完成设备间的通信。

3.3 LabVIEW状态机

LabVIEW状态机对于不同事件的动作是通过在循环结构中放置事件结构实现的,本系统所用LabVIEW状态机的程序框图如图3所示。在本系统中要实现对丝杆步进电机启停、运动方向、运动步数的直接控制,并读取相关运动状态,则共需要创建五个事件结构,分别为“上升”值改变结构,内有上升布爾控件及“U”字符串;“下降”值改变结构,内有下降布尔控件及“D”字符串;“读取步数”值改变结构,内有读取步数布尔控件及“A”字符串;“写入步数”值改变结构,内有写入步数布尔控件及步数值字符串;“停止”值改变结构,内有停止布尔控件及“S”字符串。

4 系统工作调试

计算机、单片机、电机驱动器和丝杆步进电机等设备组装完整系统,以AVR单片机为核心的嵌入式系统及LabVIEW状态机设计完成后,对系统进行工作调试。运行程序后,点击上升控件则步进电机以每步螺杆螺距相对运动0.025mm的速度正转运动,点击下降控件则以相同速度反转,当前状态显示控件能够显示当前运动状态,点击读取步数控件能够显示当前运动的步数,而点击写入步数控件并给定步数值后电机也会工作相应状态,选择停止控件电机停止运动。程序运行过程中通讯指示灯都会处于点亮状态。

5 结束语

本文提出的一种基于AVR单片机和LabVIEW的丝杆步进电机运动控制系统,以AVR单片机为核心的嵌入式系统结合电机驱动器完成对步进电机的硬件控制,LabVIEW创建的虚拟仪器系统通过和嵌入式系统间的串口通信完成对丝杆步进电机的直接控制,且LabVIEW操作界面交互性强,操作简单。此系统是丝杆步进电机运动的基本操作系统,因此具有很强的移植性,可直接应用于基于丝杠步进电机的工件检测台等装置或其他相关研究领域。

参考文献:

[1]范志华,刘枫,董润坚,等.基于labview的步进电机控制系统设计[J].农业与技术,2016,36(13):16-18.

[2]刘星辰,刘东斌,杜鹏.步进电机控制系统的设计与实现[J].微计算机信息,2009,25(8):26-28.

[3]杨辉,周强.基于LabVIEW和AVR单片机的压力数据采集处理系统[J].化工自动化及仪表,2010,37(11):92-94.

猜你喜欢
步进电机单片机
单片机在智能控制中的应用
一种可自动伸缩的嵌入式LED灯具设计
步进电机智能控制的设计与实现
工矿机车GK1F、GK1C柴油机调速控制
基于单片机的自动化立体车库控制系统设计
基于单片机的雷达伺服控制系统
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器