基于51单片机的蓝牙电子秤设计

1.设计方案

本设计以STC89C52单片机为主控芯片制作了一款数字电子秤,以电阻应变式压力传感器来进行称重,将感应到的被测物体的重力转化为微弱的毫伏级电压信 ,在HX711芯片内部进行128的增益放大,将此放大的模拟电压信 经过AD转换电路转化为数字信 通过引脚DT和SCK送入到单片机普通数字IO口进行处理,即将二进制信 转换成十进制,同时将测量物体的重量显示在LCD显示屏上,同时通过蓝牙模块将数据传输到手机上。系统框图如图1所示:

2) 称重传感器选择

称重传感器感应被测物体重力,输出微弱的毫伏级电压信 。该传感器稳定性较好,精度和灵敏度较高(见右下图),满足设计精度要求。电阻应变式压力传感器主要由弹性体、电阻应变片电缆线等组成。内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,电阻应变片受到拉伸或压缩应变片变形后,它的阻值将发生变化,从而使电桥失去平衡,产生相应的差动信 ,供后续电路测量和处理。如左下图:

图 3 电阻应变式压力传感器测量原理图及参数表

当垂直正压力P作用于梁上时,梁产生形变,电阻应变片R1、R3受压弯拉伸,阻值增加; R2、R4受压缩,阻值减小。电桥失去平衡,产生不平衡电压,不平衡电压与作用在传感器上的载菏P成正比,从而将非电量转化成电量输出。
称重传感器的量程选择是根据秤台的最大称重值来选择的,称重传感器台面的使用传感器个数,称体的自重,可能会产生的偏载等因素综合评价最终确定称重传感器的使用量程。称重传感器量程越接近,对于秤体自重准确度就越高。因此,选用称重传感器量程的时候要考虑称体自重。本次设计可测最大物体重量位10kg,因此选用量程为10kg的称重传感器。
称重传感器的原理图如图3所示。

方案二:
AD7710是美国模拟器件(ADI)公司最新推出的串行24位双通道ADC芯片,AD7710是应用于低频测量完全的模拟前端芯片。它直接接受来自前端变换/传感器传送过来的微弱电压信 并把它换成数字信 输出。AD7710的转换技术实现了21位不丢失码的特性。AD7710输入的传感信 首先通过AD7710内部的可编程增益放大器进行放大,放大后的信 经模拟调制器处理后输出到可编程调节截止点和响应时间的数字滤波器。
最后选择了HX711这款模块,因为AD7710的价格太高了,而且本次实验要求的精度在0-5g,HX711模块可以完成目标。

4) 显示模块的选择
方案一:
采用LCD1602液晶显示屏:1602液晶,是一种专门用来显示字母,数字,符 等的点阵型液晶模块,它由若干个点阵符位组成,每一个点阵字符位都可以显示一个字符,可以用软件达到很好的控制,硬件不复杂,液晶字符显示器可以显示很丰富的内容,而且使用液晶显示不需要复杂的外围电路。
LCD1602主要技术参数:
显示容量:16×2个字符;芯片工作电压:4.5—5.5V;工作电流:2.0mA(5.0V)
模块最佳工作电压:5.0V;字符尺寸:2.95×4.35(W×H)mm

5) 蓝牙模块的选择
?采用CSR主流蓝牙芯片,蓝牙V2.0协议标准;输入电压:3.6V–6V,禁止超过7V:波特率为1200,2400,4800,9600,19200,38400,57600,115200用户可设置;带连接状态指示灯,LED快闪表示没有蓝牙连接;LED慢闪表示进入AT命令模式;板载3.3V稳压芯片,输入电压直流3.6V-6V;未配对时,电流约30mA(因LED灯闪烁,电流处于变化状态);配对成功后,电流大约10mA。用于GPS导航系统,水电煤气抄表系统,工业现场采控系统;可以与蓝牙笔记本电脑、电脑加蓝牙适配器等设备进行无缝连接。
HC-05嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。
当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有AT命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PI011)输入电平,可以实现模块工作状态的动态转换。

基于51单片机的蓝牙电子秤设计

图 15 实物图

硬件构成:单片机+最小系统+LCD1602液晶显示模块+HX711模块+HC05蓝牙模块。
LCD1602液晶显示当前重量(单位:g)

感受:
通过本次实验我学会了使用keil和proteus软件如何使用,体会到了仿真和实物的区别,学好英语的重要性,阅读手册的重要性,当我们找不到我们需要器件的时候如何替换器件保证仿真成功。应变片是很灵敏的,我尝试用滑动变阻器代替他,发现使用直流电源电桥两端不能产生压差变化所以最终显示屏不能显示明显你变化的数据,于是放置了一个交变电源,才模拟成功显示数据。在画仿真图之前要阅读数据手册,熟知每个引脚的作用,此次实验中,我在第一次连接仿真图的时候忽略了给P0口接上上拉电阻, P0口做数据总线用是不需要加上拉电阻,这个书上面有写的,就是8个IO口同时控制输出,比如P0口接1602液晶、12864液晶、数码管的8段段选等等都不需要加上拉电阻,如果做单个的IO口用就要加上拉电阻,仿真里P0口必需要加上拉电阻,这个是仿真和实际的差别。有了这次的经验下次画仿真图的时候就不会再犯错了。当我们连接好仿真图以后我们要把程序烧到51单片机里边,这就需要keil生成的hex文件。因为我们是第一次接触到proteus这个软件,我们找元器件的时候要上 去找每个元器件的名称,这个时候我就意识到英语的重要性,因为很多都是英文的缩写。总之在本次设计收获了很多,老师的高标准严要求让我们对知识点如数家珍,其实本次设计我们收获的不仅是专业知识上的进步,还意识到团队合作的重要性,组员之间沟通的重要性,本次虽然很累但是很值得。?本次设计明白了单片机设计不仅是学习书本的内容,也需要从实验中掌握知识。这次实训让我受到了很多的启发,并学到了很多的知识,明白了自身的不足。要完成实训就要掌握C语言各种语句的意义和程序设计的基本知识和方法,掌握单片机与其他设备相连接的输入输出的技术。比如在利用串口进行数据的传输时,是先将数据存储在SBUF缓存器中,然后再通过单片机的TXD引脚一位一位往外传。在此要感谢老师的指导,让我对此有了更加深入的了解,同时对单片机的内部有了一定的了解。在实训的过程中我也明白了编写代码要从基础部分开始学习,在设计程序时,要首先看芯片的数据手册,根据芯片的时序图进行编写。在编写程序的时候,我学会了模块化的程序设计方法,模块化程序设计具有很多的优点,一个模块可以被多个程序所共享,模块程序的设计和调试比较方便,容易完成,在写主程序时可以直接利用已经编好的成熟模块,这个减少了我们写代码的时间。完成了程序设计后,我又对要实现具体功能的模块程序进行独立调试,在独立调试成功后,又将这些模块程序装配成整体程序进行联合调试,最后在我的努力下,完成了实训题目的设计。但是这个过程同样也不是一帆风顺的,在这个过程中遇到了数据传输错误的问题,没有设置好波特率。在查阅资料后明白了,在数据传输的时候,接收和发送的波特率要保持一致。在编写程序时,我还了解到了采用循环结构和子程序结构可以使程序的容量大大减少,提高程序的效率,节省内存。
哈哈哈这次设计真的是好上头,双眼皮都肿成单眼皮啦,希望下次不要这么没出息啦。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月26日
下一篇 2021年5月26日

相关推荐