欢迎光临
我们一直在努力

称重传感器HX711

214623dggrq05u63li6zg6

==产品概述==

重量传感器能够感知自身所受重量变化,表现为微弱的电流变化。此时转接模块会利用内置的程序解读电流变化,输出Arduino可以理解的模拟或者数字信号。该传感器体积小、集成度高、反应灵敏、数据可靠,大大缩小了电子称的体积,被广泛应用于电子称生产和工业测量。如果你想为Arduino添加一个测量重量的功能,这款传感器将是你的首选。

该模块已停售,不提供任何技术支持!

==规格参数==

模块工作电压:4.8-5.5v 典型电流 1.6mA 体积:长 2.9cm * 宽 1.7cm * 高 0.4cm * 带金属屏蔽,强抗干扰,预留MCU(STC15F104)位置,可自行升级二次开发。 *两路可选择差分输入 *片内低噪声可编程放大器,可选增益为32、64 和128 *片内稳压电路可直接向外部传感器和芯片内A/D 转换器提供电源 *片内时钟振荡器无需任何外接器件,必要时也可使用外接晶振或时钟 *上电自动复位电路 *简单的数字控制和串口通讯:所有控制由管脚输入,芯片内寄存器无需编程 *可选择10Hz 或80Hz 的输出数据速率 *同步抑制50Hz 和60Hz 的电源干扰 *耗电量(含稳压电源电路): *典型工作电流:< 1.7mA, 断电电流:< 1μA *工作电压范围:2.6 ~ 5.5V *工作温度范围:-20 ~ +85℃

 214624q7rmersm558sluuy

==使用方法==

===工作原理===

01hx711

*模拟输入通道 A 模拟差分输入可直接与桥式传感器的差分输出相接。由于桥式传感器输出的信号较小,为了充分利用A/D 转换器的输入动态范围,该通道的可编程增益较大,为128 或64。这些增益所对应的满量程差分输入电压分别±20mV 或±40mV。通道B 为固定的32 增益,所对应的满量程差分输入电压为±80mV。通道B 应用于包括电池在内的系统参数检测。

*供电电源数字电源(DVDD)应使用与MCU 芯片相同的的数字供电电源。HX711 芯片内的稳压电路可同时向 A/D 转换器和外部传感器提供模拟电源。稳压电源的供电电压(VSUP)可与数字电源(DVDD)相同。稳压电源的输出电压值(VAVDD)由外部分压电阻 R1、R2 和芯片的输出参考电压VBG 决定(图1),VAVDD=VBG(R1+R2)/R2。应选择该输出电压比稳压电源的输入电压(VSUP)低至少100mV。如果不使用芯片内的稳压电路,管脚VSUP应连接到DVDD 或AVDD 中电压较高的一个管脚上。管脚VBG 上不需要外接电容,管脚VFB 应接地,管脚BASE 为无连接。时钟选择如果将管脚 XI 接地,HX711 将自动选择使用内部时钟振荡器,并自动关闭外部时钟输入和晶振的相关电路。这种情况下,典型输出数据速率为10Hz 或80Hz。如果需要准确的输出数据速率,可将外部输入时钟通过一个20pF 的隔直电容连接到XI管脚上,或将晶振连接到XI 和XO 管脚上。这种情况下,芯片内的时钟振荡器电路会自动关闭,晶振时钟或外部输入时钟电路被采用。此时,若晶振频率为11.0592MHz, 输出数据速率为准确的10Hz 或80Hz。输出数据速率与晶振频率以上述关系按比例增加或减少。使用外部输入时钟时,外部时钟信号不一定需要为方波。可将MCU 芯片的晶振输出管脚上的时钟信号通过20pF 的隔直电容连接到XI管脚上,作为外部时钟输入。外部时钟输入信号的幅值可低至150mV。

