打印

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

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

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

int main(void)
{
int value;
    wiringPiSetup();
    pcf8591Setup(BASE,Address);

    while(1)
    {   
        value = analogRead(A2);
        printf("Analoge: %d mV\n",value*3300/255);
        delay(1000);
    }   
}

气泵开启前读取电压值(万用表读取1.16V):
Analoge: 1164 mV
Analoge: 1164 mV
Analoge: 1151 mV
Analoge: 1151 mV
Analoge: 1164 mV
Analoge: 1164 mV
Analoge: 1151 mV
Analoge: 1151 mV

气泵开启后读取电压值(万用表读取2.85V):
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 2950 mV
Analoge: 3300 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 77 mV
Analoge: 2627 mV
Analoge: 3222 mV
Analoge: 77 mV
Analoge: 77 mV
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 引脚也平稳就是软件错误.如果不平 ...

十分感谢,我明天试试

使用特权

评论回复
5
icecut| | 2017-2-11 23:51 | 只看该作者
把气泵充满后,关闭气泵,气罐里的气体过油水分离器,过调压阀,然后缓慢增加气量.看看会不会好.担心开动的气泵干扰

使用特权

评论回复
6
BrillZhang|  楼主 | 2017-2-12 00:19 | 只看该作者
这也是一个很重要的因素,我明天试一下,我刚刚仔细地看了一下PCF8591的datasheet,关于降噪有些说明:Decoupling capacitors (>10 μF) are recommended for power supply and reference voltage inputs. 我尝试着加了一个电容,采集的电压浮动范围小了很多。

使用特权

评论回复
7
chunyang| | 2017-2-12 18:32 | 只看该作者
万用表读出的是一定时间内的均值,ADC如果采样、转换的速度足够,那么将得到瞬时值,这可未必跟均值相同。用示波器可以看到瞬时值,跟ADC的输出比较一下,如果二者差不多,那么加合适的滤波算法即可与万用表读出值相当。如果跟示波器都差的很远,那说明ADC用的不对。如此,再进一步考察ADC的输入,以此即可判明是ADC前端电路有问题还是软件有问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