Fixed issue reading voltaje and update MQ3 Example

This commit is contained in:
miguel5612 2019-08-14 21:33:24 -05:00
parent 8a929cff7f
commit 067ffa76eb
3 changed files with 155 additions and 135 deletions

View File

@ -17,14 +17,17 @@
#include <MQUnifiedsensor.h> #include <MQUnifiedsensor.h>
//Definitions //Definitions
#define pin A0 //Analog input 0 of your arduino #define pin A3 //Analog input 0 of your arduino
#define type 3 //MQ3 #define type 3 //MQ3
//Declare Sensor //Declare Sensor
MQUnifiedsensor MQ3(pin, type); MQUnifiedsensor MQ3(pin, type);
//Variables
float CH4, LPG, CO, Alcohol, Hexane, Benzine;
void setup() { void setup() {
Serial.begin(9600);
//init the sensor //init the sensor
/***************************** MQInicializar**************************************** /***************************** MQInicializar****************************************
Input: pin, type Input: pin, type
@ -35,6 +38,7 @@ void setup() {
} }
void loop() { void loop() {
MQ3.update(); // Update data, the arduino will be read the voltaje in the analog pin
/***************************** MQReadSensor **************************************** /***************************** MQReadSensor ****************************************
Input: Gas - Serial print flag Input: Gas - Serial print flag
Output: Value in PPM Output: Value in PPM
@ -42,12 +46,25 @@ void loop() {
************************************************************************************/ ************************************************************************************/
//Read the sensor and print in serial port //Read the sensor and print in serial port
//Lecture will be saved in lecture variable //Lecture will be saved in lecture variable
int lecture = MQ3.readSensor("", true); // Return Alcohol concentration //float lecture = MQ3.readSensor("", true); // Return Alcohol concentration
// Options, uncomment where you need // Options, uncomment where you need
//int lecture = MQ3.readSensor("CH4", true); // Return CH4 concentration CH4 = MQ3.readSensor("CH4"); // Return CH4 concentration
//int lecture = MQ3.readSensor("LPG", true); // Return LPG concentration LPG = MQ3.readSensor("LPG"); // Return LPG concentration
//int lecture = MQ3.readSensor("CO", true); // Return CO concentration CO = MQ3.readSensor("CO"); // Return CO concentration
//int lecture = MQ3.readSensor("Alcohol", true); // Return Alcohol concentration Alcohol = MQ3.readSensor("Alcohol"); // Return Alcohol concentration
//int lecture = MQ3.readSensor("Hexane", true); // Return Hexane concentration Hexane = MQ3.readSensor("Hexane"); // Return Hexane concentration
//int lecture = MQ3.readSensor("Benzene", true); // Return Benzene concentration Benzine = MQ3.readSensor("Benzene"); // Return Benzene concentration
}
Serial.println("***************************");
Serial.println("Lectures for MQ-3");
Serial.print("Volt: ");Serial.print(MQ3.getVoltage(false));Serial.println(" V");
Serial.print("R0: ");Serial.print(MQ3.getR0());Serial.println(" Ohm");
Serial.print("CH4: ");Serial.print(CH4,2);Serial.println(" mg/L");
Serial.print("LPG: ");Serial.print(LPG,2);Serial.println(" mg/L");
Serial.print("CO: ");Serial.print(CO,2);Serial.println(" mg/L");
Serial.print("Alcohol: ");Serial.print(Alcohol,2);Serial.println(" mg/L");
Serial.print("Hexane: ");Serial.print(Hexane,2);Serial.println(" mg/L");
Serial.print("Benzine: ");Serial.print(Benzine,2);Serial.println(" mg/L");
Serial.println("***************************");
}

View File

