完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
程序:
void Delay__hx711_us(void) { _nop_(); _nop_(); } //**************************************************** // 读取 HX711 //**************************************************** unsigned long HX711_Read(void) //增益 128 { unsigned long count; unsigned char i; HX711_DOUT=1; Delay__hx711_us(); HX711_SCK=0; count=0; while(HX711_DOUT); for(i=0;i<24;i++) { HX711_SCK=1; count=count<<1; HX711_SCK=0; if(HX711_DOUT) count++; } HX711_SCK=1; count=count^0x800000;//第25个脉冲下降沿来时,转换数据 Delay__hx711_us(); HX711_SCK=0; return(count); } 主函数直接用定义unsigned long 的date变量来获得date=HX711_Read(); 但是在LCD1602 完全没有反应,1602显示是正常的,接线也没有问题,HX711的管脚接51单片机的 DouT=P3^0; SCLK = P3^3;请问怎么解决?哪里的问题 |
|
相关推荐
5个回答
|
|
你DEBUG 打断点 查看下 数据对不对
|
|
|
|
解决了,原来是我做的板子出现BUG了,但是怎样才能将模拟量转化成我们需要的重量呢?网上查的一些代码都无法实现。
|
|
|
|
是你代码问题,只接用数据手册里面的代码就可以驱动了。
|
|
|
|
我之前做过这个,你应该有hx711的数据手册吧,没有的话,在网上搜,一大堆,讲解很详细的,不难理解,实在不懂再联系 |
|
1 条评论
|
|
//获得物体的真实重量 unsigned long Get_Weight(void ) { HX711_Buffer = HX711_Read(); HX711_Buffer = HX711_Buffer/100; if(HX711_Buffer > Get_plank()) { True = HX711_Buffer; True = True - Get_plank(); // 获取实物的 AD 采样数值。 True = (unsigned int)((float)True/4.257 +0.05); // 计 算 实 物 的 实际重量 // 因 为不同的传感器特性曲线不一样,因此,每一个传感器需要矫正这里的 4.30 这个除数。 // 当 发现测试出来的重量偏大时,增加该数值。 // 如 果测试出来的重量偏小时,减小改数值。 // 该 数值一般在 4.0-5.0 之间。因传感器不同而定。 //+0.05是为了四舍五入百分位 Buzzer = 1; // 关闭警报 } // else if(HX711_Buffer < Weight_Maopi - 30) // { // Buzzer = 0; // 负重量报警 // } // else if(HX711_Buffer > Weight_Maopi + 24970) // 大于 5Kg 的最大量程,报警 // { // Buzzer = 0; // } // if(True > 5000 || HX711_Buffer < Get_plank() - 30) // { // Buzzer = 0; // } // else // { // Buzzer = 1; // } // True *=19.11; // if(mode!=0) True-=76; return True; } //**************************************************** // 获取上板的重量 //**************************************************** unsigned long Get_plank(void) { // unsigned long aa; // HX711_Buffer=(HX711_Read()-8387600); // HX711_Buffer=(unsigned long)((HX711_Buffer*50)/33490); // HX711_Buffer=(HX711_Buffer-311)*10/11-9-aa; HX711_Buffer = HX711_Read(); Plank = HX711_Buffer/100; return Plank; // return HX711_Buffer; } 按照理解代码应该是这样的,但是在不加重量1602显示好大的数字,过千位。我的称重传感器是10kg 的。是程序哪里有问题吗? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
93 浏览 0 评论
esp8266作为tcp客户端,服务器主动断开连接后,是会主动重连吗,如何设置不要主动重连呢
1527 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-platform总线驱动简单示例
658 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第六十章 猫脸检测实验
983 浏览 2 评论
1248 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12758 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-4-7 07:43 , Processed in 0.756205 second(s), Total 90, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191