APP下载

基于STM32的电子秤设计与应用

2017-06-03骆琳冬瑛

科学与财富 2017年15期
关键词:电子秤传感器

骆琳+冬瑛

(中国计量大学 浙江杭州 310018)

摘要:电子秤是利用称重传感器作为变换元件,把被称物体的重量按一定的比例关系转换成与其相应的电信号,用电子仪表进行测量和显示的装置。本系统以STM32单片机为主控芯片,外围附以称重电路、显示电路、报警电路、键盘电路等构成智能称重系统电路板,从而实现自动称重系统的称重功能、报警功能、数据计算功能以及人机交换功能。可以说,此设计所完成的电子秤很大程度上满足了应用需求。

关键词: STM32;电子秤;人机交换;传感器

基于单片机的步进电机控制系统设计要求利用改变脉冲的频率和顺序来实现步进电机的速度调节,启动、停止,正转、反转等一系列功能。通过的单片机和计算机通信、人机界面设计实现对步进电机的远距离监控和控制。人机界面由VB语言来设计,它们之间的通信是通过RS232的串口实现的。

1 步进电机的控制方法

SCM(Single Chip Microcomputer)是把组成微型计算机的中央处理器、存储器、输入输出接口电路、定时器或计数器等制作在一块集成电路芯片中,它具有小巧、低功耗、指令系统丰富等优点。

PLC(Programmable Logic Controller)是以微型计算机为核心的一种工控机。其控制方案能事先进行模拟调试,自身设计采用了冗余措施和容错技术。由于PLC通用性强,编程操作方便,扩展灵活,可靠性高。

FPGA(Field Programmable Gate Array)它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

由于单片机集CPU、RAM、ROM、CTC、I/O于一体,具有集成度高、软件资源丰富、控制功能和位寻址功能强、软硬件的设计比较方便,因此本设计采用单片机来控制步进电机。

1.1改变控制方式的变速控制

在四相步进电机中,启动或者停止时,用四相八拍,大约在0.1s以后,改用四相四拍的分配方式;在快达到终点时,在采用四相八拍的控制方式,以达到减速控制的目的。

1.2均匀地改变脉冲时间间隔的变速方式

步进电机的加速、减速控制,可以用均匀地改变脉冲时间间隔来实现。例如。在加速控制中,可以均匀地减少延时时间间隔;在加速控制中,则可以均匀地增加延时时间间隔。所以,改变传送控制字的时间间隔既改变延时时间,即可改变步进电机的控制频率。这种控制的优点是,延时时间不受限制,使得步进电机的工作频率变化范围较宽。

1.3采用定时器的变速控制

在本次设计中,采用单片机内部的定时器来提供延时时间。实现的方法是将定时器初始化,每隔一定的时间,有定时器向CPU申请一次中断。CPU相应中断后,便发出一次控制脉冲。此时,只要均匀地改变定时器时间常数,就可以达到均匀加速或减速的目的。采用这种控制方法可以提高控制系统的效率。具体的实现方式见程序程序设计部分。

2 上位机的设计考虑

上位计算机的人机互动界面采用VB语言来编写。VB是Visual Basic简称,是Microsoft公司推出的一种Windows应用程序开发工具。是一种可视化的、面向对象、采用事件驱动方式的结构化高级程序设计语言,可用在Windows环境下各种应用程序的开发。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统今世界上使用最广泛的编程语言之一,被公认为是编程效率最高的一种编程方法。另外,PC计算机与单片机系统通信控制,特别是利用VB(或VC)编程语言进行控制界面设计控制对象的操作是单片机系统应用发展的最前端技术,也是单片机多年来得以生存的主要原因。

3 上位机与硬件设备的通信

MSComm控件全称为Microsoft Communications Control,是Microsoft公司提供的串行通信编程ActiveX控件,它既可以用来提供简单的串行端口通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。使用MSComm控件可以建立串行端口的连接,通过串行端口连接到其它通信设备,发出命令,交换数据,以及监视和响应串行连接中发生的事件和錯误。在程序设计中,可以在OnComm事件处理函数中加入自己的处理代码,一旦事件发生,即可自动执行该段程序。程序响应及时,可靠性高。

1.MSComm控件通信步骤

完成以下步骤,就可以构建自己的串行通信传输系统了:加入通信部件即MSComm对象;设置通信端口号,即CommPort属性;设置通信协议,即HandShaking属性;设置传输速度等参数,即Setting属性;设置其它参数,必要时再加上其它属性设置;打开通信端口,即PortOpen属性设置成True;送出字符串或读入字符串,使用Inport及Output属性;使用完MSComm通信对象后将通信端口关闭,即将PortOpen属性设置成False;

2.Visual Basic程序访问串口的方式

串行端口的本质功能是作为CPU和串口设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据被装换成串行的位;在接收数据时,串行的位将被转换为字节数据。

要完成数据的传输,在操作系统一边,Windows使用通信驱动程序以便应用程序能够使用标准的Windows API函数来发送和接收数据。使用MSComm控件时,实际上就是使用了API函数,API函数将被Comm.drv解释并传输给外围设备驱动程序。在设计过程中只需设置和监视通信控件MSComm所提供的属性或事件,以驱动API函数的接口完成工作。

对于串口通信,Windows为相应的串口设备开放了用户定义的输入缓冲区和输出缓冲区,应用程序只能对输入/输出缓冲区进行操作,数据进出串口的操作均由系统后台完成。以接受为例,系统每接收到一个字符就产生一个低级的硬件中断,系统的串口驱动程序将接收到的字符送入缓冲区,此时应用程序就可以通过访问输入缓冲区得到的字符信息。

4 结语

利用STM32单片机为微控制器的下位机系统和以计算机为上位机的步进电机控制系统,用软件编程代替咯步进控制器,使得电路简化,成本降低,可靠性增加,可以灵活的改变步进电机的控制方案,不需要逻辑电路组成时序发生器,软件编程可灵活产生步进电机励磁序列来控制步进电机的运行速度和方向。用这种方式设计步进电机控制系统顺应了目前国内外控制系统微机化发展的趋势,充分利用了单片机的优点,使得通用性得到了提高。

参考文献:

[1] 张强,吴红星,谢宗武.基于单片机的电动机控制技术[M].北京:中国电力出版社,2008.4.

[2] 王海波,吴晓光,李沛.基于AT89S52单片机的步进电机控制系统设计[J].万方数据,2009,(11):161- 162.

[3] 黄津津,王盈瑛,辛利.Visual Basic程序设计[M].北京:人民邮电出版社, 2010.

猜你喜欢

电子秤传感器
电子秤
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
关于电子秤的设计
压死电子秤
基于STM32的高精度电子秤设计