找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于单片机楼顶水池水位测量的计算问题

[复制链接]
跳转到指定楼层
楼主
ID:886263 发表于 2022-4-16 15:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目前本人在自己探究超声波+8266传输数据的问题。用于自家楼顶水池水位的测量。现在又有问题了。
Num_Distance为超声波测定的距离。我想用95减去这个变量。可写成了Num_Distance=95-Num_Distance,就不行了。
单独把Num_Distance打印出来是一串数字。
搞不懂,所以再次来请求大神们指点指点。

int  Num_Distance  = 0;                                                        
void chaosheng()
{

                TRIG_IO = 1;
                Delay10us();                                                                                                //@24.000MHz,10微秒
                TRIG_IO = 0;
                Timer_Count_0 = 0;
                while(ECHO_IO == 0 && Timer_Count_0 < 50);                                        //500微秒超时
                Timer_Count_0 = 0;
                while(ECHO_IO == 1 && Timer_Count_0 < 2000);                                //20毫秒超时
                Num_Distance = ((float)Timer_Count_0 / 100 * 340 / 2);        //厘米,,计算距离:距离(毫米)=时间(ms)*速度(340mm/ms)/2(int)//水面高度
                xm1=Num_Distance/100%10;//显示十位
                xm2=Num_Distance%100/10;//显示个位
                xm3=Num_Distance%10; //小数


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:276663 发表于 2022-4-16 17:07 | 只看该作者
distance是int型,你三位显示,95-xxx有可能是负的,因为int没有负数,所以值超大了吧
回复

使用道具 举报

板凳
ID:883242 发表于 2022-4-16 19:46 | 只看该作者
超声波用于非接触测量,你家水箱用压力传感器就行了,既便宜又准确。
回复

使用道具 举报

地板
ID:886263 发表于 2022-4-16 22:25 | 只看该作者
Hephaestus 发表于 2022-4-16 19:46
超声波用于非接触测量,你家水箱用压力传感器就行了,既便宜又准确。

是水池,不是水箱呢。95是95cm,水池水面的最大水位。想着减去测量出来的高度差,来获得水位高度。
回复

使用道具 举报

5#
ID:886263 发表于 2022-4-16 22:26 | 只看该作者
IdeaMing 发表于 2022-4-16 17:07
distance是int型,你三位显示,95-xxx有可能是负的,因为int没有负数,所以值超大了吧

那我改变类型尝试一下。
95是95cm,水池水面的最大水位。想着减去测量出来的高度差,来获得水位高度。这个减出来应该是没有负数的。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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