一、HX711称重模块简介
HX711是一种高精度、低噪声的模拟前端芯片,常用于称重传感器和负载细节测量应用中。它具有内置的放大器和ADC(模数转换器),可以将称重传感器的模拟信号转换为数字信号。 HX711模块通常与称重传感器(如压阻式称重传感器)配合使用,以便实现重量测量功能。在使用HX711时,通常需要将其与一个称重传感器连接,以便将传感器的模拟输出信号转换为数字信号。然后,这个数字信号可以被微控制器或其他数字系统处理和解读。
二、安装开发环境
1、安装 Protel 99 SE,用于制作和查看PCB文件
主要包含,串口电路、电源电路、按键电路、数据接收电路和主控芯片。下图为实物图:
2、安装Source Insight 3 开发环境,用于查看源码。
三、电子秤代码编写
1、查看数据手册,熟悉hx711电子称模块的工作原理
串口通讯线由管脚 PD_SCK 和 DOUT 组成, 用来输出数据,选择输入通道和增益。 当数据输出管脚 DOUT 为高电平时,表明 A/D 转换器还未准备好输出数据,此时串口时钟输入信号 PD_SCK 应为低电平。当 DOUT 从高 电平变低电平后,PD_SCK 应输入 25 至 27 个不 等的时钟脉冲(图二)。其中第一个时钟脉冲 的上升沿 将读出输出 24 位数据的最高位 (MSB),直至第 24 个时钟脉冲完成,24 位输 出数据从最高位至最低位逐位输出完成。第 25 至 27 个时钟脉冲用来选择下一次 A/D 转换的 输入通道和增益,
PD_SCK 的输入时钟脉冲数不应少于 25 或多 于 27,否则会造成串口通讯错误。 当 A/D 转换器的输入通道或增益改变时, A/D 转换器需要 4 个数据输出周期才能稳定。 DOUT 在 4 个数据输出周期后才会从高电平变低电平,输出有效数据。
单片机配置引脚读取数据,返回到的数据应该是一个24位的ADC数据。为了得到具体以重量单位的数据还需要通过算法进一步转换。
参考驱动程序
四、算法补偿函数
我们可以认为采样的数据和实际重量存在一个一阶线性相关。
实际重量(w)= 比例系数(k)* 读取的传感器adc数据 + 补偿值(b)
1、我们不在称重传感器上放置任何物体,那么我们得到的皮重数据其本质上为传感器本身的adc值。
2、然后找到一个可以确定重量的物体,然后放置在称重传感器上,此时数据为传感器本身的在该重量下的adc值
3、我们可以通过如下公式将得到的两个传感器数据值相减,算出参数k的值。公式如下:
比例系数(k)=(手机实际重量-电子秤皮重)/(传感器adc数值-皮重adc值)
补偿值(b)的确定可以由物体在测量过程中的实际表现酌情设置。
最后可以通过串口发送该值到任意设备上。
五、按键去皮功能
去皮健是电子秤上的一个按键,通常被用来去除物品中存在的皮重。所谓的皮重,是指物品本身的重量加上放置在物品上的袋子、盘子等附加物的重量。如果在量物品的时候直接测量,会导致读数不准确。通过按下去皮健,电子秤可以自动识别附加物的重量并进行去除,让读数更加准确。
查看PCB板上按键的引脚,配置成输入模式,并添加防消抖使按键更准确。当按键按下时,使重量清零。
HX711称重模块的学习与开发