fix library

This commit is contained in:
Igor 2018-10-30 12:46:20 +03:00
parent 849d4d6aa1
commit 2d33995615
23 changed files with 60 additions and 66 deletions

View File

@ -8,7 +8,7 @@
// создаём объект для работы с датчиком // создаём объект для работы с датчиком
// и передаём ему номер пина выходного сигнала и нагревателя // и передаём ему номер пина выходного сигнала и нагревателя
MQ135 mq135(PIN_MQ135, PIN_MQ135_HEATER); MQ135 mq135(PIN_MQ135);
void setup() void setup()
{ {

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -6,35 +6,36 @@
# Datatypes (KEYWORD1) # Datatypes (KEYWORD1)
####################################### #######################################
MQ2 KEYWORD1 MQ2 MQ2 KEYWORD1 MQ2
MQ3 KEYWORD1 MQ3 MQ3 KEYWORD1 MQ3
MQ4 KEYWORD1 MQ4 MQ4 KEYWORD1 MQ4
MQ5 KEYWORD1 MQ5 MQ5 KEYWORD1 MQ5
MQ6 KEYWORD1 MQ6 MQ6 KEYWORD1 MQ6
MQ7 KEYWORD1 MQ7 MQ7 KEYWORD1 MQ7
MQ8 KEYWORD1 MQ8 MQ8 KEYWORD1 MQ8
MQ9 KEYWORD1 MQ9 MQ9 KEYWORD1 MQ9
MQ135 KEYWORD1 MQ135 MQ135 KEYWORD1 MQ135
####################################### #######################################
# Methods and Functions (KEYWORD2) # Methods and Functions (KEYWORD2)
####################################### #######################################
calibrate KEYWORD2 calibrate KEYWORD2
heaterPwrHigh KEYWORD2 heaterPwrHigh KEYWORD2
heaterPwrLow KEYWORD2 heaterPwrLow KEYWORD2
heaterPwrOff KEYWORD2 heaterPwrOff KEYWORD2
cycleHeat KEYWORD2 cycleHeat KEYWORD2
atHeatCycleEnd KEYWORD2 atHeatCycleEnd KEYWORD2
heatingCompleted KEYWORD2 heatingCompleted KEYWORD2
coolanceCompleted KEYWORD2 coolanceCompleted KEYWORD2
readRatio KEYWORD2 readRatio KEYWORD2
isCalibrated KEYWORD2 isCalibrated KEYWORD2
getRo KEYWORD2 getRo KEYWORD2
readLPG KEYWORD2 readLPG KEYWORD2
readMethane KEYWORD2 readMethane KEYWORD2
readSmoke KEYWORD2 readSmoke KEYWORD2
readHydrogen KEYWORD2 readHydrogen KEYWORD2
readAlcoholMgL KEYWORD2 readAlcoholMgL KEYWORD2
readAlcoholPpm KEYWORD2 readAlcoholPpm KEYWORD2
readCarbonMonoxide KEYWORD2 readCarbonMonoxide KEYWORD2
readCO2 KEYWORD2 readCO2 KEYWORD2
getYear KEYWORD2

View File

@ -1,9 +1,9 @@
name=TroykaMQ name=TroykaMQ
version=1.1 version=1.0.0
author=Igor Dementiev, Amperka author=Igor Dementiev, Amperka
maintainer=Amperka <amperka.ru> maintainer=Amperka <amperka.ru>
sentence=Allows to read data from gas sensors of the MQx series in ppm. sentence=Allows to read data from gas sensors of the MQx series in ppm.
paragraph=This library reads data from the MQx series sensors and displays the readings in ppm. Before reading the indicators, the sensor must be calibrated in clean air. paragraph=This library reads data from the MQx series sensors and displays the readings in ppm. Before reading the indicators, the sensor must be calibrated in clean air.
category=Sensors category=Sensors
url=https://github.com/amperka/TroykaMQ url=https://github.com/amperka/TroykaMQ
architectures=*

View File

@ -23,6 +23,7 @@ BaseMQ::BaseMQ(uint8_t pin, uint8_t pinHeater) {
// фиксированая калибровка датчика // фиксированая калибровка датчика
// при знании сопративления датчика на чистом воздухе // при знании сопративления датчика на чистом воздухе
void BaseMQ::calibrate(float ro) { void BaseMQ::calibrate(float ro) {
Serial.println(OPERATING_VOLTAGE);
_ro = ro; _ro = ro;
_stateCalibrate = true; _stateCalibrate = true;
} }

View File

@ -31,7 +31,7 @@
#if defined(__AVR__) #if defined(__AVR__)
#define OPERATING_VOLTAGE 5.0 #define OPERATING_VOLTAGE 5.0
#elif defined(__SAM3X8E__) || defined(__SAM3A8C__) || defined(__SAM3A4C__) || defined(__SAMD21G18A__) || defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32) || defined(__arm__) #else
#define OPERATING_VOLTAGE 3.3 #define OPERATING_VOLTAGE 3.3
#endif #endif
@ -49,17 +49,13 @@ public:
bool heatingCompleted() const; bool heatingCompleted() const;
bool coolanceCompleted() const; bool coolanceCompleted() const;
float readRatio() const; float readRatio() const;
inline bool isCalibrated() const { inline bool isCalibrated() const { return _stateCalibrate; };
return _stateCalibrate; inline float getRo() const { return _ro; };
};
inline float getRo() const {
return _ro;
};
protected: protected:
float readScaled(float a, float b) const; float readScaled(float a, float b) const;
virtual float getRoInCleanAir() const = 0; virtual float getRoInCleanAir() const = 0;
virtual int getRL() const = 0; virtual float getRL() const = 0;
private: private:
bool _heater = false; bool _heater = false;

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ135_RL_BOARD 10 #define MQ135_RL_BOARD 10.0
// концентрация углекислого газа в сухом воздухе // концентрация углекислого газа в сухом воздухе
#define PPM_CO2_IN_CLEAR_AIR 397.13 #define PPM_CO2_IN_CLEAR_AIR 397.13
@ -15,12 +15,8 @@ public:
MQ135(uint8_t pin, uint8_t pinHeater); MQ135(uint8_t pin, uint8_t pinHeater);
unsigned long readCO2(); unsigned long readCO2();
private: private:
virtual int getRL() const { virtual float getRL() const { return MQ135_RL_BOARD; }
return MQ135_RL_BOARD; virtual float getRoInCleanAir() const { return exp((log(PPM_CO2_IN_CLEAR_AIR) * -0.42) + 1.92); }
}
virtual float getRoInCleanAir() const {
return exp((log(PPM_CO2_IN_CLEAR_AIR) * -0.42) + 1.92);
}
}; };
#endif // MQ135_H_ #endif // MQ135_H_

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ2_RL_BOARD 5 #define MQ2_RL_BOARD 5.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ2_RO_IN_CLEAR_AIR 9.83 #define MQ2_RO_IN_CLEAR_AIR 9.83
@ -17,7 +17,7 @@ public:
unsigned long readSmoke(); unsigned long readSmoke();
unsigned long readHydrogen(); unsigned long readHydrogen();
private: private:
virtual int getRL() const { return MQ2_RL_BOARD; } virtual float getRL() const { return MQ2_RL_BOARD; }
virtual float getRoInCleanAir() const { return MQ2_RO_IN_CLEAR_AIR; } virtual float getRoInCleanAir() const { return MQ2_RO_IN_CLEAR_AIR; }
}; };

