基于上位机和Proteus的步进电机仿真控制系统设计

发表时间:2021/5/28   来源:《科学与技术》2021年第5期   作者:刘永琦
[导读] 本文介绍了基于上位机和Proteus的步进电机仿真控制系统的设计方案
        刘永琦
        北京电子科技职业学院  机电工程学院航空电气技术系  北京  100176
        摘要:本文介绍了基于上位机和Proteus的步进电机仿真控制系统的设计方案。该方案是以单片机80C51为核心,通过ULN2003A 驱动步进电机,再结合上位机和Proteus仿真系统,实现对步进电机的有效控制。
        关键词:51单片机;上位机;步进电机

        随着科学技术的不断发展,计算机科学技术已被广泛应用于各行各业中,多数电气设备的运行都离不开电机的拖动,而步进电机是常用于过程控制和及仪表中的控制元件之一。因其控制系统具有结构简单、功能强大、性能稳定、价格低廉等诸多优点,在数控机床、自动化包装、电动阀门、医疗设备等方面有着广泛而深入的应用。步进电机具有以下优点:结构部件少,没有电刷,在较宽范围内进行速度平滑调节;步进电动机速度不受负载变化的大小的影响,具有快速启停、易于调整、停止时能自锁等特点。因此,笔者设计了一种基于上位机和Proteus的步进电机仿真控制系统,可以实现上位机和单片机对步进电机正转、反转和停止的控制,在教学和实际应用中有一定的参考价值。
1 总体设计方案
        本系统采用的主控制单元是美国STC公司最新推出的51内核的高性能微处理器STC89C52,与供电模块、电机驱动模块、按键输入模块、通信模块等外围电路及以python中Tkinter编写的上位机一起构成了基于上位机和Proteus的步进电机仿真控制系统。该系统具有以下主要功能:①在上位机界面实现,用虚拟按键对步进电机的正转、反转和停止控制;②在Proteus界面,用按键实现对步进电机的正转、反转和停止控制;③在Proteus界面,实现上位机按键和Proteus界面按键控制的切换;④在上位机界面和Proteus界面显示步进电机启停状态。⑤上位机和51单片机通过串口进行通信。系统框架如图1所示。本设计包含硬件设计和软件设计两部分。
        

2 硬件设计
        Proteus的步进电机仿真控制系统硬件电路图如图2所示。包含有STC89C52主控单元,ULN2003步进电机驱动单元,PC与单片机之间的RS232串口通信单元等。
        

2.1 主控单元
        STC89C52单片机是美国STC公司最新推出的一种新型51内核的单片机, 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器,使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。 在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。本设计采用的STC89C52单片机使用PDIP40封装,管脚分布图如下图3所示

2.2  ULN2003驱动模块
        ULN2003芯片是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,如图4所示,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。它的输出端允许通过电流为200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。用户输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。
        ULN2003是一个非门电路,包含7个单元,单独每个单元驱动电流最大可达500mA,9脚可以悬空。比如1脚输入,16脚输出,非感性负载(灯泡、电阻、电容等)接在VCC与16脚之间,不用9脚。若接感性负载(电机、电感等),在原来的电路基础上把第9脚接到负载的电源正极即可。(不接电路也能工作,不过会有一定几率损坏芯片).
        
   
2.3  RS232通信模块
    本系统的RS232串口通信固定接在单片机STC89C52的P3.0和P3.1口上,RS232 串行通信接口芯片选择MAX3232,它是一款3.0V~5.5V 供电、低功率的RS232收发器,支持高达1Mbps 的通信速率,仅需要四个电容作为外部元件即能工作。它的内部结构基本可分三个部分;第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
 

3 软件设计
        本系统上位机通过串口与单片机通信,实现对步进电机进行正转、反转和停止的控制,所以软件部分包含上位机程序和单片机程序两部分。
3.1 上位机程序
        上位机程序采用Python的编写。Python 提供了多个图形开发界面的库,几个常用Python GUI库有Tkinter,wxPython和Jython。Tkinter模块(Tk接口)是Python的标准TkGUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里。Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
        Python使用Tkinter就可以快速的创建GUI应用程序。由于Tkinter是内置到python的安装包中、只要安装好Python之后就能import Tkinter库、而且IDLE也是用Tkinter编写而成、对于简单的图形界面 Tkinter 还是能应付自如。本系统上位机界面如图6所示,上面有串口选择,打开串口按钮,波特率选择,正反转启动停止按钮,状态显示,功能如下:① 选择串口号后,打开串口,可以与单片机串口通信;② 按一下正转、反转和停止按钮,可以对步进电机进行相应控制;③状态显示部分,可以显示当前电机的状态,是停止还是正反转。


3.2 单片机程序
        单片机程序设计包含三部分:第一步是步进电机转动的驱动程序;第二部分是定时器控制的按键扫描程序;第三部分是与上位机进行串口通信的程序。
        控制系统上电后单片机进入初始化,设定各寄存器的初值,此时电机停转;如果有按键按下,立即产生中断信号,CPU启动中断服务程序判别键值,用以执行相应的子程序,通过改变寄存器值完成步进电机的方向和速度的控制。使用软件编程的延时程序来完成电机的转速控制。延时时间常数越小,电机转速越快。步进电机的旋转方向取决于内部绕组的通电顺序。改变电机内部各相绕组的通电顺序即可控制步进电机的转向改变步进电机的转向。通过软件编程,使得单片机给绕组施加不同相序的脉冲电流,可实现电机的转向控制。为了使系统的带负载能力更强,运行更平稳,可选用四相八拍驱动方式。
3.3 虚拟串口软件
        为了实现单片机与上位机通信,需要用到端口虚拟软件Configure Virtual Serial Port Driver。使用过程如下:
        ①首先打开事先下载安装好的软件Configure Virtual Serial Port Driver,会看到如图7所示界面。
        
        图 7 虚拟端口软件界面
        ②然后选择端口号(可随意),如COM1、COM2,其它选择好后点击Add pair 按钮,就创建了一对端口(在软件右面可看到),当然可以根据需要创建多对。
        ③ 最后检查是否创建成功——可通过打开设备管理查看。
        ④ 创建成功,之后就可以一直使用虚拟串口
4 结论
        本次设计的基于上位机和Proteus的步进电机仿真控制系统,可以实现上位机和单片机对步进电机正转、反转和停止的控制以及步进电机状态显示,在教学和实际应用中有一定的参考价值。
参考文献
[1] 牛慧佳.基于单片机的步进电机控制系统设计研究[J].数字技术与用,2017(8)[2] 王会良. 单片机C语言应用100例. 北京 电子工业出版社,2017
[3] 田聪,苏畅.基于51单片机的步进电机控制系统设计与实现[J].电子试,2017(22)
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: