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()
{

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)
#######################################
MQ2 KEYWORD1 MQ2
MQ3 KEYWORD1 MQ3
MQ4 KEYWORD1 MQ4
MQ5 KEYWORD1 MQ5
MQ6 KEYWORD1 MQ6
MQ7 KEYWORD1 MQ7
MQ8 KEYWORD1 MQ8
MQ9 KEYWORD1 MQ9
MQ135 KEYWORD1 MQ135
MQ2 KEYWORD1 MQ2
MQ3 KEYWORD1 MQ3
MQ4 KEYWORD1 MQ4
MQ5 KEYWORD1 MQ5
MQ6 KEYWORD1 MQ6
MQ7 KEYWORD1 MQ7
MQ8 KEYWORD1 MQ8
MQ9 KEYWORD1 MQ9
MQ135 KEYWORD1 MQ135
#######################################
# Methods and Functions (KEYWORD2)
#######################################
calibrate KEYWORD2
heaterPwrHigh KEYWORD2
heaterPwrLow KEYWORD2
heaterPwrOff KEYWORD2
cycleHeat KEYWORD2
atHeatCycleEnd KEYWORD2
heatingCompleted KEYWORD2
coolanceCompleted KEYWORD2
readRatio KEYWORD2
isCalibrated KEYWORD2
getRo KEYWORD2
readLPG KEYWORD2
readMethane KEYWORD2
readSmoke KEYWORD2
readHydrogen KEYWORD2
readAlcoholMgL KEYWORD2
readAlcoholPpm KEYWORD2
readCarbonMonoxide KEYWORD2
readCO2 KEYWORD2
calibrate KEYWORD2
heaterPwrHigh KEYWORD2
heaterPwrLow KEYWORD2
heaterPwrOff KEYWORD2
cycleHeat KEYWORD2
atHeatCycleEnd KEYWORD2
heatingCompleted KEYWORD2
coolanceCompleted KEYWORD2
readRatio KEYWORD2
isCalibrated KEYWORD2
getRo KEYWORD2
readLPG KEYWORD2
readMethane KEYWORD2
readSmoke KEYWORD2
readHydrogen KEYWORD2
readAlcoholMgL KEYWORD2
readAlcoholPpm KEYWORD2
readCarbonMonoxide KEYWORD2
readCO2 KEYWORD2
getYear KEYWORD2

View File

@ -1,9 +1,9 @@
name=TroykaMQ
version=1.1
version=1.0.0
author=Igor Dementiev, Amperka
maintainer=Amperka <amperka.ru>
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.
category=Sensors
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) {
Serial.println(OPERATING_VOLTAGE);
_ro = ro;
_stateCalibrate = true;
}

View File

@ -31,7 +31,7 @@
#if defined(__AVR__)
#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
#endif
@ -49,17 +49,13 @@ public:
bool heatingCompleted() const;
bool coolanceCompleted() const;
float readRatio() const;
inline bool isCalibrated() const {
return _stateCalibrate;
};
inline float getRo() const {
return _ro;
};
inline bool isCalibrated() const { return _stateCalibrate; };
inline float getRo() const { return _ro; };
protected:
float readScaled(float a, float b) const;
virtual float getRoInCleanAir() const = 0;
virtual int getRL() const = 0;
virtual float getRL() const = 0;
private:
bool _heater = false;

View File

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

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h"
// резистор установленный на плату (кОм)
#define MQ2_RL_BOARD 5
#define MQ2_RL_BOARD 5.0
// коефициент чистого воздуха из графика
#define MQ2_RO_IN_CLEAR_AIR 9.83
@ -17,7 +17,7 @@ public:
unsigned long readSmoke();
unsigned long readHydrogen();
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; }
};

View File

@ -4,9 +4,9 @@
#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 {
public:
@ -15,7 +15,7 @@ public:
float readAlcoholMgL();
float readAlcoholPpm();
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; }
};

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h"
// резистор установленный на плату (кОм)
#define MQ4_RL_BOARD 20
#define MQ4_RL_BOARD 20.0
// коефициент чистого воздуха из графика
#define MQ4_RO_IN_CLEAR_AIR 4.4
@ -14,7 +14,7 @@ public:
MQ4(uint8_t pin, uint8_t pinHeater);
unsigned long readMethane();
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; }
};

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h"
// резистор установленный на плату (кОм)
#define MQ5_RL_BOARD 20
#define MQ5_RL_BOARD 20.0
// коефициент чистого воздуха из графика
#define MQ5_RO_IN_CLEAR_AIR 6.5
@ -15,7 +15,7 @@ public:
unsigned long readLPG();
unsigned long readMethane();
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; }
};

View File

@ -4,9 +4,9 @@
#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 {
public:
@ -14,7 +14,7 @@ public:
MQ6(uint8_t pin, uint8_t pinHeater);
unsigned long readLPG();
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; }
};

View File

@ -4,9 +4,9 @@
#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 {
public:
@ -14,7 +14,7 @@ public:
MQ7(uint8_t pin, uint8_t pinHeater);
unsigned long readCarbonMonoxide();
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; }
};

View File

@ -4,9 +4,9 @@
#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 {
public:
@ -14,7 +14,7 @@ public:
MQ8(uint8_t pin, uint8_t pinHeater);
unsigned long readHydrogen();
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 ; }
};

View File

@ -4,7 +4,7 @@
#include "BaseMQ.h"
// резистор установленный на плату (кОм)
#define MQ9_RL_BOARD 10
#define MQ9_RL_BOARD 10.0
// коефициент чистого воздуха из графика
#define MQ9_RO_IN_CLEAR_AIR 9.8
@ -17,7 +17,7 @@ public:
unsigned long readCarbonMonoxide();
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; }
};