View File

@ -4,9 +4,9 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ3_RL_BOARD 200 #define MQ3_RL_BOARD 200.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ3_RO_IN_CLEAR_AIR 60 #define MQ3_RO_IN_CLEAR_AIR 60.0
class MQ3 : public BaseMQ { class MQ3 : public BaseMQ {
public: public:
@ -15,7 +15,7 @@ public:
float readAlcoholMgL(); float readAlcoholMgL();
float readAlcoholPpm(); float readAlcoholPpm();
private: private:
virtual int getRL() const { return MQ3_RL_BOARD; } virtual float getRL() const { return MQ3_RL_BOARD; }
virtual float getRoInCleanAir() const { return MQ3_RO_IN_CLEAR_AIR; } virtual float getRoInCleanAir() const { return MQ3_RO_IN_CLEAR_AIR; }
}; };

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ4_RL_BOARD 20 #define MQ4_RL_BOARD 20.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ4_RO_IN_CLEAR_AIR 4.4 #define MQ4_RO_IN_CLEAR_AIR 4.4
@ -14,7 +14,7 @@ public:
MQ4(uint8_t pin, uint8_t pinHeater); MQ4(uint8_t pin, uint8_t pinHeater);
unsigned long readMethane(); unsigned long readMethane();
private: private:
virtual int getRL() const { return MQ4_RL_BOARD ; } virtual float getRL() const { return MQ4_RL_BOARD ; }
virtual float getRoInCleanAir() const { return MQ4_RO_IN_CLEAR_AIR; } virtual float getRoInCleanAir() const { return MQ4_RO_IN_CLEAR_AIR; }
}; };

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ5_RL_BOARD 20 #define MQ5_RL_BOARD 20.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ5_RO_IN_CLEAR_AIR 6.5 #define MQ5_RO_IN_CLEAR_AIR 6.5
@ -15,7 +15,7 @@ public:
unsigned long readLPG(); unsigned long readLPG();
unsigned long readMethane(); unsigned long readMethane();
private: private:
virtual int getRL() const { return MQ5_RL_BOARD; } virtual float getRL() const { return MQ5_RL_BOARD; }
virtual float getRoInCleanAir() const { return MQ5_RO_IN_CLEAR_AIR; } virtual float getRoInCleanAir() const { return MQ5_RO_IN_CLEAR_AIR; }
}; };

