找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2967|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

arduino+MPX4115在Proteus串口輸出數(shù)值

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
arduino 通過獲取 MPX4115 的數(shù)值 并在 串口中顯示, 我圖片截取的是 arduino 2560 經(jīng)過實(shí)測(cè) uno r3 同樣滿足


附 代碼,
  1. #define kpa2atm 0.00986923267

  2. // 在仿真中,由于公式計(jì)算出來,再由串口打印出來的數(shù)值,
  3. // 與仿真圖中的元件的的數(shù)值相差太大,故再減去一點(diǎn)偏差
  4. // 經(jīng)過多次計(jì)算,減去 1.4 是最為合適的,
  5. // 當(dāng)然也可以根據(jù)情況,適時(shí)的調(diào)整這個(gè)偏差值
  6. #define ERROR_CORRCCTION 1.4   
  7. // pin defs
  8. int pressurePin = 0;

  9. // variables
  10. int val;
  11. float pkPa; // pressure in kPa
  12. float pAtm; // pressure in Atm

  13. unsigned long time;


  14. void setup()
  15. {
  16.   Serial.begin(9600);

  17. }

  18. void loop()
  19. {
  20.   
  21.   /* get the pressure */
  22.   val = analogRead(pressurePin);
  23.   pkPa = (((float)val/(float)1023+0.095)/0.009)-ERROR_CORRCCTION;
  24.   pAtm = kpa2atm*pkPa;
  25.   

  26.   /* send pressure to serial port */
  27.   Serial.print(pkPa);
  28.   Serial.print("kPa ");
  29.   Serial.print(pAtm);
  30.   Serial.println("Atm ");
  31.   delay(1000);
  32. }
復(fù)制代碼

其實(shí)程序中還有點(diǎn)問題,就是精度不夠,請(qǐng)問誰(shuí)能解決一下
附 完整功能包。 壓力傳感器.zip (50.61 KB, 下載次數(shù): 10)

若是你的Proteus 中沒有 arduino 請(qǐng)看百度的教程,如何安裝插件

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:13450 發(fā)表于 2022-5-8 00:59 | 只看該作者
  pkPa = (((float)val/(float)1023+0.093)/0.009)-ERROR_CORRCCTION;

第30行里面的系數(shù)。0.095改成0.093.  精度會(huì)稍微高一點(diǎn)點(diǎn)。特別是壓力大的時(shí)候,很準(zhǔn)確。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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