称重压力传感器HX711AD模块电路+程序
HX711电子秤称重模块配送资料(加中值滤波的单片机源码)

HX711电子秤称重模块配送资料(加中值滤波的单片机源码)电子秤注意1.程序中采用P16、P17口作为HX711的数据口。
2.每个传感器的系数不一样,第一次测量必须修正传感器的系数。
(修正系数HX711_xishu)修正方法:例如1000g砝码称出来是934g,则HX711_xishu=(原值)*1000/934;电路原理图如下:电子称 LCD1602(加中值滤波)单片机源程序如下:#include //调用单片机头文件#include#define uchar unsigned char //无符号字符型宏定义变量范围0~255#define uint unsigned int //无符号整型宏定义变量范围0~65535#define ulong unsigned longsbit rs=P0^5 //寄存器选择信号 H:数据寄存器 L:指令寄存器sbit rw=P0^6; //寄存器选择信号 H:数据寄存器 L:指令寄存器sbit e =P0^7; //片选信号下降沿触发sbit hx711_dout=P1^7;sbit hx711_sck =P1^6;sbit beep = P3^0; //蜂鸣器sbit K1 = P3^5; //加sbit K2 = P3^6; //长按去皮键sbit K3 = P3^7; //减uchar K2_num;uint time1;uint time2;uint time3;long weight; //实际重量值long qi_weight; //皮重ulong warn_weight;ulong HX711_xishu=35386; //这是一个修正系数,例如1000g砝码称出来是934g,则HX711_xishu=原数据*1000/934;#define MEDIAN_LEN 5 //中值滤波的滤波长度,一般取奇数#define MEDIAN 3 //中值在滤波数组中的位置ulong buffer[MEDIAN_LEN]; //中值滤波的数据缓存int medleng = 0; //一组中值滤波数据中,进入滤波缓存的数据个数ulong xd,xd1; //数据对比大小中间变量/***************删除键去皮价格清零***************//******1ms延时函数***11.0592M晶振**************/void delay_1ms(uint q){ulong i,j;for(i=0;i<>< p=""><>for(j=0;j<11;j++);}/************************************************************** ******* 名称 : delay_uint()* 功能 : 小延时。
hx711转换公式

hx711转换公式HX711转换公式是一种常见的模拟数字转换(ADC)电路,用于测量物理量并将其转化为数字信号。
本文将介绍HX711转换公式的原理和应用。
一、HX711转换公式的原理HX711是一种高精度、低功耗的模拟数字转换芯片,常用于称重传感器和压力传感器等测量设备中。
它采用差分式输入,通过调整增益和偏移量,将模拟信号转换为数字信号。
HX711转换公式的原理可以简单描述为:输入电压经过放大和采样后,通过内部的数模转换器(ADC)转化为数字信号。
转换公式可以表示为:Digital Output = (Analog Input - Offset) / Scale其中,Analog Input是传感器输入的模拟信号,Offset是偏移量,Scale是比例因子。
通过调整偏移量和比例因子,可以实现对输入信号的校准和量程调节。
二、HX711转换公式的应用1. 称重传感器:HX711转换公式常用于称重传感器中,通过测量传感器的变形或压力,将物体的重量转换为数字信号。
在工业生产、商业交易和家庭使用中都有广泛应用。
2. 压力传感器:HX711转换公式也可以应用于压力传感器中,测量压力大小并转换为数字信号。
压力传感器广泛应用于工业控制、环境监测和医疗设备等领域。
3. 温度传感器:HX711转换公式还可以用于温度传感器中,将温度变化转换为数字信号。
温度传感器在气象观测、环境监测和工业自动化等领域有重要的应用。
通过HX711转换公式,可以实现传感器信号的精确测量和数字化处理,提高测量的准确性和稳定性。
三、HX711转换公式的优势1. 高精度:HX711芯片具有高分辨率和低噪声特性,可实现高精度的模拟数字转换。
2. 低功耗:HX711采用低功耗设计,可满足电池供电和节能要求。
3. 强抗干扰能力:HX711芯片内部采用滤波和抗干扰技术,能有效抑制外部干扰信号,提高测量的稳定性和可靠性。
4. 简单易用:HX711芯片集成度高,具有简单的接口和配置,方便使用和集成到各种测量设备中。
HX711电路