View File

@ -4,9 +4,9 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ6_RL_BOARD 20 #define MQ6_RL_BOARD 20.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ6_RO_IN_CLEAR_AIR 10 #define MQ6_RO_IN_CLEAR_AIR 10.0
class MQ6 : public BaseMQ { class MQ6 : public BaseMQ {
public: public:
@ -14,7 +14,7 @@ public:
MQ6(uint8_t pin, uint8_t pinHeater); MQ6(uint8_t pin, uint8_t pinHeater);
unsigned long readLPG(); unsigned long readLPG();
private: private:
virtual int getRL() const { return MQ6_RL_BOARD ; } virtual float getRL() const { return MQ6_RL_BOARD ; }
virtual float getRoInCleanAir() const { return MQ6_RO_IN_CLEAR_AIR; } virtual float getRoInCleanAir() const { return MQ6_RO_IN_CLEAR_AIR; }
}; };

View File

@ -4,9 +4,9 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ7_RL_BOARD 10 #define MQ7_RL_BOARD 10.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ7_RO_IN_CLEAR_AIR 27 #define MQ7_RO_IN_CLEAR_AIR 27.0
class MQ7 : public BaseMQ { class MQ7 : public BaseMQ {
public: public:
@ -14,7 +14,7 @@ public:
MQ7(uint8_t pin, uint8_t pinHeater); MQ7(uint8_t pin, uint8_t pinHeater);
unsigned long readCarbonMonoxide(); unsigned long readCarbonMonoxide();
private: private:
virtual int getRL() const { return MQ7_RL_BOARD; } virtual float getRL() const { return MQ7_RL_BOARD; }
virtual float getRoInCleanAir() const { return MQ7_RO_IN_CLEAR_AIR; } virtual float getRoInCleanAir() const { return MQ7_RO_IN_CLEAR_AIR; }
}; };

View File

@ -4,9 +4,9 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ8_RL_BOARD 10 #define MQ8_RL_BOARD 10.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ8_RO_IN_CLEAR_AIR 27 #define MQ8_RO_IN_CLEAR_AIR 27.0
class MQ8 : public BaseMQ { class MQ8 : public BaseMQ {
public: public:
@ -14,7 +14,7 @@ public:
MQ8(uint8_t pin, uint8_t pinHeater); MQ8(uint8_t pin, uint8_t pinHeater);
unsigned long readHydrogen(); unsigned long readHydrogen();
private: private:
virtual int getRL() const { return MQ8_RL_BOARD; } virtual float getRL() const { return MQ8_RL_BOARD; }
virtual float getRoInCleanAir() const { return MQ8_RO_IN_CLEAR_AIR ; } virtual float getRoInCleanAir() const { return MQ8_RO_IN_CLEAR_AIR ; }
}; };

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h" #include "BaseMQ.h"
// резистор установленный на плату (кОм) // резистор установленный на плату (кОм)
#define MQ9_RL_BOARD 10 #define MQ9_RL_BOARD 10.0
// коефициент чистого воздуха из графика // коефициент чистого воздуха из графика
#define MQ9_RO_IN_CLEAR_AIR 9.8 #define MQ9_RO_IN_CLEAR_AIR 9.8
@ -17,7 +17,7 @@ public:
unsigned long readCarbonMonoxide(); unsigned long readCarbonMonoxide();
private: private:
// Резистор установленный на плату (кОм) // Резистор установленный на плату (кОм)
virtual int getRL() const { return MQ9_RL_BOARD; } virtual float getRL() const { return MQ9_RL_BOARD; }
// коефициент чистого воздуха // коефициент чистого воздуха
virtual float getRoInCleanAir() const { return MQ9_RO_IN_CLEAR_AIR; } virtual float getRoInCleanAir() const { return MQ9_RO_IN_CLEAR_AIR; }
}; };