找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)液位檢測C語言,測量時 數(shù)據(jù)偏大 求大神幫忙矯正程序

查看數(shù): 4236 | 評論數(shù): 6 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2017-5-28 15:57

正文摘要:

我是用的at89s52單片機(jī),一個水位傳感器,范圍0~5mm和ADC0832數(shù)模轉(zhuǎn)換芯片,進(jìn)行液位測量時,測出的數(shù)據(jù)偏大而且大于3 的時候,結(jié)果保持在3.0.鍵盤是對預(yù)設(shè)值加減,有超限報警。實物圖如下: C語言 ...

回復(fù)

ID:257481 發(fā)表于 2017-12-4 23:33
樓主來一份
ID:205345 發(fā)表于 2017-5-29 18:26
ahshmj 發(fā)表于 2017-5-29 15:54
“      剛測量ad轉(zhuǎn)換得到的數(shù)據(jù)就有100了,最多也就180. 0~255的測量范圍達(dá)不到  ”是什么意思?
程序是 ...

我用的是ADC0832芯片,它是8位的,經(jīng)過轉(zhuǎn)換就是0~255.我又改了一下程序,雖然還是有誤差,但是整數(shù)位測量的比較準(zhǔn)確了
void convdata(uchar i)
{
/*  dis[0]=i/100; //gewei
   dis[1]=((i)%100)/10;  //小數(shù)點后1位
   dis[2]=((i)%100)%10; //小數(shù)點后2位*/      //AD轉(zhuǎn)換值檢測,測出整數(shù)位對應(yīng)的8位數(shù)據(jù)
  
if((110<dat)&&(dat<=140))
  { dis[0]=(i-110)/30; //gewei
   dis[1]=((i-110)%30)*10/30;  //小數(shù)點后1位
   dis[2]=(((i-110)%50)*10%30)*10%30; //小數(shù)點后2位   //0~1mm
  }
  if((140<dat)&&(dat<=160))
  { dis[0]=((i-140)/20)+1; //gewei
   dis[1]=((i-140)%20)*10/20;  //小數(shù)點后1位
   dis[2]=(((i-140)%20)*10%18)*10%20; //小數(shù)點后2位   //1~2mm
  }
  if((160<dat)&&(dat<=170) )
  { dis[0]=((i-160)/10)+2; //gewei
   dis[1]=((i-160)%10)*10/10;  //小數(shù)點后1位
   dis[2]=(((i-160)%10)*10%6)*10%10; //小數(shù)點后2位    //2~3mm
}
    if((170<dat)&&(dat<=175))
  { dis[0]=((i-170)/5)+3; //gewei
   dis[1]=((i-170)%5)*10/5;  //小數(shù)點后1位
   dis[2]=(((i-170)%5)*10%5)*10%5; //小數(shù)點后2位       //3~4mm
}
    if((175<dat)&&(dat<=180))
  { dis[0]=((i-175)/5)+4; //gewei
   dis[1]=((i-175)%5)*10/5;  //小數(shù)點后1位
   dis[2]=(((i-175)%5)*10%5)*10%5; //小數(shù)點后2位        4~5mm
   }
}
ID:7485 發(fā)表于 2017-5-29 15:54
“      剛測量ad轉(zhuǎn)換得到的數(shù)據(jù)就有100了,最多也就180. 0~255的測量范圍達(dá)不到  ”是什么意思?
程序是自己寫的嗎?
許多這類的測量,傳感器給出的信號一般不可能剛剛和和理想的結(jié)果相對應(yīng),往往是一個線性數(shù)值(有時僅僅是一個相關(guān)的曲線),需要通過程序用一個系數(shù)進(jìn)行矯正。有時還要進(jìn)行插值計算。
ID:205345 發(fā)表于 2017-5-29 12:43
yzwzfyz 發(fā)表于 2017-5-28 21:51
1、液位檢測的原理是什么?
2、液位是如何圍成電壓信號的?
能說清楚以上兩點,估計問題就解決得差不多了 ...

是一種簡單易用的水位傳感器,該傳感器的工作原理是通過電路板上一系列裸露的印刷平行導(dǎo)線測量水量的大小。水量越多,就會有更多的導(dǎo)線被聯(lián)通,隨著導(dǎo)電的接觸面積增大,輸出的電壓就會逐步上升。
但是實際檢測的時候,剛測量ad轉(zhuǎn)換得到的數(shù)據(jù)就有100了,最多也就180. 0~255的測量范圍達(dá)不到。
所以我先測出整數(shù)位對應(yīng)的數(shù)字量,然后分為五段了。雖然還是有偏差,但是整數(shù)位測出來比較準(zhǔn)確了
ID:123289 發(fā)表于 2017-5-28 21:51
1、液位檢測的原理是什么?
2、液位是如何圍成電壓信號的?
能說清楚以上兩點,估計問題就解決得差不多了。
ID:205345 發(fā)表于 2017-5-28 16:05
急求急求!

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表