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

@ -38,3 +38,4 @@ 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; }
};