我的Grove多通道气体传感器有问题。当我尝试从传感器获取气体浓度时,它在串行监视器中返回"invalid ppm“(<0)。当我使用我的Arduino Uno时,它工作正常。它只给我带来了MKR的问题。我不明白为什么。我不是专家,但我没想到会这么难。代码如下:
#include <Wire.h>
#include "MutichannelGasSensor.h"
void setup()
{
Serial.begin(115200); // start for output
while (!SerialUSB) {
}
Serial.println("power on!");
gas.begin(0x04);//the default I2C address of the slave is 0x04
gas.powerOn();
Serial.print("Firmware Version = ");
Serial.println(gas.getVersion());
}
void loop()
{
float c;
c = -gas.measure_NH3();
Serial.print("The concentration of NH3 is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
c = -gas.measure_CO();
Serial.print("The concentration of CO is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
c = -gas.measure_NO2();
Serial.print("The concentration of NO2 is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
c = -gas.measure_C3H8();
Serial.print("The concentration of C3H8 is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
c = -gas.measure_C4H10();
Serial.print("The concentration of C4H10 is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
c = -gas.measure_CH4();
Serial.print("The concentration of CH4 is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
c = -gas.measure_H2();
Serial.print("The concentration of H2 is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
c = -gas.measure_C2H5OH();
Serial.print("The concentration of C2H5OH is ");
if (c >= 0) Serial.print(c);
else Serial.print("invalid");
Serial.println(" ppm");
delay(1000);
Serial.println("...");
}发布于 2019-08-30 13:39:29
尝试替换
c = -gas.measure..使用
c = gas.measure..https://stackoverflow.com/questions/57715044
复制相似问题