基于单片机的简易电子秤设计与实现

时间:2022-10-08 01:49:58

基于单片机的简易电子秤设计与实现

摘要:智能电子秤给人们的经济生活带来了极大的便利,受到广大用户的青睐。本文以MSP430单片机为核心,通过一系列软硬件设计,实现了小重量物体的称重功能,并通过液晶显示模块和基于ISD1760的语音模块实现称重数字化显示并精确语音播报功能。系统以编程后的单片机为控制核心,物体的重量通过HX711传感器称重模块转化为电信号,并经由AD转换,将信号输送给LCD液晶显示模块和ISD1760语音播报模块,从而将实际称得的重量实时通过LCD显示并语音播报。

关键词:传感器;HX711;单片机;语音模块

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)10-0255-02

智能电子秤按照设计要求,应分为数据采集模块、控制器模块、人机交互液晶显示界面三大模块。在功能扩展上,还可以增加一个语音播报功能使电子秤的设计更人性化智能化。基于此,本系统的实现包含硬件和软件设计两大部分,具体以MSP430 单片机为核心控制器,以电阻应变式压力传感器后接HX711模块实现信号转换、采集和放大,从而将物体重量转换成单片机可处理的电压信号。将处理好的电压信号送到LCD显示模块和基于ISD1760的语音播报模块,在这之前需要先将合成的语音片段按地址存入到ISD1760芯片中,记录每一个语音片段的地址,从而通过程序调用,实现按照实际称重值进行语音播报。

1 系统硬件设计方案

1.1系统硬件工作原理

该系统硬件主要包括单片机最小系统、基于HX711传感器称重模块、LCD显示模块和基于ISD1760的语音播报模块,其中,单片机最小系统板是M430G2553开发板,传感器称重模块采用双孔悬臂平行梁应变式称重传感器。显示模块采用INEX-GLCD5110,语音模块采用ISD1760芯片加扩展构成。系统硬件控制电路总体框图如下图1所示:

系统的工作原理为:首先通过USB线给整个系统供电,然后将写好的程序写入M430单片机中,将单片机的引脚信号加载到称重模块、LCD显示模块和语音播报模块,从而使整个系统工作起来。当有物体放到秤台上时,即可显示并播报重量。

1.2系统硬件设计

1.2.1单片机最小系统模块

MSP430 系列单片机是一个16 位的单片机,采用了精简指令集(RISC )结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址);大量的寄存器、片内数据存储器及高效的查表处理指令使其具有较高的处理速度,在8MHz 晶体驱动下指令周期为125 ns,这些特点保证了可编制出高效率的源程序。

1.2.2基于HX711的传感器称重模块

1)基本器件介绍

HX711传感器模块由带128 倍增益的24bit AD 模块、20Kg压力传感器组成,通过对应端口连接到单片机的控制端,实现对物体重量的测量。各模块与HX711连接示意图如下图2所示:

2)基本原理讲解

①20kg 传感器

满量程输出电压=激励电压*灵敏度2.0mv/v

②HX711模块对产生的5mV电压进行采样。

步骤1:如何计算传感器供电电压

HX711可以在产生VAVDD 和AGND电压,即HX711模块上的E+和E-电压。

该电压通过VAVDD=VBG(R1 +R2 )/R2计算。

步骤2:如何计算AD输出最大值

在4.3V的供电电压下20Kg 的传感器最大输出电压是4.3v*2mv/V = 8.6mV

经过128倍放大后,最大电压为8.6mV*128 = 1100.8mV

经过AD 转换后输出的24bit 数字值最大为:550.4mV*224/4.3V ≈ 4294967

步骤3:程序中数据如何转换

程序中通过HX711_Buffer = HX711_Read();获取当前采样的AD 值,最大4294967,存放在long 型变量HX711_Buffer中,因 long 型变量计算速率和存放空间占用资源太多,固除以100,缩放为int 型,便于后续计算。

Weight_Shiwu = HX711_Buffer/100;Weight_Shiwu 最大为42949。

步骤4:如何将AD值反向转换为重力值。

