Датчик MH-Z19 - это датчик определяющий концентрации углекислого газа (CO2) в воздухе. Преимуществами данного датчика являются высокая чувствительность и точность измерений.
Диапазон измеряемых концентраций:
CO2: 0 – 5000 ppm.
Для нашего проекта нужно совсем немного деталей:
Чтение показаний датчика с выхода PWM и вывод значений в монитор порта. Формулу для перевода синала ШИМ в PPM единицы можно найти в тех.описании датчика: https://www.2150692.ru/images/mh-z19_co2_manual.pdf
#define pwmPin 5 #define LedPin 13 int prevVal = LOW; long th, tl, h, l, ppm; void setup() { Serial.begin(9600); pinMode(pwmPin, INPUT); pinMode(LedPin, OUTPUT); } void loop() { long tt = millis(); int myVal = digitalRead(pwmPin); //Если обнаружили изменение if (myVal == HIGH) { digitalWrite(LedPin, HIGH); if (myVal != prevVal) { h = tt; tl = h - l; prevVal = myVal; } } else { digitalWrite(LedPin, LOW); if (myVal != prevVal) { l = tt; th = l - h; prevVal = myVal; ppm = 5000 * (th - 2) / (th + tl - 4); Serial.println("PPM = " + String(ppm)); } } }