HX711是一款专用于高精度电子秤而设计的24位A/D转换器芯片,其内部集成了差分处理电路、稳压电源、片内时钟振荡器等,使电子秤传感器电路大大地简化。 主要参数 * 工作电压范围:2.6~5.5V;* 内部差分电路可编程增益为32,64,128,其中通道B固定增益为32;* 可选择10Hz或者80Hz的数据输出速率;* 低功耗,其工作电流<1.6mA,断电电流<1uA; 称重原理讲解 1. 假设接入100kg称重传感器 满量程输出电压=激励电压*灵敏度2.0mv/v 例如:供电电压是5v 乘以灵敏度2.0mv/v=满量程10mv。 相当于有100Kg 重力产生时候产生10mV 的电压。 2. HX711对产生的10mV电压进行采样 711模块 A 通道带有128倍信号增益,可以将10mV 的电压放大128倍,然后采样输出24bit AD 转换的值,单片机通过指定时序将24bit 数据读出。 步骤1:计算传感器供电电压 HX711可以在产生 VAVDD 和 AGND 电压,即711模块上的 E+和 E-电压。 该电压通过 VAVDD=VBG(R1 +R2 )/R2计算。 VBG为模块儿基准电压1.25v,R1=20K,R2=8.2K,因此得出 VAVDD = 4.3V。 步骤2:计算AD输出最大值 在4.3V 的供电电压下100Kg 的传感器最大输出电压是4.3v*2mv/V = 8.6mV。 经过128倍放大后,最大电压为8.6mV*128 = 1100.8mV。 经过 AD 转换后输出的24bit 数字值最大为: 1100.8mV*(2^24) /4.3V ≈ 4294967 步骤3:程序中数据如何转换 unsigned long ReadCount(void){ unsigned long Count; unsigned char i; SCL=0; //使能AD(PD_SCL 置低) Count=0; while(SDA); //AD转换未结束则等待,否则开始读取 for (i = 0; i < 24; i++) { SCL = 1; //PD_SCL 置高(发送脉冲) Count=Count<<1; //下降沿来时变量Count左移一位,右侧补零 SCL=0; //PD_SCL 置低 if(SDA) Count++; } SCL=1; Count=Count^0x800000;//第25个脉冲下降沿来时,转换数据 SCL=0; return(Count);}
获取当前采样的 AD 值,最大4294967,存放在 long 型变量 HX711_Buffer 中, 因 long 型变量计算速率和存放空间占用资源太多,固除以100,缩放为 int 型,便于后续计算。 步骤4:将 AD值转换为重力值 假设重力为 X Kg 测量出来的 AD 值为 Y ;100Kg 传感器输出,发送给 AD 模块儿的电压为 X * 8.6mV / 100 = 0.086*X mV ;经过128倍增益后为 128 * 0.086 * X = 11.008*X mV ;转换为24bit 数字信号为 11.008*X * 2^24 /4.3V = 42949.67296*X ;所以 Y = 429496.7296X /100 = 429.4967296*X;因此得出X = Y / 429.4967296 Kg。 审核编辑:汤梓红 (责任编辑:admin) |