Здравствуйте! Проблема с датчиком CCS811. Около суток возвращал корректные значения, потом резко начал возвращать ошибку. Подключен совместно с DHT 11 к Arduino UNO. Пробовала подключать и по I2C, и по аналоговым. Результат один и тот же. Меняла библиотеку - тоже безрезультатно (сначала была adafruit, потом sparkfun).
#include <DHT.h>
#include <Wire.h>
#include <SparkFunCCS811.h>
#define DHTPIN 4 // номер пина, к которому подсоединен датчик
// Инициируем датчик
DHT dht(DHTPIN, DHT11);
//Анализатор воздуха CCS811
//#define CCS811_ADDR 0x5B //Default I2C Address
#define CCS811_ADDR 0x5A //Alternate I2C Address
// Инициируем датчик
CCS811 mySensor(CCS811_ADDR);
void setup() {
Serial.begin(9600);
dht.begin();
Wire.begin(); //Inialize I2C Hardware
if (mySensor.begin() == false)
{
Serial.print("");
}
}
void loop() {
//получаем показания;
getTemp();
getHumidity();
if (mySensor.dataAvailable())
{
//If so, have the sensor read and calculate the results.
//Get them later
//mySensor.readAlgorithmResults();
getCO();
} else {
Serial.print("c00 o00");
Serial.println();
}
delay (1000);
}
int getHumidity(){
//Считываем влажность
int h = dht.readHumidity();
// Проверка удачно прошло ли считывание.
if (isnan(h)) {
Serial.print("h00 ");
return 0;
}
Serial.print("h");
Serial.print(h);
Serial.print(" ");
return h;
}
int getTemp(){
// Считываем температуру
int t = dht.readTemperature();
// Проверка удачно прошло ли считывание.
if (isnan(t)) {
Serial.println("t00 ");
return 0;
}
Serial.print("t");
Serial.print(t);
Serial.print(" ");
return t;
}
void getCO(){
//Check to see if data is ready with .dataAvailable()
//if (mySensor.dataAvailable())
//{
//If so, have the sensor read and calculate the results.
//Get them later
mySensor.readAlgorithmResults();
Serial.print("c");
//Returns calculated CO2 reading
Serial.print(mySensor.getCO2());
Serial.print(" ");
Serial.print("o");
//Returns calculated TVOC reading
Serial.print(mySensor.getTVOC());
Serial.println();
}