HX711电子秤AD芯片,很便宜的模块,买别的零件时候附带捎了一块,最近有空拿出来玩玩,我没有重量传感器,所以没做电子秤,而是尝试看看里面的24位AD咋样,能不能做个电压表?
看资料说它这个AD有效位数最高能到19位,我首先搭建了硬件,给模块供电5V,就是单片机的供电,输入我选择的是B通道,放大倍数是32的,因为考虑到电压表如果用A通道的话,它默认是128增益,可选64增益,如果做电压表测量10V的基准,还得先大幅度的衰减然后再到芯片里面128倍的放大才AD,来回来去干扰误差太大了,所以还是选择低增益的B通道
因为它这个AD输入的输入范围是一个电压中间点,毕竟是给电子秤用的,人家是桥式传感器,我还得给它一个偏置电压,所以在,模块的E+E-之间串联两个电阻,大约12K的,分压出一个中点电压给B-做偏置,然后B+B-之间加个100K电阻做自偏置和输入电阻,
编个程序,在串口输出内部AD转换后的数据,
首先就是跳跃幅度好大,杂波飞舞,最简单的处理就是软件滤波处理,所以我增加了一段带剔除最大最小值的移动平均数字滤波算法,滤波深度从8一直到32,确实改善了杂波问题,不过漂移还是巨大,而且好像没什么规律,灵敏度也是非常的高,我在试验台边上跺跺脚都有明显的变化,看来还需要屏蔽处理啊
屏蔽我找个饭盒,接地后把AD和单片机放里面,一下子世界清净了,通过屏蔽减少了外部干扰,数据进一步稳定下来,但是仍然有漂移,这个漂移是由于温度关系,对温度敏感度很高,于是我又研究一个恒温电路,用LM324做的,温度传感器就是10k的热敏电阻,做这个温度控制又花了几天时间,因为电路元件参数需要反复调整,能够使其控制稳定,最终可以把温度控制在0.1°范围内也就尽力了
然后把HX711模块放到口香糖盒子里,放到恒温板的中部,四周是加热电阻和热敏电阻,外部裹上保温,进行测试
冷态开机:零点AD值是-00011338,保持不变30分钟后读零点AD:-00011542,再过半小时:-00011619,这个波动感觉好像还是我房间里面温度变化造成的,毕竟没有加恒温
开始加热,等待1小时进入恒温