标题: arduino+MPX4115在Proteus串口输出数值 [打印本页]

作者: 一入极客深似海    时间: 2021-5-9 13:04
标题: arduino+MPX4115在Proteus串口输出数值
arduino 通过获取 MPX4115 的数值 并在 串口中显示, 我图片截取的是 arduino 2560 经过实测 uno r3 同样满足


附 代码,
  1. #define kpa2atm 0.00986923267

  2. // 在仿真中,由于公式计算出来,再由串口打印出来的数值,
  3. // 与仿真图中的元件的的数值相差太大,故再减去一点偏差
  4. // 经过多次计算,减去 1.4 是最为合适的,
  5. // 当然也可以根据情况,适时的调整这个偏差值
  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. }
复制代码

其实程序中还有点问题,就是精度不够,请问谁能解决一下
附 完整功能包。 压力传感器.zip (50.61 KB, 下载次数: 10)

若是你的Proteus 中没有 arduino 请看百度的教程,如何安装插件


作者: 铁牛单片机    时间: 2022-5-8 00:59
  pkPa = (((float)val/(float)1023+0.093)/0.009)-ERROR_CORRCCTION;

第30行里面的系数。0.095改成0.093.  精度会稍微高一点点。特别是压力大的时候,很准确。




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