资讯详情

【单片机项目实训】51单片机电子秤(语音播报版)

分享单片机项目培训-51单片机电子秤(语音播报版)。如有不足,请指出。

【实验图】

【演示视频】

【项目培训】51单片机电子秤(语音播报版)

一、设计要求

二、方案选择

三、软件设计

四、图片展示

五、数据链接

六、设计要点

七、关于作者

八、后记


1.用单片机控制数字电子秤的各种功能。

2.数字电子秤能够显示商品的重量、单价,且自动完成商品总价的计算,可通过语音播报商品总价。

3.数字电子秤的测量范围要求达到5KG,测量精度要求1g。

1.设计思路

根据设计要求,首先要实现电子秤的基本称重功能,需要通过称重传感器收集到重量信号,放大电路处理后,从模量到数量,所以每个数量对应于物体的质量(在一定的精度范围内),所以只要数量质量和物体质量建立映射关系,就可以完成称重要求。通过程序操作和键盘控制,可以实现其他功能。

总体结构框架图如下:

原理图如下:

2.控制器

由于系统需要控制液晶显示器和键盘,因此不应使用大型可编程逻辑器件,如CPLD、FPGA来实现。由于大型可编程逻辑器件一般采用状态机实现,即所解决的问题都是有规有限状态转换。系统状态多,难度大。此外,系统没有其他高标准要求,最终选择STC89C52RC单片机实现系统设计,内部有8台K可满足系统设计要求的程序存储器。

3.数据采集部分

(1)传感器。传感器是测量机构中最重要的部件。该系统选用电阻应变压力传感器。电阻应变压力传感器主要由弹性体。内部线路采用惠斯通电桥,当弹性体承受载荷产生的变形时,电阻应变片受到拉伸或压缩应变片变形后,它的阻值将会发生变化(增大或减小),从而电桥失去平衡,产生相应的差动信号,供后续电路测量和处理。该系统要求测量范围为0~4.999Kg,考虑到秤台的自重、振动和冲击重量,传感器的量程必须大于额定称重(4).999Kg),我们选择的称重传感器量程为5Kg,如下图所示。

(2)A/D转换器。所谓A/D转换器是将输入的模拟信号转换为数字信号的装置。HX711,HX711是24位的高精度A/D转换芯片是一种高精度、低成本的设计方案,专门为高精度电子秤设计,有两个模拟通道输入,内部集成128倍增益可编程放大器。

(3)液晶显示部分

本系统选用1602液晶显示屏进行显示。

(4)键盘输入

选择16个按钮的矩阵键盘,其中0~9数字按钮和小数点按钮用于输入单价;去皮按钮用于仅显示物品净重;删除物品单价的按钮;校准; /校准-按钮用于调整校正系数,播放按钮用于播放物品总价,矩阵键盘布局如图所示。

(5)语音模块

方案一:采用OTP语音芯片(一次性语音芯片)。一次性语音芯片在制造商完成记录后,语音内容不能更改,因此需要提前与制造商沟通,需要广播语音内容,如:

首先将你可能使用的所有语音写入语音芯片,然后烧成语音芯片。虽然OTP语音芯片不能重复烧写,但低成本的优势也使其占有一定的市场份额,OTP语音芯片广泛应用于儿童玩具、汽车电子、医疗器械、安全报警等行业。作者以前用过一个OTP语音芯片,成本不超过2元,对于固定内容的广播,建议使用该方案,其硬件连接也很简单,如下图所示。

方案二:最好支持集成语音模块支持 FAT 文件系统和操作简单类似U盘,但成本是OTP芯片的几倍。,在电子秤作品中使用JQ8400-FL,通过类U盘操作将音频文件复制到模块内存,然后一线串口发送文件名(数字)播放语音内容。

该芯片最大的优点是可以灵活更换 SPI-flash 语音内容节省了传统语音
芯片需要安装上位机来更换语音,SPI FLASH 直接模拟成 U 盘,跟拷贝 U 盘一样,
非常方便。使产品研发和生产方便简单。一线串口控制模式,RX232 串口控制
为研发提供更多的选择

三、软件设计

        (1)主程序

