PCF8591T采集气体流量传感器的输出电压遇到的问题

[复制链接]
1807|6
 楼主| BrillZhang 发表于 2017-2-11 21:35 | 显示全部楼层 |阅读模式
    最近在使用树莓派采集气体流量的大小,想一想原理很简单,利用ad转换模块采集气体流量传感器(AWM 3300V)的输出电压就ok了,但是当我使用PCF8591T采集时,采集到AWM 3300V的初始电压是准确的(与万用表测得的电压一致),但是当我打开气泵充气时,PCF8591采集到的电压上下浮动很大,而且不准确,按照AWM 3300V的设计原理,流量越大,输出电压越大,我使用万用表测得的电压是没问题的。所以,我推断是PCF8591采集电压有些问题,但是气泵没工作时采集的电压很准确,我最近几天都在研究这个问题,不知道哪些地方出了问题。希望大神帮忙提示一下。

树莓派利用wiringPi来读取电压的代码:
  1. #include <wiringPi.h>
  2. #include <pcf8591.h>
  3. #include <stdio.h>
  4. #define Address 0x48
  5. #define BASE 64
  6. #define A0 BASE+0
  7. #define A1 BASE+1
  8. #define A2 BASE+2
  9. #define A3 BASE+3

  10. int main(void)
  11. {
  12. int value;
  13.     wiringPiSetup();
  14.     pcf8591Setup(BASE,Address);

  15.     while(1)
  16.     {   
  17.         value = analogRead(A2);
  18.         printf("Analoge: %d mV\n",value*3300/255);
  19.         delay(1000);
  20.     }   
  21. }

气泵开启前读取电压值(万用表读取1.16V):
  1. Analoge: 1164 mV
  2. Analoge: 1164 mV
  3. Analoge: 1151 mV
  4. Analoge: 1151 mV
  5. Analoge: 1164 mV
  6. Analoge: 1164 mV
  7. Analoge: 1151 mV
  8. Analoge: 1151 mV

气泵开启后读取电压值(万用表读取2.85V):
  1. Analoge: 77 mV
  2. Analoge: 77 mV
  3. Analoge: 77 mV
  4. Analoge: 77 mV
  5. Analoge: 77 mV
  6. Analoge: 2950 mV
  7. Analoge: 3300 mV
  8. Analoge: 77 mV
  9. Analoge: 77 mV
  10. Analoge: 77 mV
  11. Analoge: 77 mV
  12. Analoge: 77 mV
  13. Analoge: 77 mV
  14. Analoge: 77 mV
  15. Analoge: 77 mV
  16. Analoge: 77 mV
  17. Analoge: 77 mV
  18. Analoge: 77 mV
  19. Analoge: 77 mV
  20. Analoge: 77 mV
  21. Analoge: 77 mV
  22. Analoge: 77 mV
  23. Analoge: 2627 mV
  24. Analoge: 3222 mV
  25. Analoge: 77 mV
  26. Analoge: 77 mV
  27. Analoge: 77 mV



 楼主| BrillZhang 发表于 2017-2-11 23:06 | 显示全部楼层
@icecut 刚刚看了你的帖子,很是崇拜,希望你能指点一下我
icecut 发表于 2017-2-11 23:23 | 显示全部楼层
别用万用表,用示波器读....如果示波器波形平稳.那就测量 ad 引脚.如果 ad 引脚也平稳就是软件错误.如果不平稳,就是硬件错误.
 楼主| BrillZhang 发表于 2017-2-11 23:31 | 显示全部楼层
icecut 发表于 2017-2-11 23:23
别用万用表,用示波器读....如果示波器波形平稳.那就测量 ad 引脚.如果 ad 引脚也平稳就是软件错误.如果不平 ...

十分感谢,我明天试试
icecut 发表于 2017-2-11 23:51 | 显示全部楼层
把气泵充满后,关闭气泵,气罐里的气体过油水分离器,过调压阀,然后缓慢增加气量.看看会不会好.担心开动的气泵干扰
 楼主| BrillZhang 发表于 2017-2-12 00:19 | 显示全部楼层
这也是一个很重要的因素,我明天试一下,我刚刚仔细地看了一下PCF8591的datasheet,关于降噪有些说明:Decoupling capacitors (>10 μF) are recommended for power supply and reference voltage inputs. 我尝试着加了一个电容,采集的电压浮动范围小了很多。
chunyang 发表于 2017-2-12 18:32 | 显示全部楼层
万用表读出的是一定时间内的均值,ADC如果采样、转换的速度足够,那么将得到瞬时值,这可未必跟均值相同。用示波器可以看到瞬时值,跟ADC的输出比较一下,如果二者差不多,那么加合适的滤波算法即可与万用表读出值相当。如果跟示波器都差的很远,那说明ADC用的不对。如此,再进一步考察ADC的输入,以此即可判明是ADC前端电路有问题还是软件有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部