标题: 求助:LED数字浮力计的程序设计问题? [打印本页]

作者: fbzsn    时间: 2017-3-31 09:12
标题: 求助:LED数字浮力计的程序设计问题?
本帖最后由 fbzsn 于 2017-4-1 10:25 编辑

      各位大神好!我想设计一个用LED数码管+89S51+HX711完成浮力的测试。构思:1、可用它测试重力大小;2、用一只按键切换重力和浮力的测量,开机初始化后不按按键测试重力,按一下按键切换为浮力的测量,同时清零,数码管显示“0000”,将物体浸入液体中,受到浮力的作用逐渐增大时,数码管显示的读数也逐渐增大。重力测量的问题也解决,就是浮力测量程序存在疑惑,不知道怎样将载荷值清零(就是当转化为浮力测量模式将挂有重物时数码管显示的重力G变为0000。也就像imxuheng师傅所说的那样:“切换到了浮力测量模式,传感器采集的力是F,于是浮力为G-F。当没有浸入液体时,F=G,此时数码管显示0000,相当于清零”)?敬请各位大神不吝赐教!给点思路,谢谢!!!

作者: imxuheng    时间: 2017-3-31 22:27
是用下面这张图里的做法测浮力吗?
假设物重为G(你之前已经测出来了),现在你切换到了浮力测量模式,传感器采集的力是F,于是浮力为G-F。当没有浸入液体时,F=G,此时数码管显示0000,相当于清零,不知道你所说的载荷值清零是什么意思。

无标题.png (5.6 KB, 下载次数: 114)

无标题.png

作者: yzwzfyz    时间: 2017-4-1 02:24
构思未说得明白,
作者: fbzsn    时间: 2017-4-1 10:08
imxuheng 发表于 2017-3-31 22:27
是用下面这张图里的做法测浮力吗?
假设物重为G(你之前已经测出来了),现在你切换到了浮力测量模式,传 ...

就是利用你下面这张图的原理测量浮力的大小,载荷值清零就是你所说的那个意思,当切换到了浮力测量模式,传感器采集的力是F,于是浮力为G-F。当没有浸入液体时,F=G,此时数码管显示0000,非常感谢你的赐教!不知道怎样处理传感器两次采集的力的数据,使G-F=0? 还望多多指点!谢谢!
作者: admin    时间: 2017-4-14 02:47
问题解决得怎么样了?
作者: XIN_XIN    时间: 2017-4-14 14:51
查看接收到的数据
作者: XIN_XIN    时间: 2017-4-14 14:55
在多机通信中,主机必须要能对各个从机进行识别,在51系列单片机中可以通过SCON寄存器的SM2位来实现。当串口以方式2或方式3发送数据时,每一帧信息都是11位,第9位是数据可编程位,通过给TB8置1或置0来区别地址帧和数据帧,当该位为1时,发送地址帧;该位为0时,发送数据帧。 在多机通信过程中,主机先发送某一从机的地址,等待从机的应答,所有的从机接收到地址帧后与本机地址进行比较,若相同,则将SM2置0准备接收数据;若不同,则丢弃当前数据,SM2位不变。
作者: fbzsn    时间: 2017-4-15 11:15
谢谢大家的指点!问题已得到解决。当按键清零时 compensate2=ReadCount(); 在浮力测量函数中这样 写就可以了:
          XS3=ReadCount();         
      if(XS3>compensate2)
             fuli=0;               
      else
             fuli=compensate2-XS3;       
作者: fbzsn    时间: 2017-4-15 11:19
谢谢大家的指点!问题已得到解决。当按键清零时: compensate2=ReadCount();在浮力测量子程序中,这样写就可以了:unsigned long  XS3;
          XS3=ReadCount();         
         if(XS3>compensate2)
             fuli=0;               
         else  
             fuli=compensate2-XS3;
作者: imxuheng    时间: 2017-4-15 15:15
fbzsn 发表于 2017-4-15 11:19
谢谢大家的指点!问题已得到解决。当按键清零时: compensate2=ReadCount();在浮力测量子程序中,这样写就 ...

good!!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1