Анализатор воздуха

Всем здравствуйте! Делаю проект по анализатору воздуха Анализатор воздуха на платформе Arduino | Статья в журнале «Юный ученый»

Вроде собрал, но работает как-то странно. Сначала загорается зелёный светодиод, потом красный и пищит зуммер (я так понимаю, калибровка) на протяжении минуты-двух, потом снова зелёный. Проблема в том, что со временем зелёный светодиод начинает мерцать (хотя в коде такого не прописано), потом начинают немного гаснуть сами датчики, а потом и вовсе никакой диод не горит. Это может быть какая-то проблема с питанием от ардуинки или это уже проблема с платой расширения? До этого пару раз ардуинка пищала странно и гасла, через время оживала, шьётся нормально. Может, кто-то с подобной проблемой сталкивался или собирал этот проект ?

P.S.Библиотеки другие для DHT11, код немного менялся, поэтому выкладываю на всякий случай:

#include <BaseMQ.h>

#include <MQ135.h>

#include <MQ2.h>

#include <MQ3.h>

#include <MQ4.h>

#include <MQ5.h>

#include <MQ6.h>

#include <MQ7.h>

#include <MQ8.h>

#include <MQ9.h>

#include <TroykaMQ.h>

#include <DHT.h> // библиотека Adafruit (классическая)

#include <SoftwareSerial.h>

#define LED_1 9

#define LED_2 11

#define PIN_MQ2 A1

#define PIN_MQ7 A4

#define BUZZER_PIN 10

#define DHTPIN 8

#define DHTTYPE DHT11

DHT sensor(DHTPIN, DHTTYPE);

MQ2 mq2(PIN_MQ2);

MQ7 mq7(PIN_MQ7);

void setup() {

pinMode(LED_1, OUTPUT);

pinMode(LED_2, OUTPUT);

sensor.begin();

mq2.calibrate();

mq7.calibrate();

digitalWrite(LED_1, HIGH);

Serial.begin(9600);

Serial.print(“\nTemp(C)”);

Serial.print(“\t\t”);

Serial.print(“Humidity”);

Serial.print(“\t”);

Serial.print(“LPG”);

Serial.print(“\t\t”);

Serial.print(“Methane”);

Serial.print(“\t\t”);

Serial.print(“Smoke”);

Serial.print(“\t\t”);

Serial.print(“Hydrogen”);

Serial.print(“\t”);

Serial.println(“Carbon Monoxide”);

Serial.println(“------------------------------------------------------------------------”);

}

void loop() {

int val, frequency;

Serial.println(“\n”);

float t = sensor.readTemperature();

float h = sensor.readHumidity();

if (isnan(t) || isnan(h)) {

Serial.print("Er\\t\\tEr\\t\\t");

} else {

Serial.print((int)t);           

Serial.print("\\t\\t");

Serial.print((int)h);

Serial.print("\\t\\t");

}

delay(5000);

Serial.print(mq2.readLPG());

Serial.print(“\t\t”);

Serial.print(mq2.readMethane());

Serial.print(“\t\t”);

delay(5000);

Serial.print(mq2.readSmoke());

Serial.print(“\t\t”);

Serial.print(mq2.readHydrogen());

Serial.print(“\t\t”);

delay(5000);

Serial.print(mq7.readCarbonMonoxide());

val = 500;

frequency = map(val, 0, 1023, 3500, 4500);

int temp = (int)t;

int hum = (int)h;

if ((temp > 35) || (temp < 15) ||

  (hum > 80)  || (hum < 20)  ||

  (mq7.readCarbonMonoxide() > 90) ||

  (mq2.readLPG() > 100) ||

  (mq2.readMethane() > 100) ||

  (mq2.readHydrogen() > 400)) {



digitalWrite(LED_1, LOW);

digitalWrite(LED_2, HIGH);

tone(BUZZER_PIN, frequency, 2000);

delay(500);

tone(BUZZER_PIN, frequency, 2000);

delay(500);

tone(BUZZER_PIN, frequency, 2000);

} else {

digitalWrite(LED_1, HIGH);

digitalWrite(LED_2, LOW);

}

delay(5000);

}

Для начала вставьте код правильно