标题: 关于单片机楼顶水池水位测量的计算问题 [打印本页]

作者: 风晓得OME    时间: 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; //小数



作者: IdeaMing    时间: 2022-4-16 17:07
distance是int型,你三位显示,95-xxx有可能是负的,因为int没有负数,所以值超大了吧
作者: Hephaestus    时间: 2022-4-16 19:46
超声波用于非接触测量,你家水箱用压力传感器就行了,既便宜又准确。
作者: 风晓得OME    时间: 2022-4-16 22:25
Hephaestus 发表于 2022-4-16 19:46
超声波用于非接触测量,你家水箱用压力传感器就行了,既便宜又准确。

是水池,不是水箱呢。95是95cm,水池水面的最大水位。想着减去测量出来的高度差,来获得水位高度。
作者: 风晓得OME    时间: 2022-4-16 22:26
IdeaMing 发表于 2022-4-16 17:07
distance是int型,你三位显示,95-xxx有可能是负的,因为int没有负数,所以值超大了吧

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




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