diff --git a/src/PMS/PMS.cpp b/src/PMS/PMS.cpp index 4bf4da6..6bacd7d 100644 --- a/src/PMS/PMS.cpp +++ b/src/PMS/PMS.cpp @@ -297,20 +297,18 @@ uint8_t PMSBase::getErrorCode(void) { return pms_errorCode; } * @return int */ int PMSBase::pm25ToAQI(int pm02) { - if (pm02 <= 12.0) - return ((50 - 0) / (12.0 - .0) * (pm02 - .0) + 0); + if (pm02 <= 9.0) + return ((50 - 0) / (9.0 - .0) * (pm02 - .0) + 0); else if (pm02 <= 35.4) - return ((100 - 50) / (35.4 - 12.0) * (pm02 - 12.0) + 50); + return ((100 - 51) / (35.4 - 9.1) * (pm02 - 9.0) + 51); else if (pm02 <= 55.4) - return ((150 - 100) / (55.4 - 35.4) * (pm02 - 35.4) + 100); - else if (pm02 <= 150.4) - return ((200 - 150) / (150.4 - 55.4) * (pm02 - 55.4) + 150); - else if (pm02 <= 250.4) - return ((300 - 200) / (250.4 - 150.4) * (pm02 - 150.4) + 200); - else if (pm02 <= 350.4) - return ((400 - 300) / (350.4 - 250.4) * (pm02 - 250.4) + 300); - else if (pm02 <= 500.4) - return ((500 - 400) / (500.4 - 350.4) * (pm02 - 350.4) + 400); + return ((150 - 101) / (55.4 - 35.5) * (pm02 - 35.5) + 101); + else if (pm02 <= 125.4) + return ((200 - 151) / (125.4 - 55.5) * (pm02 - 55.5) + 151); + else if (pm02 <= 225.4) + return ((300 - 201) / (225.4 - 125.5) * (pm02 - 125.5) + 201); + else if (pm02 <= 325.4) + return ((500 - 301) / (325.4 - 225.5) * (pm02 - 225.5) + 301); else return 500; }