diff --git a/examples/AlgorithmTester/AlgorithmTester.ino b/examples/AlgorithmTester/AlgorithmTester.ino index 115fec3..69782b2 100644 --- a/examples/AlgorithmTester/AlgorithmTester.ino +++ b/examples/AlgorithmTester/AlgorithmTester.ino @@ -36,6 +36,8 @@ MQUnifiedsensor MQ7(placa, Voltage_Resolution, ADC_Bit_Resolution, pin7, type); MQUnifiedsensor MQ8(placa, Voltage_Resolution, ADC_Bit_Resolution, pin8, type); MQUnifiedsensor MQ9(placa, Voltage_Resolution, ADC_Bit_Resolution, pin9, type); +int ratio[10] = {}; +int expectedValue[10] = {}; void setup() { @@ -87,6 +89,24 @@ void setup() void loop() { + // Testing MQ2 LPG + ratio = {}; + expectedValue = {}; + + // Testing MQ3 Benzene + + // Testing MQ4 CH4 + + // Testing MQ5 H2 + + // Testing MQ6 CH4 + + // Testing MQ7 CO + + // Testing MQ8 H2 + + // Testing MQ9 LPG + } diff --git a/src/MQUnifiedsensor.cpp b/src/MQUnifiedsensor.cpp index 4be7c20..fef9484 100644 --- a/src/MQUnifiedsensor.cpp +++ b/src/MQUnifiedsensor.cpp @@ -86,6 +86,12 @@ void MQUnifiedsensor::update() { _sensor_volt = this->getVoltage(); } +float MQUnifiedsensor::calculatePPM(double ratio) +{ + if(_regressionMethod == "Exponential") _PPM= _a*pow(ratio, _b); + if(_regressionMethod == "Linear") _PPM= _a*ratio + _b; + return _PPM; +} float MQUnifiedsensor::readSensor() { //More explained in: https://jayconsystems.com/blog/understanding-a-gas-sensor diff --git a/src/MQUnifiedsensor.h b/src/MQUnifiedsensor.h index 95c1bed..5030c72 100644 --- a/src/MQUnifiedsensor.h +++ b/src/MQUnifiedsensor.h @@ -29,6 +29,7 @@ class MQUnifiedsensor //user functions float calibrate(float ratioInCleanAir); float readSensor(); + float calculatePPM(double ratio = 0); //get function for info double getR0();