MQ-X Arduino Library 1.0.0
This is a library for the MQ-X Sensors.
Loading...
Searching...
No Matches
MQUnifiedsensor.h
Go to the documentation of this file.
1#ifndef MQUnifiedsensor_H
2#define MQUnifiedsensor_H
3
4#include "Wire.h"
5#include <Arduino.h>
6#include <stdint.h>
7
8/***********************Software Related Macros************************************/
9
10#define ADC_RESOLUTION 10 // for 10bit analog to digital converter.
11#define retries 2
12#define retry_interval 20
13
15{
16 public:
17 MQUnifiedsensor(int pin = 1, String Placa = "Arduino", float Voltage_Resolution = 5, int ADC_Bit_Resolution = 10,
18 String type = "CUSTOM MQ");
19
20 // Functions to set values
21 void init(int _addr, TwoWire *_i2c);
22 void update();
23 void setR0(float R0 = 10);
24 void setRL(float RL = 10);
25 void setA(float a);
26 void setB(float b);
27 void setRegressionMethod(int regressionMethod);
28 void setVoltResolution(float voltage_resolution = 5);
29 void serialDebug(bool onSetup = false); // Show on serial port information about sensor
30 void setADC(int value); // For external ADC Usage
31
32 // user functions
33 float calibrate(float ratioInCleanAir);
34 float readSensor();
35 float validateEcuation(float ratioInput = 0);
36
37 // get function for info
38 float getA();
39 float getB();
40 float getR0();
41 float getRL();
42 float getVoltResolution();
43 String getRegressionMethod();
44 float getVoltage(int read = true);
45
46 float stringTofloat(String &str);
47
48 bool native = 1;
49 byte addr = 0;
50
51 protected:
52 TwoWire* _i2c;
53
54 private:
55 /************************Private vars************************************/
56 byte _pin;
57 byte _firstFlag = false;
58 float _VOLT_RESOLUTION = 5.0; // if 3.3v use 3.3
59 float _RL = 10; // Value in KiloOhms
61 byte _regressionMethod = 1; // 1 -> Exponential || 2 -> Linear
62
65
66 char _type[6];
67 char _placa[20];
68};
69
70#endif // MQUnifiedsensor_H
float getVoltage(int read=true)
Definition MQUnifiedsensor.cpp:245
float _b
Definition MQUnifiedsensor.h:63
float validateEcuation(float ratioInput=0)
Definition MQUnifiedsensor.cpp:178
MQUnifiedsensor(int pin=1, String Placa="Arduino", float Voltage_Resolution=5, int ADC_Bit_Resolution=10, String type="CUSTOM MQ")
Definition MQUnifiedsensor.cpp:3
float getR0()
Definition MQUnifiedsensor.cpp:51
float getVoltResolution()
Definition MQUnifiedsensor.cpp:59
float readSensor()
Definition MQUnifiedsensor.cpp:197
TwoWire * _i2c
Definition MQUnifiedsensor.h:52
char _type[6]
Definition MQUnifiedsensor.h:66
void setADC(int value)
Definition MQUnifiedsensor.cpp:37
float _adc
Definition MQUnifiedsensor.h:63
void setRegressionMethod(int regressionMethod)
Definition MQUnifiedsensor.cpp:46
char _placa[20]
Definition MQUnifiedsensor.h:67
float _sensor_volt
Definition MQUnifiedsensor.h:63
byte _regressionMethod
Definition MQUnifiedsensor.h:61
void update()
Definition MQUnifiedsensor.cpp:162
float _VOLT_RESOLUTION
Definition MQUnifiedsensor.h:58
bool native
Definition MQUnifiedsensor.h:48
float _PPM
Definition MQUnifiedsensor.h:64
String getRegressionMethod()
Definition MQUnifiedsensor.cpp:63
float stringTofloat(String &str)
Definition MQUnifiedsensor.cpp:265
void setRL(float RL=10)
Definition MQUnifiedsensor.cpp:33
float getA()
Definition MQUnifiedsensor.cpp:70
float _ratio
Definition MQUnifiedsensor.h:64
void setR0(float R0=10)
Definition MQUnifiedsensor.cpp:29
float RS_air
Definition MQUnifiedsensor.h:64
float calibrate(float ratioInCleanAir)
Definition MQUnifiedsensor.cpp:221
void init(int _addr, TwoWire *_i2c)
Definition MQUnifiedsensor.cpp:13
float _RL
Definition MQUnifiedsensor.h:59
void setB(float b)
Definition MQUnifiedsensor.cpp:25
float _RS_Calc
Definition MQUnifiedsensor.h:64
float _a
Definition MQUnifiedsensor.h:63
float getRL()
Definition MQUnifiedsensor.cpp:55
float _R0
Definition MQUnifiedsensor.h:64
void serialDebug(bool onSetup=false)
Definition MQUnifiedsensor.cpp:78
byte addr
Definition MQUnifiedsensor.h:49
byte _firstFlag
Definition MQUnifiedsensor.h:57
void setVoltResolution(float voltage_resolution=5)
Definition MQUnifiedsensor.cpp:42
byte _pin
Definition MQUnifiedsensor.h:56
byte _ADC_Bit_Resolution
Definition MQUnifiedsensor.h:60
float getB()
Definition MQUnifiedsensor.cpp:74
void setA(float a)
Definition MQUnifiedsensor.cpp:21