找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 1588|回復: 4
打印 上一主題 下一主題
收起左側

關于單片機樓頂水池水位測量的計算問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:886263 發(fā)表于 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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:276663 發(fā)表于 2022-4-16 17:07 | 只看該作者
distance是int型,你三位顯示,95-xxx有可能是負的,因為int沒有負數,所以值超大了吧
回復

使用道具 舉報

板凳
ID:883242 發(fā)表于 2022-4-16 19:46 | 只看該作者
超聲波用于非接觸測量,你家水箱用壓力傳感器就行了,既便宜又準確。
回復

使用道具 舉報

地板
ID:886263 發(fā)表于 2022-4-16 22:25 | 只看該作者
Hephaestus 發(fā)表于 2022-4-16 19:46
超聲波用于非接觸測量,你家水箱用壓力傳感器就行了,既便宜又準確。

是水池,不是水箱呢。95是95cm,水池水面的最大水位。想著減去測量出來的高度差,來獲得水位高度。
回復

使用道具 舉報

5#
ID:886263 發(fā)表于 2022-4-16 22:26 | 只看該作者
IdeaMing 發(fā)表于 2022-4-16 17:07
distance是int型,你三位顯示,95-xxx有可能是負的,因為int沒有負數,所以值超大了吧

那我改變類型嘗試一下。
95是95cm,水池水面的最大水位。想著減去測量出來的高度差,來獲得水位高度。這個減出來應該是沒有負數的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表