@ -102,12 +102,12 @@ void MQUnifiedsensor::inicializar()
{ {
pinMode(_pin, INPUT); pinMode(_pin, INPUT);
} }
int MQUnifiedsensor::readSensor(String nameLectureRequeired, bool print) float MQUnifiedsensor::readSensor(String nameLectureRequeired, bool print)
{ {
setSensorCharacteristics(nameLectureRequeired, print); //In this function update _a and _b setSensorCharacteristics(nameLectureRequeired, print); //In this function update _a and _b
_RS_Calc = ((_VOLT_RESOLUTION*_RLValue)/_sensor_volt)-_RLValue; //Get value of RS in a gas _RS_Calc = ((_VOLT_RESOLUTION*_RLValue)/_sensor_volt)-_RLValue; //Get value of RS in a gas
_ratio = _RS_Calc / this->_R0; // Get ratio RS_gas/RS_air _ratio = _RS_Calc / this->_R0; // Get ratio RS_gas/RS_air
_PPM= a*pow(_ratio, b); _PPM= _a*pow(_ratio, _b);
if(print) if(print)
{ {
@ -116,8 +116,8 @@ int MQUnifiedsensor::readSensor(String nameLectureRequeired, bool print)
Serial.println("* Sensor: MQ-" + String(_type)); Serial.println("* Sensor: MQ-" + String(_type));
Serial.println("* Vcc: " + String(_VOLT_RESOLUTION) + ", RS: " + String(_RS_Calc)); Serial.println("* Vcc: " + String(_VOLT_RESOLUTION) + ", RS: " + String(_RS_Calc));
Serial.println("* RS/R0 = " + String(_ratio) + " ,Voltaje leido(ADC): " + String(_sensor_volt)); Serial.println("* RS/R0 = " + String(_ratio) + " ,Voltaje leido(ADC): " + String(_sensor_volt));
Serial.println("* PPM = " + _a + "pow(Rs/R0, +" + _b + ")"); Serial.println("* PPM = " + String(_a) + "*pow(" + String(_ratio) + "," + String(_b) + ")");
Serial.println("* Lectura(" + nameLecture + ")=" + String(_PPM) + " PPM"); Serial.println("* Lectura(" + nameLecture + ") = " + String(_PPM) + " PPM");
Serial.println("**********************"); Serial.println("**********************");
} }
return _PPM; return _PPM;
@ -148,379 +148,379 @@ void MQUnifiedsensor::setSensorCharacteristics(String nameLectureRequeired, bool
*/ */
if(_type == 2) if(_type == 2)
{ {
if(_nameLectureRequeired == "H2") if(nameLectureRequeired == "H2")
{ {
_nameLectureRequeired = "H2"; _nameLectureRequeired = "H2";
_a = MQ2_H2_m; _a = MQ2_H2_a;
_b = MQ2_H2_b; _b = MQ2_H2_b;
} }
else if(_nameLectureRequeired == "LPG") else if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ2_LPG_m; _a = MQ2_LPG_a;
_b = MQ2_LPG_b; _b = MQ2_LPG_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ2_CO_m; _a = MQ2_CO_a;
_b = MQ2_CO_b; _b = MQ2_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ2_Alcohol_m; _a = MQ2_Alcohol_a;
_b = MQ2_Alcohol_b; _b = MQ2_Alcohol_b;
} }
else if(_nameLectureRequeired == "Propane") else if(nameLectureRequeired == "Propane")
{ {
_nameLectureRequeired = "Propane"; _nameLectureRequeired = "Propane";
_a = MQ2_Propane_m; _a = MQ2_Propane_a;
_b = MQ2_Propane_b; _b = MQ2_Propane_b;
} }
else if(_nameLectureRequeired == "Benzene") else if(nameLectureRequeired == "Benzene")
{ {
_nameLectureRequeired = "Benzene"; _nameLectureRequeired = "Benzene";
_a = MQ2_Benzene_m; _a = MQ2_Benzene_a;
_b = MQ2_Benzene_b; _b = MQ2_Benzene_b;
} }
} }
else if(_type == 3) else if(_type == 3)
{ {
if(_nameLectureRequeired == "LPG") if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ3_LPG_m; _a = MQ3_LPG_a;
_b = MQ3_LPG_b; _b = MQ3_LPG_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ3_CH4_m; _a = MQ3_CH4_a;
_b = MQ3_CH4_b; _b = MQ3_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ3_CO_m; _a = MQ3_CO_a;
_b = MQ3_CO_b; _b = MQ3_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ3_Alcohol_m; _a = MQ3_Alcohol_a;
_b = MQ3_Alcohol_b; _b = MQ3_Alcohol_b;
} }
else if(_nameLectureRequeired == "Hexane") else if(nameLectureRequeired == "Hexane")
{ {
_nameLectureRequeired = "Hexane"; _nameLectureRequeired = "Hexane";
_a = MQ3_Hexane_m; _a = MQ3_Hexane_a;
_b = MQ3_Hexane_b; _b = MQ3_Hexane_b;
} }
else if(_nameLectureRequeired == "Benzene") else if(nameLectureRequeired == "Benzene")
{ {
_nameLectureRequeired = "Benzene"; _nameLectureRequeired = "Benzene";
_a = MQ3_Benzene_m; _a = MQ3_Benzene_a;
_b = MQ3_Benzene_b; _b = MQ3_Benzene_b;
} }
} }
else if(_type == 4) else if(_type == 4)
{ {
if(_nameLectureRequeired == "LPG") if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ4_LPG_m; _a = MQ4_LPG_a;
_b = MQ4_LPG_b; _b = MQ4_LPG_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ4_CH4_m; _a = MQ4_CH4_a;
_b = MQ4_CH4_b; _b = MQ4_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ4_CO_m; _a = MQ4_CO_a;
_b = MQ4_CO_b; _b = MQ4_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ4_Alcohol_m; _a = MQ4_Alcohol_a;
_b = MQ4_Alcohol_b; _b = MQ4_Alcohol_b;
} }
else if(_nameLectureRequeired == "smoke") else if(nameLectureRequeired == "smoke")
{ {
_nameLectureRequeired = "smoke"; _nameLectureRequeired = "smoke";
_a = MQ4_smoke_m; _a = MQ4_smoke_a;
_b = MQ4_smoke_b; _b = MQ4_smoke_b;
} }
} }
else if(_type == 5) else if(_type == 5)
{ {
if(_nameLectureRequeired == "H2") if(nameLectureRequeired == "H2")
{ {
_nameLectureRequeired = "H2"; _nameLectureRequeired = "H2";
_a = MQ5_H2_m; _a = MQ5_H2_a;
_b = MQ5_H2_b; _b = MQ5_H2_b;
} }
else if(_nameLectureRequeired == "LPG") else if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ5_LPG_m; _a = MQ5_LPG_a;
_b = MQ5_LPG_b; _b = MQ5_LPG_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ5_CH4_m; _a = MQ5_CH4_a;
_b = MQ5_CH4_b; _b = MQ5_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ5_CO_m; _a = MQ5_CO_a;
_b = MQ5_CO_b; _b = MQ5_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ5_Alcohol_m; _a = MQ5_Alcohol_a;
_b = MQ5_Alcohol_b; _b = MQ5_Alcohol_b;
} }
} }
else if(_type == 6) else if(_type == 6)
{ {
if(_nameLectureRequeired == "H2") if(nameLectureRequeired == "H2")
{ {
_nameLectureRequeired = "H2"; _nameLectureRequeired = "H2";
_a = MQ6_H2_m; _a = MQ6_H2_a;
_b = MQ6_H2_b; _b = MQ6_H2_b;
} }
else if(_nameLectureRequeired == "LPG") else if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ6_LPG_m; _a = MQ6_LPG_a;
_b = MQ6_LPG_b; _b = MQ6_LPG_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ6_CH4_m; _a = MQ6_CH4_a;
_b = MQ6_CH4_b; _b = MQ6_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ6_CO_m; _a = MQ6_CO_a;
_b = MQ6_CO_b; _b = MQ6_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ6_Alcohol_m; _a = MQ6_Alcohol_a;
_b = MQ6_Alcohol_b; _b = MQ6_Alcohol_b;
} }
} }
else if(_type == 7) else if(_type == 7)
{ {
if(_nameLectureRequeired == "H2") if(nameLectureRequeired == "H2")
{ {
_nameLectureRequeired = "H2"; _nameLectureRequeired = "H2";
_a = MQ7_H2_m; _a = MQ7_H2_a;
_b = MQ7_H2_b; _b = MQ7_H2_b;
} }
else if(_nameLectureRequeired == "LPG") else if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ7_LPG_m; _a = MQ7_LPG_a;
_b = MQ7_LPG_b; _b = MQ7_LPG_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ7_CH4_m; _a = MQ7_CH4_a;
_b = MQ7_CH4_b; _b = MQ7_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ7_CO_m; _a = MQ7_CO_a;
_b = MQ7_CO_b; _b = MQ7_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ7_Alcohol_m; _a = MQ7_Alcohol_a;
_b = MQ7_Alcohol_b; _b = MQ7_Alcohol_b;
} }
} }
else if(_type == 8) else if(_type == 8)
{ {
if(_nameLectureRequeired == "H2") if(nameLectureRequeired == "H2")
{ {
_nameLectureRequeired = "H2"; _nameLectureRequeired = "H2";
_a = MQ8_H2_m; _a = MQ8_H2_a;
_b = MQ8_H2_b; _b = MQ8_H2_b;
} }
else if(_nameLectureRequeired == "LPG") else if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ8_LPG_m; _a = MQ8_LPG_a;
_b = MQ8_LPG_b; _b = MQ8_LPG_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ8_CH4_m; _a = MQ8_CH4_a;
_b = MQ8_CH4_b; _b = MQ8_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ8_CO_m; _a = MQ8_CO_a;
_b = MQ8_CO_b; _b = MQ8_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ8_Alcohol_m; _a = MQ8_Alcohol_a;
_b = MQ8_Alcohol_b; _b = MQ8_Alcohol_b;
} }
} }
else if(_type == 9) else if(_type == 9)
{ {
if(_nameLectureRequeired == "LPG") if(nameLectureRequeired == "LPG")
{ {
_nameLectureRequeired = "LPG"; _nameLectureRequeired = "LPG";
_a = MQ9_LPG_m; _a = MQ9_LPG_a;
_b = MQ9_LPG_b; _b = MQ9_LPG_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ9_CH4_m; _a = MQ9_CH4_a;
_b = MQ9_CH4_b; _b = MQ9_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ9_CO_m; _a = MQ9_CO_a;
_b = MQ9_CO_b; _b = MQ9_CO_b;
} }
} }
else if(_type == 131) else if(_type == 131)
{ {
if(_nameLectureRequeired == "NOx") if(nameLectureRequeired == "NOx")
{ {
_nameLectureRequeired = "NOx"; _nameLectureRequeired = "NOx";
_a = MQ131_NOx_m; _a = MQ131_NOx_a;
_b = MQ131_NOx_b; _b = MQ131_NOx_b;
} }
else if(_nameLectureRequeired == "CL2") else if(nameLectureRequeired == "CL2")
{ {
_nameLectureRequeired = "CL2"; _nameLectureRequeired = "CL2";
_a = MQ131_CL2_m; _a = MQ131_CL2_a;
_b = MQ131_CL2_b; _b = MQ131_CL2_b;
} }
else if(_nameLectureRequeired == "O3") else if(nameLectureRequeired == "O3")
{ {
_nameLectureRequeired = "O3"; _nameLectureRequeired = "O3";
_a = MQ131_O3_m; _a = MQ131_O3_a;
_b = MQ131_O3_b; _b = MQ131_O3_b;
} }
} }
else if(_type == 135) else if(_type == 135)
{ {
if(_nameLectureRequeired == "CO") if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ135_CO_m; _a = MQ135_CO_a;
_b = MQ135_CO_b; _b = MQ135_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ135_Alcohol_m; _a = MQ135_Alcohol_a;
_b = MQ135_Alcohol_b; _b = MQ135_Alcohol_b;
} }
else if(_nameLectureRequeired == "CO2") else if(nameLectureRequeired == "CO2")
{ {
_nameLectureRequeired = "CO2"; _nameLectureRequeired = "CO2";
_a = MQ135_CO2_m; _a = MQ135_CO2_a;
_b = MQ135_CO2_b; _b = MQ135_CO2_b;
} }
else if(_nameLectureRequeired == "Tolueno") else if(nameLectureRequeired == "Tolueno")
{ {
_nameLectureRequeired = "Tolueno"; _nameLectureRequeired = "Tolueno";
_a = MQ135_Tolueno_m; _a = MQ135_Tolueno_a;
_b = MQ135_Tolueno_b; _b = MQ135_Tolueno_b;
} }
else if(_nameLectureRequeired == "NH4") else if(nameLectureRequeired == "NH4")
{ {
_nameLectureRequeired = "NH4"; _nameLectureRequeired = "NH4";
_a = MQ135_NH4_m; _a = MQ135_NH4_a;
_b = MQ135_NH4_b; _b = MQ135_NH4_b;
} }
else if(_nameLectureRequeired == "Acetona") else if(nameLectureRequeired == "Acetona")
{ {
_nameLectureRequeired = "Acetona"; _nameLectureRequeired = "Acetona";
_a = MQ135_Acetona_m; _a = MQ135_Acetona_a;
_b = MQ135_Acetona_b; _b = MQ135_Acetona_b;
} }
} }
else if(_type == 303) else if(_type == 303)
{ {
if(_nameLectureRequeired == "Iso_butano") if(nameLectureRequeired == "Iso_butano")
{ {
_nameLectureRequeired = "Iso_butano"; _nameLectureRequeired = "Iso_butano";
_a = MQ303_Iso_butano_m; _a = MQ303_Iso_butano_a;
_b = MQ303_Iso_butano_b; _b = MQ303_Iso_butano_b;
} }
else if(_nameLectureRequeired == "Hydrogeno") else if(nameLectureRequeired == "Hydrogeno")
{ {
_nameLectureRequeired = "Hydrogeno"; _nameLectureRequeired = "Hydrogeno";
_a = MQ303_Hydrogeno_m; _a = MQ303_Hydrogeno_a;
_b = MQ303_Hydrogeno_b; _b = MQ303_Hydrogeno_b;
} }
else if(_nameLectureRequeired == "Ethanol") else if(nameLectureRequeired == "Ethanol")
{ {
_nameLectureRequeired = "Ethanol"; _nameLectureRequeired = "Ethanol";
_a = MQ303_Ethanol_m; _a = MQ303_Ethanol_a;
_b = MQ303_Ethanol_b; _b = MQ303_Ethanol_b;
} }
} }
else if(_type == 309) else if(_type == 309)
{ {
if(_nameLectureRequeired == "H2") if(nameLectureRequeired == "H2")
{ {
_nameLectureRequeired = "H2"; _nameLectureRequeired = "H2";
_a = MQ309_H2_m; _a = MQ309_H2_a;
_b = MQ309_H2_b; _b = MQ309_H2_b;
} }
else if(_nameLectureRequeired == "CH4") else if(nameLectureRequeired == "CH4")
{ {
_nameLectureRequeired = "CH4"; _nameLectureRequeired = "CH4";
_a = MQ309_CH4_m; _a = MQ309_CH4_a;
_b = MQ309_CH4_b; _b = MQ309_CH4_b;
} }
else if(_nameLectureRequeired == "CO") else if(nameLectureRequeired == "CO")
{ {
_nameLectureRequeired = "CO"; _nameLectureRequeired = "CO";
_a = MQ309_CO_m; _a = MQ309_CO_a;
_b = MQ309_CO_b; _b = MQ309_CO_b;
} }
else if(_nameLectureRequeired == "Alcohol") else if(nameLectureRequeired == "Alcohol")
{ {
_nameLectureRequeired = "Alcohol"; _nameLectureRequeired = "Alcohol";
_a = MQ309_Alcohol_m; _a = MQ309_Alcohol_a;
_b = MQ309_Alcohol_b; _b = MQ309_Alcohol_b;
} }
} }
//Serial debugging //Serial debugging
} }
long MQUnifiedsensor::calibrate(boolean print) { float MQUnifiedsensor::calibrate(boolean print) {
//More explained in: https://jayconsystems.com/blog/understanding-a-gas-sensor //More explained in: https://jayconsystems.com/blog/understanding-a-gas-sensor
/* /*
V = I x R V = I x R
@ -551,7 +551,7 @@ long MQUnifiedsensor::calibrate(boolean print) {
return R0; return R0;
} }
double MQUnifiedsensor::getVoltage(int read) { double MQUnifiedsensor::getVoltage(int read) {
double voltage = 0; double voltage;
if(read) if(read)
{ {
double avg = 0.0; double avg = 0.0;
@ -561,6 +561,10 @@ double MQUnifiedsensor::getVoltage(int read) {
} }
voltage = (avg/ retries) * _VOLT_RESOLUTION / (pow(2, ADC_RESOLUTION) - 1); voltage = (avg/ retries) * _VOLT_RESOLUTION / (pow(2, ADC_RESOLUTION) - 1);
} }
else
{
voltage = _sensor_volt;
}
return voltage; return voltage;
} }

View File

@ -271,19 +271,18 @@ class MQUnifiedsensor
//Functions to set values //Functions to set values
void inicializar(); void inicializar();
void update(); void update();
void setR0(double R0); void setR0(double R0 = 10);
void setVoltResolution(float voltaje); void setVoltResolution(float voltaje = 5);
void setSensorCharacteristics(String nameLectureReqeuired, bool print); void setSensorCharacteristics(String nameLectureReqeuired = "", bool print = false);
void setDefaultGas(); void setDefaultGas();
//user functions //user functions
long calibrate(boolean print = false); float calibrate(boolean print = false);
int readSensor(String nameLectureRequeired = "", bool print = false); float readSensor(String nameLectureRequeired = "", bool print = false);
//get function for info //get function for info
double getR0(); double getR0();
float readPPM(int m, int b); double getVoltage(int read = true);
double getVoltage(int read = true);
double stringToDouble(String & str); double stringToDouble(String & str);
String getnameLecture(); String getnameLecture();