HX711电路HX711电路优点及特性:HX711是一款专为高精度秤重传感器而设计的24位A/D转换器芯片。
与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点、降低了电子秤的整机成本,提高了整机的性能和可靠性。
该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。
输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。
通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。
通道B则为固定的64增益,用于系统参数检测。
芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。
芯片内的时钟振荡器不需要任何外接部件。
上电自动复位功能简化了开机的初始化过程。
HX711引脚功能及电器特性表1HX711引脚功能名秤性能描述管脚号1 VSUP 电源稳压电路供电电源:2.6-5.5V(不用稳压电路时接AVDD)2 BASE 模拟输出稳压电路控制输出(不用稳压电路时为无连接)3 AVDD 电源模拟电源:2.6-5.5V4 VFB 模拟输入稳压电路控制输入(不用稳压电路时应接地)5 AGND 地模拟地6 VBG 模拟输出参考电源输入7 INA 模拟输入通道A负输入端8 INA+ 模拟输入通道A正输入端9 INB 模拟输入通道B负输入端10 INB+ 模拟输入通道B正输入端11 PD-SCK 数字输入断电控制(高电平有效)和串口时钟输入12 DOUT 数字输出串口数据输出13 X0 数字输晶振输入(不用晶振时为无连入输出接)14 X1 数字输入外部时钟或晶振输入,0:使用片内振荡器15 RATE 数字输入输出数据速率控制,0:10Hz;1:80Hz16 DVDD 电源数字电源:2.6-5.5V表2 主要电气参数参数条件及说明最小值典型值最大值单位满额度差分输入范围V(inp)-V(inn) ±0.5(AVDD/GAIN)V输入共模电压范围AGND+0.6 AVDD-0.6V输出数据速率使用片内振荡器,RATE=010Hz 使用片内振荡器,RATE=DVDD80外部时钟或晶振,RATE=0fclk/1,105,920外部时钟或晶振,RATE=DVDDfclk/138,240输出数据编二进制补码800000码7FFFFF(HEX)输出稳定时间(1)RATE=0 400 mv RATE=DVDD 50输入零点漂移增益=128 0.2 增益=64 0.8输入噪声增益=128,RATE=0 50 nV(ms)增益=128,RATE= DVDD90温度系数输入零点漂移(增益=128)±7 nV/℃输入共模信号抑制比增益=128,RATE=0100 dB电源干扰抑制比增益=128,RATE=0100 dB输出参考电压(VBG)1.25 V外部时钟或晶振频率11.0592 30 MHz 电源电压DVDD 2.6 5.5 VAVDD,VSUP 2.6 5.5模拟电源电路(含稳压电路)正常工作1600 uA 断电0.3数字电源电路正常工作100 uA 断电0.2表3 输入通道和增益选择PD-SCK 脉冲数输入通道增益25 A 12826 B 6427 A 6432..3HX711管脚说明模拟输入通道A模拟差分输入可直接与桥式传感器的差分输出相接。
模数转换芯片hx711 c驱动程序

