51单片机HX711称重程序,大神帮忙解释一下

51单片机HX711称重程序,大神帮忙解释一下,第1张

30是AD值吧,其实里面是AD采集原理,24970这个数尘迟链配值表示5kg,如果是派唤李2.5kg就是这个数值除以2,如果是1kg就是这个数值除以5

30大约是0.006千克,如果负数超过这个值,就说明是负重量,就报警。

STM32F103采用PB8和PB9接HX711的DO和CLK。软件可以参考简悉https://blog.csdn.net/qq_21078557/article/details/80496495。下面记录一下调试过程:

1、老出现8388608或8388607,换算为十六进制就是80000和7FFFFF,就是表示采集值无效,可以理解为0,如果始终出现,表示传感器输出或电路出错。

2、仔细检查电路,特别是传感器的接线,一般红黑为电源,绿白为信号,但是有厂家不是这样定义的,特别留意。这次我的错误就是在这里。

3、软件中延时取多少时间?由HX711说明书看出,CLK时间设置为us级别即可,一般拦没乎延时delay(1us),这个由STM32程序设定。注意STM32L151芯片的时钟比较慢,delay1us的时间要算好。这也是我的错误所在处。

4.传感器读察中数和电压以及重量关系,如何标定。

————————————————

版权声明:本文为CSDN博主「binbincau」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/binbincau/article/details/99332517

#include<msp430x14x.h>

#include "HX711.h"

//****************************************************

/带判租/延时函数

//****************************************************

void Delay_hx711_us(uint t)

{

//_nop_()

//_nop_()

while(t--)

}

// I/O配冲没置

void PORT_Init(void)

{

P1SEL &=~ (BIT1+BIT2)

P1DIR &=~ BIT2//SDA

P1DIR |= BIT1//SCK

}

//****************************************************

//读取HX711

//****************************************************

unsigned long HX711_Read(void) //增益128

{

unsigned long count

unsigned char i

P1OUT |= BIT2//SDA

Delay_hx711_us(4)

P1OUT &=~ BIT1//SCK

count=0

while( P1IN&BIT2 )//SDA

for(i=0i<24i++)

{

P1OUT |= BIT1//SCK

count=count<<1

P1OUT &=~ BIT1/蠢兆/SCK

if(P1IN&BIT2)//SDA

count++

}

P1OUT |= BIT1//SCK

Delay_hx711_us(4)

P1OUT &=~ BIT1//SCK

return(count)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12344712.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存