假设重力为x Kg,(x

20Kg传感器输出,发送给AD模块儿的电压为A Kg * 8.6mV / 20Kg = 0.43A mV

经过128倍增益后为128 * 0.43A = 55.04AmV

转换为24bit 数字信号为55.04 A mV * 224 / 4.3V = 214748.3648A

所以y = 214748.3648A /100 = 2147.483648 A

因此得出A = y / 2147.483648 Kg ≈ y / 2.15 g

连接好的称重模块如下图3所示。

1.2.3基于ISD1760的语音播报模块

ISD1700 系列芯片内部包括:麦克风前置扩大器、自动增益控制、扬声器驱动线路、振荡器与内存等全方位整合系统功能。

在本设计中,为实现语音播报功能须事先将需要的声音通过线录的方式存入芯片内,当将此模块连进系统后则可直接通过程序调用语音。连接好的语音播报模块实物图如下图4所示。

2 系统软件设计方案

2.1 软件功能设计目标

称重是系统的核心,语音播报是亮点。因此本次软件开发在Windows系统TI CCS平台下采用模块化设计,包括主程序,传感器处理子程序,LCD液晶显示子程序及ISD1760语音芯片驱动子程序等。

称重传感器数据处理子程序是通过称重传感器的模拟信号进行放大,AD转换来读取称重值。LCD显示子程序主要用来直观显示称重值。语音播报程序是在获得称重值之后将称重值报读出来,主要是通过SPI总线对语音芯片ISD1760进行操作。程序流程结构如上图5所示。

2.2系统软件设计

2.2.1 Altium Designer 软件使用

使用Altium Designer 绘制单片机最小系统、称重模块、LCD显示模块电路原理图、PCB图:

如图7、8所示。

2.2.2用CCS软件编写单片机控制程序

1)程序中主要变量和函数

//5110IO口初始化

voidio_initial(void)

{ P1DIR |= BIT6+BIT7;//设置为输出

2DIR |= BIT0+BIT3+BIT4+BIT5;

}

//获取毛皮质量

voidGet_Maopi()

{HX711_Buffer = HX711_Read();

Weight_Maopi=HX711_Buffer/100;}

voidGet_Weight()

{ Weight_Shiwu=0;

HX711_Buffer = HX711_Read();

HX711_Buffer= HX711_Buffer/100;

Weight_Shiwu = HX711_Buffer;

//获取实物的AD采样数值Weight_Shiwu=(unsigned int)((float)Weight_Shiwu/2.15+0.5);}

//芯片IO初始化

voidIO_initial(void)

{ P2DIR &=~ BIT2;//设置为输入

P2DIR |= BIT0+BIT1;

P1DIR |= BIT5;//设置为输出

DISENISD1760_SS;

ISD1760_SCLK_H;

ISD1760_MOSI_L;

}

3 系统测试及总结

3.1系统测试方案

msp430采用TI MSP430 LunchPad 最小系统板,不必进行测试。对ISD1760语音模块测试,焊接了由STC89C51RC(调试及录音用)与ISD1760芯片组成的语音板, 利用上位机软件进行了ISD1760器件复位,上电,录音,获取录音地址,播放录音等调试,以便将SPI通信移植到MSP430上。系统整体硬件连接实物图如上图6所示。

3.2项目总结

经过多次20kg以下重物称重测试,该系统重复称重精度能达到III类标准,液晶显示功能正常,语音播报及时准确,较好的达到了预期效果。存在的不足是传感器有时信号传递不稳定,称重误差较大。如果改用高精密度的传感器,效果定会明显改善。

该系统操作简单,性能稳定,硬件选配合理,价格低廉,且易于扩展。软件部分加入了人性化设计,如超重报警,语音播报等特色功能,智能化、自动化程度较高。同时该系统可扩展性较强,通过对软硬件的修改或扩展,如添加键盘等,即能设计出富有特色的计价秤、电子台秤等,因此具备一定的工业应用价值。

参考文献:

[1] 程林.超省电型电子秤的设计方案[D]. 福州:福建省计量科学技术研究所,2008.

[2] 赵茂泰.电子测量仪器设计[M].武汉: 华中科技大学出版社. 2010.

上一篇:浅谈课堂问题设计的意义 下一篇:超导滤波器在民航甚高频地空通信系统中的应用...