void main()
{
    System_Init();
    while(1)
	{
    	Get_Weight();	
    	keycode = MatrixKey_RanksScan();
    	if(keycode)
        {
            KeyPress(keycode);
        }   
	}
}

        (2)流程图

        <1>主程序流程图

         <2>键盘扫描程序流程图

       

四、图片展示

        (1)PCB-3D视图

        (2)实物演示

五、资料链接

        (1)作品演示视频链接

链接①:哔哩哔哩--------点击播放

链接②:优酷视频--------点击播放

链接③:爱奇艺--------点击播放

链接④:腾讯视频--------点击播放

链接⑤:快手视频--------点击播放

链接⑥:西瓜视频--------点击播放

(2)硬件电路分析视频

链接①:哔哩哔哩--------点击播放

链接②:优酷视频--------点击播放

链接③:爱奇艺--------点击播放

链接④:腾讯视频--------点击播放

链接⑤:快手视频--------点击播放

链接⑥:西瓜视频--------点击播放

(3)软件程序分析视频

链接①:哔哩哔哩--------点击播放

链接②:优酷视频--------点击播放

链接③:爱奇艺--------点击播放

链接④:腾讯视频--------点击播放

链接⑤:快手视频--------点击播放

链接⑥:西瓜视频--------点击播放

(4)原理图下载(PDF版)

链接:百度网盘--------点击下载

(5)源程序下载

链接:百度网盘--------点击下载

六、设计要点

(1)如何实现数据的稳定输出?

        数据的稳定输出主要依靠两个方面:①硬件电路      和       ②软件程序。

①先分析硬件电路,HX711为24位的AD模块,对微量的变动非常敏感,所以硬件电路部分一定要注意:

这是作者在设计第一版的电路板的时候的硬件链接,设计后完成发现数据输出不是很稳定,而在E+和E-之间连接一个电解电容,数据的稳定性会有所改善,具体实验过程如下如下:

①首先,E+和E-之间电解电容,然后放置200g标准砝码,采用串口打印相关信息,采集20000次数据,重量数据作图得到:

可以看到,数据稳定性不好,数据范围在0.199Kg~0.202Kg,上下起伏为0.003Kg,即3g左右误差。具体统计如下:

重量值(Kg) 出现次数 次数占比
0.199 689 3.445%
0.2 15259 76.295%
0.201 4047 20.235%
0.202 5 0.025%

也就是正确数据占比为76.295%。(

②在E+和E-之间电解电容,再次实验,采集20000次数据,数据稳定性如下所示:

 可以看到,数据稳定性有所好转,具体统计如下:

重量值 出现次数 次数比例
0.2 19998 99.990%
0.201 2 0.010%

也就是正确数据占比为99.990%。

 ②再分析软件程序,对单片机获取到的重量值,可以采用软件滤波的方式,获取到较为稳定的数据,比如多次求值,然后求平均值,当然还有其他很多滤波方式,都可以去实验,本作品中作者未涉及,有兴趣的可以去试着做。

(2)如何保留小数点后两位有效数字?

float  money=0;     //总价,单位为元


money +=0.005;      //用于四舍五入,保留总价有效数值到百分位

//注意这里的技巧:巧妙利用数据类型转换,使得总价数值保留到百分位(一般金额精确到分)
money = ((float)((unsigned long)(money*100)))/100;

该作品程序中,有这样两部分代码,摘抄这两句代码在一起。具体举例分析,假设money最开始等于22.986元,通过

money +=0.005;             //用于四舍五入,保留总价有效数值到百分位

得到money等于22.991元,再通过:

//注意这里的技巧:巧妙利用数据类型转换,使得总价数值保留到百分位(一般金额精确到分)
money = ((float)((unsigned long)(money*100)))/100;

注意这里包含两次数据类型转换,第一次money先乘以100得到2299.1,然后强制转换为unsigned long类型数据,得到的就是2299元,然后再将其类型转换为float,得到2299.0元,然后除以100,得到的就是22.99元,得到的结果就是四舍五入后保留小数点后两位的结果。

七、关于作者

微创电子工作室,刺客阿瑞原创

八、后记

标签: e4981a电容计数字电桥微量氧传感器传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台