while(GPIO_ReadInputDataBit(ADIO,DATA));
delay_us(1);
for(i=0;i<24;i++)
{
GPIO_SetBits(ADIO,CLK);
val=val<<1;
delay_us(1);
long double SUM; //定义存放采样值之和的全局变量。
int i=0; //定义指向队列当前位置的数组下标变量。
void ADInit(void) //初始化AD芯片使用的I/O端口。
{
GPIO_InitTypeDef GP2PeriphClockCmd(ADCLK,ENABLE);
while(1)
{
IntToStr(filter(),str); //IntToStr()函数在进行形参传递时,把filter()函数返回的浮点数转化为了整型数,
//所以,此处调用IntToStr()函数不会出错。
for(i=0;str[i]!='\0';i++); //计算数字是几位数。
/*******************************************************
本文件中,是操作称重传感器专用AD芯片 HX711 的程序。
********************************************************/
#include "stm32f10x.h"
这两句来替代,因为,这样会改变SUM的值,越减越小,到最后,会出现负数了。*/
hx711传感器工作原理

hx711传感器工作原理
HX711传感器是一种重量测量模块,常用于称重、压力传感器和力传感器等领域。
其工作原理基于压阻效应和示值放大器的原理。
具体步骤如下:
将被测物体放置在称重传感器上,压缩应变片,使电阻值发生变化。
传感器输出微弱信号,通过微处理器或单片机读取。
读取的数据信号需要经过放大器进行放大,使得其变得更加稳定和准确。
放大后的信号被转换为数字信号,并通过串行通信接口传输给控制器,进行数据处理和显示。
HX711传感器内部集成了放大器和模数转换器,可以直接将模拟电压信号转换为数字信号输出,精度高、稳定性好、噪声低,因此在重量测量领域得到广泛应用。
简易电子秤电路设计

摘要随着计量技术和电子技术的发展,传统纯机械结构的杆秤、台秤、磅秤等装置逐步被淘汰。
而电子秤是将传感器技术、信息处理、电子技术等技术综合一体的现代新型称重仪器。
电子秤计量准确、快速方便,并且能实现自动称重和数字显示。
本作品主要以STC89C52单片机为控制核心,针对电子秤的自动称重、单价设置、金额计算与累加和去皮功能进行设计。
电子秤由六个功能模块组成,传感器模块、信号调理模块、单片机控制模块、报警模块、显示模块和按键模块。
本设计由电阻应变片桥式传感器进行数据采集,所得差模信号经HX711型芯片的放大和转换,再由单片机的控制和处理,最后在显示屏上显示重量、单价和金额等。
该设计很好的完成了设计要求,效率高,误差较小。
关键词:电子秤;STC89C52单片机;电阻应变片桥式传感器;HX711目录1 方案论证与比较......................................................................................................................1.1传感器模块方案....................................................................................................................1.2信号调理模块方案................................................................................................................1.3单片机控制模块方案............................................................................................................1.4显示模块方案........................................................................................................................1.5按键模块方案........................................................................................................................1.6报警模块方案........................................................................................................................ 2理论分析与计算.......................................................................................................................2.1电阻应变片传感器................................................................................................................2.2 HX711信号处理模块 ............................................................................................................2.3 STC89C52单片机控制模块...................................................................................................2.4 LCD1602显示 ........................................................................................................................2.5 4矩阵键盘........................................................................................................................3系统硬件设计...........................................................................................................................3.1 电阻应变片电桥电路...........................................................................................................3.2 HX711信号调理电路 ............................................................................................................3.3 单片机控制系统电路...........................................................................................................3.4显示电路与单片机接口电路................................................................................................3.5 按键电路与单片机接口电路...............................................................................................3.6蜂鸣器超重报警系统电路.................................................................................................... 4系统软件设计........................................................................................................................... 5系统调试...................................................................................................................................5.1测试方法与仪器....................................................................................................................5.1.1测试方法...........................................................................................................................5.1.2测试仪器...........................................................................................................................5.2数据测试与分析.................................................................................................................... 6总结........................................................................................................................................... 参考文献......................................................................................................................................1 方案论证与比较1.1传感器模块方案采用电阻应变片桥式传感器。
专用型高精度24位AD转换器芯片HX711说明

HX711称重传感器专用模拟/数字(A/D)转换器芯片简介:HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。
与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。
降低了电子秤的整机成本,提高了整机的性能和可靠性。
该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。
输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。
通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。
通道B则为固定的32增益,用于系统参数检测。
芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。
芯片内的时钟振荡器不需要任何外接器件。
上电自动复位功能简化了开机的初始化过程。
特点:两路可选择差分输入片内低噪声可编程放大器,可选增益为64 和128片内稳压电路可直接向外部传感器和芯片内A/D 转换器提供电源片内时钟振荡器无需任何外接器件,必要时也可使用外接晶振或时钟上电自动复位电路简单的数字控制和串口通讯:所有控制由管脚输入,芯片内寄存器无需编程可选择10Hz 或80Hz 的输出数据速率同步抑制50Hz 和60Hz 的电源干扰耗电量(含稳压电源电路):典型工作电流:<1.7mA, 断电电流:<1μA工作电压范围:2.6 ~ 5.5V工作温度范围:-20 ~ +85℃16 管脚的SOP-16 封装管脚说明模拟输入通道A模拟差分输入可直接与桥式传感器的差分输出相接。
由于桥式传感器输出的信号较小,为了充分利用A/D 转换器的输入动态范围,该通道的可编程增益较大,为128或64。
这些增益所对应的满量程差分输入电压分别±20mV或±40mV。
完整版电子秤解决方案 51MCUHX711

单片机电子秤设计报告秤是一种在实际工作和生活中经常用到的测量器具。
随着计量技术和电子技术的发展,传统纯机械结构的杆秤、台秤、磅秤等称量装置逐步被淘汰,电子称量装置电子秤、电子天平等以其准确、快速、方便、显示直观等诸多优点而受到人们的青睐。
和传统秤相比较,电子秤利用新型传感器、高精度AD 转换器件、单片机设计实现,具有精度高、功能强等特点。
本课题设计的电子秤具有基本称重、键盘输入、计算价格、显示、超重报警功能。
该电子秤的测量范围为0-10Kg ,测量精度达到5g ,有高精度,低成本,易携带的特点。
电子秤采用液晶显示汉字和测量记过,比传统秤具有更高的准确性和直观性。
另外,该电子秤电路简单,使用寿命长,应用范围广,可以应用于商场、超市、家庭等场所,成为人们日常生活中不可少的必需品。
一、功能描述1、采用高精度电阻应变式压力传感器,测量量程0-10kg ,测量精度可达5g。
2、采用电子秤专用模拟/数字(A/D )转换器芯片hx711 对传感器信号进行调理转换,HX711 采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24 位A/D 转换器芯片。
3、采用STC89C52 单片机作为主控芯片,实现称重、计算价格等主控功能。
4、采用128*64 汉字液晶屏显示称重重量、单价、总价等信息。
5、采用4*4 矩阵键盘进行人机交互,键盘容量大,操作便捷。
6、具有超量程报警功能,可以通过蜂鸣器和LED 灯报警。
7、系统通过USB 电源供电,单片机程序也可通过USB 线串行下载二、硬件设计1、硬件方案单片机电子秤硬件方案如图1所示:图1单片机电子秤硬件方案称重传感器感应被测重力,输出微弱的毫伏级电压信号。
该电压信号经过电子秤专用模拟/数字(A/D)转换器芯片hx711对传感器信号进行调理转换。
HX711采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24位A/D转换器芯片,内置增益控制,精度高,性能稳定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
default : break;
}
}
if(KEY_NUM == 13)//数字D键,计算总价
{
Money = Price_Buffer[0] * 100 + Price_Buffer[1] * 10 + Price_Buffer[2];
Money = Money * Weight_Shiwu / 1000;
unsigned long Weight_Maopi = 0,Weight_Shiwu = 0;
char Price_Count = 0;
unsigned char KEY_NUM = 0;
unsigned char Price_Buffer[3] = {0x00,0x00,0x00};
unsigned long Money = 0;
switch(Price_Count)
{
case 0:
LCD1602_write_com(0x80+0x40+6);
LCD1602_write_data(Price_Buffer[0] + 0x30);
break;
case 1:
LCD1602_write_com(0x80+0x40+7);
LCD1602_write_data(Price_Buffer[1] + 0x30);
LCD1602_write_data('.');
LCD1602_write_data(Money%10 + 0x30);
Flag_OK = 1;
}
if(KEY_NUM >= 0 && KEY_NUM <= 9)//显示输入的价值
{
Price_Buffer[Price_Count] = KEY_NUM;
{
Price_Count--;
if( Price_Count < 0)
{
Price_Count = 0;
}
Price_Buffer[Price_Count] = 0;//清除上一个输入的数据
switch(Price_Count)
{
case 0:
LCD1602_write_com(0x80+0x40+6);
Get_Maopi();//称毛皮重量
while(1)
{
if( Flag_OK == 0)
{
Get_Weight();//称重
//显示当前重量
LCD1602_write_com(0x80+0x40);
LCD1602_write_data(Weight_Shiwu/1000 + 0x30);
LCD1602_write_data('.');
LCD1602_write_data(' ');
break;
case 1:
LCD1602_write_com(0x80+0x40+7);
LCD1602_write_data(' ');
break;
case 2:
LCD1602_write_com(0x80+0x40+9);
LCD1602_write_data(' ');
break;
case 2:
LCD1602_write_com(0x80+0x40+9);
LCD1602_write_data(Price_Buffer[2] + 0x30);
break;
default : break;
}
Price_Count++;
if( Pห้องสมุดไป่ตู้ice_Count >= 3)
{
Price_Count = 3;
}
}
}
}
}
//****************************************************
//矩阵键盘扫描
称重模块电路+程序(测试通过)
总体电路
电源+串口通讯
单片机最小系统:
存储模块+下载模块+蜂鸣器+矩阵键盘
称重模块:
淘宝链接:
主程序:
#include "main.h"
#include "LCD1602.h"
#include "HX711.h"
unsigned long HX711_Buffer = 0;
LCD1602_write_com(0x80);//指针设置
LCD1602_write_word("Welcome to use! ");//开机画面第一行
Delay_ms(2000);//延时2s
loop:Price_Count = 0;
Price_Buffer[0] = 0;
Price_Buffer[1] = 0;
if( KEY_NUM != 0x55)//当返回的不是初值时候,确认按键按下。
{
if(KEY_NUM == 16)//数字A键,去皮功能
{
Get_Maopi();//去皮
}
if(KEY_NUM == 15)//数字B键清除键,二次测量
{
goto loop;
}
if(KEY_NUM == 12)//数字C输入单价错误时返回上一步
LCD1602_write_data(Weight_Shiwu%1000/100 + 0x30);
LCD1602_write_data(Weight_Shiwu%100/10 + 0x30);
LCD1602_write_data(Weight_Shiwu%10 + 0x30);
}
KEY_NUM = KEY_Scan();
bit Flag_OK = 0;
//****************************************************
//主函数
//****************************************************
void main()
{
Init_LCD1602();//初始化LCD1602
Price_Buffer[2] = 0;
Flag_OK = 0;
LCD1602_write_com(0x80);//指针设置
LCD1602_write_word("+WEI |PRI | MON ");
LCD1602_write_com(0x80+0x40);//指针设置
LCD1602_write_word("0.000| . | . ");
LCD1602_write_com(0x80+0x40+11);
LCD1602_write_data(Money/1000 + 0x30);
LCD1602_write_data(Money%1000/100 + 0x30);
LCD1602_write_data(Money%100/10 + 0x30);