*串口通讯串口通讯线由管脚PD_SCK 和DOUT 组成,用来输出数据,选择输入通道和增益。当数据输出管脚DOUT 为高电平时,表明 A/D 转换器还未准备好输出数据,此时串口时钟输入信号PD_SCK 应为低电平。当DOUT 从高电平变低电平后,PD_SCK 应输入25 至27 个不等的时钟脉冲(图二)。其中第一个时钟脉冲的上升沿将读出输出24 位数据的最高位(MSB),直至第24 个时钟脉冲完成,24 位输出数据从最高位至最低位逐位输出完成。第25至27 个时钟脉冲用来选择下一次A/D 转换的输入通道和增益,参见表三。

 214624ed2pp221a9a95028

PD_SCK 脉冲数输入通道 增益

214624mr4scch3hsct3l6i

时序图: PD_SCK 的输入时钟脉冲数不应少于25 或多于27,否则会造成串口通讯错误。当A/D 转换器的输入通道或增益改变时,A/D 转换器需要4 个数据输出周期才能稳定。DOUT 在4 个数据输出周期后才会从高电平变低电平,输出有效数据。

===连接示意图===

214624p647v4d903vkhhig

#VCC 可以是 2.6-5.5 中的任意值,因为我们使用的是 Arduino ,所以直接5V供电,GND 接地。 #SCK 接 Arduino 的 Pin 13,DT 接 Pin10,这两个接脚可以在程序中改变。 # E+、E-、A+ 和 A- 分别接桥式传感器的:激励电压正、负,输出电压正、负(E+ 接红线;E- 接黑线;A+ 接绿或蓝线;A- 接白线)。 # B+ 和 B- 接通道B的传感器,也可以通过分压电路接电源,用来检测电源电压。不用的话最好接GND,不过我试验不接也没问题。

===例子程序===

#include"HX711.h"
unsigned int Weight = 0;


void setup() {
Serial.begin(9600);
Serial.print("Welcome!\n");


Init_Hx711();
Get_Maopi(); //clear the weight
delay(3000);


}


void loop() {


Weight = Get_Weight();
Serial.print("Weight = ");
Serial.print(Weight);
Serial.print("g\n");//the true weight
Serial.print("\n");


delay(1000);
}

===库文件其它参数===
HX711(byte sck, byte dout, byte amp = 128, double co = 1); // 定义 sck、dout 接脚,增益倍数(默认128)和修正系数(默认1)
void set_amp(byte amp); // 改变增益倍数和对应的通道,至少调用一次 read() 后起作用
bool is_ready(); // 返回 hx711 是否可用,在 read() 函数中会被调用
long read(); // 返回传感器电压值,如果 hx711 不可用则程序会暂停在此函数
double bias_read(); // 返回:(read() – 偏移值) * 修正系数
void tare(int t = 10); // 将皮重添加到偏移值,影响每次 read(); 的调用
void set_co(double co = 1); // 修改修正系数(默认为1)
void set_offset(long offset = 0); // 修改偏移值(默认为0)
可以看到,HX711还可以使用四参数方式定义,同时指定增益倍数及修正系数。在程序运行中还可以随时改变增益倍数,修正系数以及利用偏移值实现去皮重等功能,非常实用。
#HX711 hx(9, 10); // 这样用说明只定义SCK和DOUT接脚,AMP默认使用A通道的128位增益,修正系数默认为1;
#HX711 hx(9, 10, 64); // 这样用说明定义SCK和DOUT接脚,AMP使用A通道的64增益,修正系数默认为1;
#HX711 hx(9, 10, 32, 1.4); // 这样用说明定义SCK和DOUT接脚,AMP使用B通道的32位增益,修正系数为1.4;
这里有关通道和增益倍数的选择,资料中已经提及过,A通道只有128和64位两种增益倍数,对应满载电压为 20mV 和 40mV,B通道只有固定的32位增益倍数,满载电压为 80mV,使用时各个通道输入电压不要超过对应增益倍数的满载电压。当然,程序中额可以随时切换增益倍数和通道,使用set_amp(amp)函数即可,当然,amp 的值只能是 128、64或32。
再强调一句,如果增益倍数选择32位增益,那么读出的数据就是B通道的。

==程序效果==
打开串口监视窗口施加不同压力查看数字变化

===相关资料===

HX77模块资料:http://pan.baidu.com/s/1pKCfDZd

未经允许不得转载:Arduino-Maker » 称重传感器HX711

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育