HX711模块
HX711是24位的力学信号放大器,设计的关键点:
01.全桥测力
电路的应变片的贴法有讲究,用502基本上就变成一次性的存在初始变形需校准,703可以更换没有预应变力,哥俩好存在预应变效应;
02.在半桥测力上精密电阻的选择很重要
03.除去称重,测力系统一般会配合强电磁干扰的伺服电机驱动器,这时启动电机测力就会出现严重干扰;
04.出现干扰首先检查电路板是接地还是浮地,然后检查传感器屏蔽线的问题;
05.上面叙述故障依旧时,检查直流
电源线是否过长,必要时要加入磁环;在实际验证中过长的屏蔽线也会受到干扰,一般USB延长线都有一个小磁环就是这原理;
06.编程中读取数据用SPI方法可以将27位看作32位4个寄存器,不过SPI有些快需要多分频,而且多通道实现存在难度;
07.采集压力传感器一般是很多通道的,迎来一个问题,采集速度问题和干扰问题;
08.如采集通道数64路的采集压力箱,需要64个HX711,共用时钟总线,用一块
单片机读取需要比单通道减慢64倍;
09.解决方案是共用定时器中断,在代码上模拟IO口输出和读取;
10.多通道实现要电路的基准电压需要加大功率,2v的电压源要保证精确。
//HX711模块代码块
sbit ADDO = P1^5;
sbit ADSK = P0^0;
unsigned long ReadCount(void)
{
unsigned long Count;
unsigned char i;
ADSK=0; //使能AD(PD_SCK 置低)
Count=0;
while(ADDO); //AD转换未结束则等待,否则开始读取
for (i=0;i《24;i++)
{
ADSK=1; //PD_SCK 置高(发送脉冲)
Count=Count《《1; //左移一位,右侧补零
ADSK=0; //PD_SCK置低
if(ADDO) Count++;
}
ADSK=1;
Count=Count^0x800000;//第25个脉冲下降沿时转换数据
ADSK=0;
return(Count);
}
原作者:dreamdoing 千里优选教学基地