標(biāo)題: arduino+MPX4115在Proteus串口輸出數(shù)值 [打印本頁]

作者: 一入極客深似海    時(shí)間: 2021-5-9 13:04
標(biāo)題: arduino+MPX4115在Proteus串口輸出數(shù)值
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)問誰能解決一下
附 完整功能包。 壓力傳感器.zip (50.61 KB, 下載次數(shù): 10)

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


作者: 鐵牛單片機(jī)    時(shí)間: 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)確。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1