HX711使用教程-数字电子秤常用芯片

1.简介

HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片是专门为称重传感器设计的,称重传感器只需要一个HX711芯片即可完成称重信号的处理及AD转换;对于单片机来说,获取此刻的重量值,只需一个简单函数读取此时AD值,并通过一个线性方程的转换后即可获取此时物体的精确重量。
HX711使用教程-数字电子秤常用芯片_第1张图片

2.硬件电路介绍

先介绍HX711芯片的硬件电路,如图:
HX711使用教程-数字电子秤常用芯片_第2张图片
该方案使用内部时钟振荡器(XI=0),10Hz的输出数据速率(RATE=0,可配置为80Hz)。电源(2.7~5.5V)直接取用与MCU芯片相同的供电电源。片内稳压电源电路通过片外PNP管S8550和分压电阻R1、R2向传感器和A/D转换器提供稳定的低噪声模拟电源。

通道A模拟差分输入直接与桥式传感器的差分输出相接(通道B接地不使用)。
HX711使用教程-数字电子秤常用芯片_第3张图片
由于桥式传感器输出的信号较小,为了充分利用A/D转换器的输入动态范围,该通道的可编程增益较大,为128或64。这些增益所对应的满量程差分输入电压分别±20mV或±40mV。通道B为固定的32增益,所对应的满量程差分输入电压为±80mV。

3.通信引脚

HX711芯片与单片机的通讯只需要两个引脚,时钟引脚PD_SCK及数据引脚DOUT,用来输出数据,选择输入通道和增益。当数据输出管脚DOUT为高电平时,表明A/D转换器还未准备好输出数据,此时串口时钟输入信号PD_SCK应为低电平。当DOUT从高电平变低电平后,PD_SCK应输入25至27个不等的时钟脉冲,如图:
HX711使用教程-数字电子秤常用芯片_第4张图片
其中第一个时钟脉冲的上升沿将读出输出24位数据的最高位(MSB),直至第24个时钟脉冲完成,24位输出数据从最高位至最低位逐位输出完成。第25至27个时钟脉冲用来选择下一次A/D转换的输入通道和增益,时序如图。
HX711使用教程-数字电子秤常用芯片_第5张图片

4.控制程序

对于单片机来说,只需要通过两个普通的IO口与HX711的PD_SCK、DOUT引脚项链,并根据以上时序进行编程,即可完成对HX711芯片的控制,控制程序如下。
(1)AD值读取函数

//读取HX711
//****************************************************
unsigned long HX711_Read(void)	//增益128
{
	unsigned long count; 
	unsigned char i; 
  	HX711_DOUT=1; 
	Delay__hx711_us();
	Delay__hx711_us();
  	HX711_SCK=0; 
  	count=0;
	EA = 1; 
  	while(HX711_DOUT); 
	EA = 0;
  	for(i=0;i<24;i++)
	{ 
	  	HX711_SCK=1; 
	  	count=count<<1; 
		HX711_SCK=0; 
	  	if(HX711_DOUT)
			count++; 
	} 
 	HX711_SCK=1; 
  	count=count^0x800000;//第25个脉冲下降沿来时,转换数据
	Delay__hx711_us();
	HX711_SCK=0;  
	return(count);
}

(2)AD值与实际重量转换公式
转换公式也是很简单,只需经过一个1次线性方程进行转换即可,

void Get_Weight()
{
	Weight_Shiwu = HX711_Read();
	Weight_Shiwu = Weight_Shiwu - Weight_Maopi;		//获取净重
//GapValue为线性方程的系数
	Weight_Shiwu = (unsigned int)((float)(Weight_Shiwu*10)/GapValue)-qupi; 	//计算实物的实际重量		
}

更多HX711设计资料 请关注公众号,首页回复“HX711”获取资料
在这里插入图片描述

你可能感兴趣的:(单片机应用,硬件,HX711,称重传感器,电子秤)