找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3324|回复: 9
打印 上一主题 下一主题
收起左侧

求助:LED数字浮力计的程序设计问题?

[复制链接]
跳转到指定楼层
楼主
本帖最后由 fbzsn 于 2017-4-1 10:25 编辑

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

使用道具 举报

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

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

无标题.png

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:123289 发表于 2017-4-1 02:24 | 只看该作者
构思未说得明白,
回复

使用道具 举报

地板
ID:45225 发表于 2017-4-1 10:08 | 只看该作者
imxuheng 发表于 2017-3-31 22:27
是用下面这张图里的做法测浮力吗?
假设物重为G(你之前已经测出来了),现在你切换到了浮力测量模式,传 ...

就是利用你下面这张图的原理测量浮力的大小,载荷值清零就是你所说的那个意思,当切换到了浮力测量模式,传感器采集的力是F,于是浮力为G-F。当没有浸入液体时,F=G,此时数码管显示0000,非常感谢你的赐教!不知道怎样处理传感器两次采集的力的数据,使G-F=0? 还望多多指点!谢谢!

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:1 发表于 2017-4-14 02:47 | 只看该作者
问题解决得怎么样了?
回复

使用道具 举报

6#
ID:189542 发表于 2017-4-14 14:51 | 只看该作者
查看接收到的数据
回复

使用道具 举报

7#
ID:189542 发表于 2017-4-14 14:55 | 只看该作者
在多机通信中,主机必须要能对各个从机进行识别,在51系列单片机中可以通过SCON寄存器的SM2位来实现。当串口以方式2或方式3发送数据时,每一帧信息都是11位,第9位是数据可编程位,通过给TB8置1或置0来区别地址帧和数据帧,当该位为1时,发送地址帧;该位为0时,发送数据帧。 在多机通信过程中,主机先发送某一从机的地址,等待从机的应答,所有的从机接收到地址帧后与本机地址进行比较,若相同,则将SM2置0准备接收数据;若不同,则丢弃当前数据,SM2位不变。
回复

使用道具 举报

8#
ID:45225 发表于 2017-4-15 11:15 | 只看该作者
谢谢大家的指点!问题已得到解决。当按键清零时 compensate2=ReadCount(); 在浮力测量函数中这样 写就可以了:
          XS3=ReadCount();         
      if(XS3>compensate2)
             fuli=0;               
      else
             fuli=compensate2-XS3;       
回复

使用道具 举报

9#
ID:45225 发表于 2017-4-15 11:19 | 只看该作者
谢谢大家的指点!问题已得到解决。当按键清零时: compensate2=ReadCount();在浮力测量子程序中,这样写就可以了:unsigned long  XS3;
          XS3=ReadCount();         
         if(XS3>compensate2)
             fuli=0;               
         else  
             fuli=compensate2-XS3;
回复

使用道具 举报

10#
ID:151348 发表于 2017-4-15 15:15 | 只看该作者
fbzsn 发表于 2017-4-15 11:19
谢谢大家的指点!问题已得到解决。当按键清零时: compensate2=ReadCount();在浮力测量子程序中,这样写就 ...

good!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表