diff --git a/src/MQUnifiedsensor.cpp b/src/MQUnifiedsensor.cpp index 99becba..da12b47 100644 --- a/src/MQUnifiedsensor.cpp +++ b/src/MQUnifiedsensor.cpp @@ -7,65 +7,69 @@ //Set _MQ variable with MQ sensor selected if(_type == 2) { - memcpy(_MQ, MQ2, sizeof(MQ2)); + memcpy(_MQ, _MQ2, sizeof(_MQ2)); //_MQ = MQ2; } else if(_type == 3) { - memcpy(_MQ, MQ3, sizeof(MQ3)); + memcpy(_MQ, _MQ3, sizeof(_MQ3)); //_MQ = MQ3; } else if(_type == 4) { - memcpy(_MQ, MQ4, sizeof(MQ4)); + memcpy(_MQ, _MQ4, sizeof(_MQ4)); //_MQ = MQ4; } else if(_type == 5) { - memcpy(_MQ, MQ5, sizeof(MQ5)); + memcpy(_MQ, _MQ5, sizeof(_MQ5)); //_MQ = MQ5; } else if(_type == 6) { - memcpy(_MQ, MQ6, sizeof(MQ6)); + memcpy(_MQ, _MQ6, sizeof(_MQ6)); //_MQ = MQ6; } else if(_type == 7) { - memcpy(_MQ, MQ7, sizeof(MQ7)); + memcpy(_MQ, _MQ7, sizeof(_MQ7)); //_MQ = MQ7; } else if(_type == 8) { - memcpy(_MQ, MQ8, sizeof(MQ8)); + memcpy(_MQ, _MQ8, sizeof(_MQ8)); //_MQ = MQ8; } else if(_type == 9) { - memcpy(_MQ, MQ9, sizeof(MQ9)); + memcpy(_MQ, _MQ9, sizeof(_MQ9)); //_MQ = MQ9; } else if(_type == 131) { - memcpy(_MQ, MQ131, sizeof(MQ131)); + memcpy(_MQ, _MQ131, sizeof(_MQ131)); //_MQ = MQ131; } else if(_type == 135) { - memcpy(_MQ, MQ135, sizeof(MQ135)); + memcpy(_MQ, _MQ135, sizeof(_MQ135)); //_MQ = MQ135; } else if(_type == 303) { - memcpy(_MQ, MQ303A, sizeof(MQ303A)); + memcpy(_MQ, _MQ303A, sizeof(_MQ303A)); //_MQ = MQ303A; } else if(_type == 309) { - memcpy(_MQ, MQ309A, sizeof(MQ309A)); + memcpy(_MQ, _MQ309A, sizeof(_MQ309A)); //_MQ = MQ309; } } +void MQUnifiedsensor::setVoltResolution(float voltaje) +{ + VOLT_RESOLUTION = voltaje; +} void MQUnifiedsensor::inicializar() { pinMode(_pin, INPUT); diff --git a/src/MQUnifiedsensor.h b/src/MQUnifiedsensor.h index 9835ce2..ce005c4 100644 --- a/src/MQUnifiedsensor.h +++ b/src/MQUnifiedsensor.h @@ -25,12 +25,28 @@ #define retries 50 #define retry_interval 20 +//Values consolidated +/* Gas, Value of m (Slope) and b (Cut on x axis) points */ +const char* const _MQ2[18] = {"H2","-2.2459","2.9845","LPG","-2.2879","2.7901","CO","-2.6208","3.6075","Alcohol","-3.1157","4.5134","Propane","-2.7028","3.5595","Benzene","-2.2879","2.7901"}; +const char* const _MQ3[18] = {"LPG","-3.1851","4.7048","CH4","-17.531","28.785","CO","-4.339","6.4432","Alcohol","-1.435","0.4103","Benzene","-2.7009","0.632","Hexane","-2.7268","3.6299"}; +const char* const _MQ4[15] = {"LPG","-2.5818","3.6303","CH4","0.9873","2.6386","CO","-5.5945","5.6693","Alcohol","-11.89","9.0375","smoke","-11.189","9.0375"}; +const char* const _MQ5[15] = {"H2","-4.368","2.9667","LPG","-2.5723","1.8943","CH4","-2.4438","2.3044","CO","-4.8188","5.2023","Alcohol","-4.419","4.8044"}; +const char* const _MQ6[15] = {"H2","-3.6775","5.0286","LPG","-1.6567","2.8775","CH4","-1","3.301","CO","-12.791","14.523","Alcohol","-5.8057","7.5292"}; +const char* const _MQ7[15] = {"H2","-1.329","1.8864","LPG","-7.8626","9.1056","CH4","-5.4878","8.8387","CO","-1.4065","2.0162","Alcohol","-6.3219","9.924"}; +const char* const _MQ8[15] = {"H2","-0.7152","2.9891","LPG","-3.419","7.3513","CH4","-7.5609","15.243","CO","-7.0753","15.396","Alcohol","-1.7459","4.7575"}; +const char* const _MQ9[9] = {"LPG","-2.2535","2.9855","CH4","-1.6012","3.1476","CO","-1.749","2.827"}; +const char* const _MQ131[9] = {"Nox","-2.7245","3.3004","CL2","-1.0333","1.7117","O3","-1.2037","1.6455"}; +const char* const _MQ135[18] = {"CO","-2.7268","2.301","Alcohol","-2.8608","1.8627","CO2","-3.2819","1.9903","Tolueno","-5.7015","1.1612","NH4","-2.2119","2.0473","Acetona","-5.9682","1.0175"}; +const char* const _MQ303A[9] = {"Iso-butano","-2.3543","1.144","Hydrogeno","-2.4338","0.7558","Ethanol","-2.5597","0.4436"}; +const char* const _MQ309A[12] = {"H2","-2.1311","3.0886","CH4","-1.6554","2.985","CO","-4.7623","6.7413","Alcohol","-3.7686","5.6744"}; + class MQUnifiedsensor { public: MQUnifiedsensor(int pin, int type); void inicializar(); void setR0(double R0); + void setVoltResolution(float voltaje); void setSensorCharacteristics(String nameLectureReqeuired, bool print); void setDefaultGas(); @@ -44,27 +60,12 @@ class MQUnifiedsensor String getnameLecture(); - //Values consolidated - /* Gas, Value of m (Slope) and b (Cut on x axis) points */ - const char* const MQ2[18] = {"H2","-2.2459","2.9845","LPG","-2.2879","2.7901","CO","-2.6208","3.6075","Alcohol","-3.1157","4.5134","Propane","-2.7028","3.5595","Benzene","-2.2879","2.7901"}; - const char* const MQ3[18] = {"LPG","-3.1851","4.7048","CH4","-17.531","28.785","CO","-4.339","6.4432","Alcohol","-1.435","0.4103","Benzene","-2.7009","0.632","Hexane","-2.7268","3.6299"}; - const char* const MQ4[15] = {"LPG","-2.5818","3.6303","CH4","0.9873","2.6386","CO","-5.5945","5.6693","Alcohol","-11.89","9.0375","smoke","-11.189","9.0375"}; - const char* const MQ5[15] = {"H2","-4.368","2.9667","LPG","-2.5723","1.8943","CH4","-2.4438","2.3044","CO","-4.8188","5.2023","Alcohol","-4.419","4.8044"}; - const char* const MQ6[15] = {"H2","-3.6775","5.0286","LPG","-1.6567","2.8775","CH4","-1","3.301","CO","-12.791","14.523","Alcohol","-5.8057","7.5292"}; - const char* const MQ7[15] = {"H2","-1.329","1.8864","LPG","-7.8626","9.1056","CH4","-5.4878","8.8387","CO","-1.4065","2.0162","Alcohol","-6.3219","9.924"}; - const char* const MQ8[15] = {"H2","-0.7152","2.9891","LPG","-3.419","7.3513","CH4","-7.5609","15.243","CO","-7.0753","15.396","Alcohol","-1.7459","4.7575"}; - const char* const MQ9[9] = {"LPG","-2.2535","2.9855","CH4","-1.6012","3.1476","CO","-1.749","2.827"}; - const char* const MQ131[9] = {"Nox","-2.7245","3.3004","CL2","-1.0333","1.7117","O3","-1.2037","1.6455"}; - const char* const MQ135[18] = {"CO","-2.7268","2.301","Alcohol","-2.8608","1.8627","CO2","-3.2819","1.9903","Tolueno","-5.7015","1.1612","NH4","-2.2119","2.0473","Acetona","-5.9682","1.0175"}; - const char* const MQ303A[9] = {"Iso-butano","-2.3543","1.144","Hydrogeno","-2.4338","0.7558","Ethanol","-2.5597","0.4436"}; - const char* const MQ309A[12] = {"H2","-2.1311","3.0886","CH4","-1.6554","2.985","CO","-4.7623","6.7413","Alcohol","-3.7686","5.6744"}; - + private: int _pin, _type, _PPM, _lecturePosInArray; double _R0, _m, _b; - String _MQ[19], _nameLectureRequeired; - const float VOLT_RESOLUTION = 5.0; // if 3.3v use 3.3 - + String _MQ[19], _nameLectureRequeired; + int VOLT_RESOLUTION = 5.0; // if 3.3v use 3.3 }; #endif //MQUnifiedsensor_H \ No newline at end of file