基于LabVIEW的步进电机控制
- 格式:doc
- 大小:125.00 KB
- 文档页数:9
2012年2月15日第35卷第4期
现代电子技术
M o d e r n E l e c t r o n i c s T e c h n i q
u e F e b .2012
V o l .35N o .4
基于L a b V I E W 的步进电机控制
庄瑞荣,吴先球
(华南师范大学物理与电信工程学院,广东广州 510006
摘 要:为了实现P C 机对步进电机的自动调节,设计了基于虚拟仪器技术的步进电机控制方案。系统采用L 298N 芯片进行驱动,以L a b V I E W 作为开发平台,并通过串口实现数据通信。结果显示,该系统能够很方便地实现步进电机的转速转向控制,而且利用虚拟仪器开发平台L a b V I E W 编写上位机程序,
具有编程简单,控制界面友好,程序可移植性强的特点。关键词:步进电机;串口;L
a b V I E W ;V I S A
中图分类号:T N 911-34 文献标识码:A 文章编号:1004-373X (201204-0202-
03L a b V I E W -b a s e d c o n t r o l o f s t e p p i n g
m o t o r s Z HU A N G R u i -r o n g
,WU X i a n -q i u (I n s t i t u t e o f P h y s i c s a n d T e l e c o m m u
n i c a t i o n E n g i n e e r i n g ,S o u t h C h i n a N o r m a l U n i v e r s i t
y ,G u a n g z h o u 510006,C h i n a A b s t r a c t :I n o r d e r t o c o n t r o l t h e
s t e p p i n g m o t o r a u t o m a t i c a l l y ,a L a b V I E W -b a s e d c o n t r
o l s y s t e m f o r s t e p p i n g m o t o r s w a s d e -s i g n e d .L 298Nc h
i p i s a d o p t e d i n t h e s y s t e m t o d r i v e t h e s t e p p i n g
m o t o r s .T h e d a t a c o m m u n i c a t i o n b e t w e e n L a b V I E W a
n d t h e m i c r o -c o n t r o l l e r i s e x e c u t e d v i a s e r i a l p o r
t .T h e s o f t w a r e a n d h a r d w a r e o f t h e s y s t e m a r e p r e
s e n t e d .T h e e x p e r i m e n t a l r e s u l t s s h o w t h a t t h i s s y s t e
m h a s a c o n v e n i e n t o p e r a t i o n a l i n t e r f a c e ,a n d i s e a
s y
t o r e a l i z e t h e c o n t r o l o f r o t a t e s p e e d a n d d i r e
c t i o n .K e y w o r d s :s t e p p i n g
m o t o r ;s e r i a l p o r t ;L a b V I E W ;V I S A 收稿日期:2011-09-
11基金项目:国家自然科学基金资助项目(10575039
步进电机是一种将电脉冲信号转换成角位移或线
位移的机电元件。它在在工业自动化控制、数控机床、机器人等领域有着广泛的应用。在远程实验系统中,经常有需要利用步进电机对一些旋钮、
位置等进行自动调节。本文设计了基于虚拟仪器技术的步进电机控制方案。该方案采用虚拟仪器控制步进电机,编程简单,界面友好,
易于更改程序功能,控制灵活性得到了提高。1 步进电机工作原理
步进电机按其力矩产生原理可以分为反应式、永磁式和混合式几种。本文采用的是反应式二相四线步进电机,
定子有两个线圈绕组,设其中一个线圈绕组为A 相, 另一个线圈绕组为B 相。当给A 相绕组通电时,该绕组即产生磁场,转子齿与A
相绕组各齿对齐;当给B 相绕组通电时,
转子齿将与B 相绕组各齿对齐,这样,转子就旋转了一个角度。依次给A 相、B
相绕组通电,就可以实现步进电机的旋转,改变通电的顺序(即先给B 相绕组通电,
再给A 相绕组通电就可以改变电机旋转的方向。另外,由于步进电机是由脉冲信号进行控制的,给电机发一个控制脉冲,它就转一步,再发一个脉冲,
它会再转一步。两个脉冲的时间间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对
步进电机进行调速。2 步进电机控制硬件电路2.1 串行接口电路
串行接口电路由R S 232串行接口、MA X 232芯片和A T 89S 51单片机三部分构成。其中,R S 232串行接口用于连接P C 的R S 232串行接口,MA X 232芯片用于衔接R S 232串行接口与A T 89S 51单片机,实现单片机输入/输出的串口信息到P C 的串行接口信息的转换,即A T 89S 51单片机信号的T T L 电平到R S
232电平的转换,从而实现二者之间电气特性上的兼容。具体串行接口硬件电路如图1所示。2.2 驱动电路
步进电机的驱动电路有多种方案,本文采用芯片L 298N 进行驱动。该芯片是专用驱动集成电路,
输出电流大,输出功率强。其输出电流为2A ,最高电流4A ,最高工作电压50V ,可以驱动感性负载,如大功率直流电机、步进电机、电磁阀等,特别是其输入端可以与单片机直接相连,从而很方便地受单片机控制。
采用L 298N 芯片可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。同时,为了避免电机对单片机的干扰,在驱动电路中加入光耦T P L -521,进行光电隔离,从而使系统能稳定可靠的工作。具体驱动电路如图2所示。
图1
串行接口硬件电路图2 步进电机驱动电路
3 步进电机控制程序设计
3.1 下位机程序设计
单片机接口程序采用C51语言编写。程序中,定义了数组t a b l e1和t a b l e2,用来存储脉冲信号对应的数据;并定义了一个控制转向的指针c o n t r o l m o d e,为该指针赋予不同的值,电机便实现正反转功能。另外,程序中还定义一个速度控制变量m o d e,通过P C机发送命令字改变速度控制变量的值便可以实现转速的控制。在m a i n函数部分,先调用“串口初始化程序”,再调用“控制命令字判断程序”以实现电机的速度和转向控制。m a i n函数的最后部分将单片机收到的命令字返回给P C机,方便观察者查看通信的情况。下面给出m a i n 函数及控制变量的程序段。
…
U c h a r i d a t a t a b l e1[]={0x f e,0x f d,0x f b,0x f7,0x f f};//正转
3
2
第4期庄瑞荣,等:基于L a b V I EW的步进电机控制
U c h a r i d a t a
t a b l e 2[]={0x f 7,0x f b ,0x f d ,0x f e ,0x f f };//反转u c h a r
i d a t a *c o n t r o l _m o d e ;//控制转向指针s t a t i c i n t
m o d e ;//速度控制变量…
v o i d m a i n ({s e r i n i t (; //调用串口初始化程序 w h i l e (1 {d i s p l a y (;//控制命令字判断 i f (f l a g ==1 //判断是否完成接收 {f l a g
=0; E S =0;
//串口中断关闭 S B U F =t e m p ; //将原先发送的值返回 w h i l e
(!T I ;
//判断是否发送完成 T I =0;
//是则硬件清0 E S =1;
//再次打开串口中断 }}…
3.2 上位机程序设计
单片机和P C 的通信是通过单片机的串口和P C 串口之间的硬件连接实现的。由于L a b V I EW 软件简洁直观,功能强大灵活,该设计采用L a b V I EW 编写上位机的控制程序。程序编写涉及V I S A ,它的实质是一个标准的I /O 函数库。这些库函数用于编写仪器的驱动程序,
完成计算机与仪器间的命令和数据传输,以实现对仪器的程控。
在L a b V I EW 里使用V I S A ,必须安装N I -V I S A 程序包,安装后,与串口通信相关的V I S A 函数位于
F u n c t i o n s →A L L F u n c t i o n s →I n s t r u m e n t I /O →S e r i a l 子模板上,其中,V I S A 配置串口函数用于设定一些参数,并将指定的串口按特定设置初始化;V I S A 写入函数将“写入缓冲区”的数据写入指定的串口;V I S A 读取函数从指定的串口中读取指定字节的数据,
并将数据返回至“读取缓冲区”;V I S A 关闭函数关闭指定串口的会话句柄或事件对象。 本文设计的步进电机控制程序采用上述的通信函数结合事件结构进行编写,并通过程序调试,实现了步进电机的转向和转速控制。程序前面板与程序框图分别如图3和图4所示。4 结 语
本文利用图形化编程语言L a b V I EW 编写程序实现了P C 与单片机的串口通信,并结合单片机外围电路对步进电机进行了转速和转向的控制。实验证明采用L a
b V I EW 编写的程序对步进电机进行控制具有人机
交互界面友好、编程简单、效率高等特点,并且采用L a b V I EW 编写的控制程序移植性较强,可以很方便地被其他程序调用以构成功能更齐全的程序
。
图3
前面板
图4 程序框图