Updated MQ131 to MQ309

pull/33/head
miguel5612 5 years ago
parent 733988c5d3
commit cf15fb6d2a

@ -9,6 +9,10 @@
modified 23 May 2019 modified 23 May 2019
by Miguel Califa by Miguel Califa
Updated library usage
modified 26 March 2020
by Miguel Califa
This example code is in the public domain. This example code is in the public domain.
*/ */
@ -17,67 +21,58 @@
#include <MQUnifiedsensor.h> #include <MQUnifiedsensor.h>
//Definitions //Definitions
#define placa "Arduino UNO"
#define Voltage_Resolution 5
#define pin A0 //Analog input 0 of your arduino #define pin A0 //Analog input 0 of your arduino
#define type 135 //MQ135 #define type "MQ-135" //MQ135
#define ADC_Bit_Resolution 10 // For arduino UNO/MEGA/NANO
//#define calibration_button 13 //Pin to calibrate your sensor //#define calibration_button 13 //Pin to calibrate your sensor
//Declare Sensor //Declare Sensor
MQUnifiedsensor MQ135(pin, type); MQUnifiedsensor MQ135(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);
//Variables
float CO, Alcohol, CO2, Tolueno, NH4, Acetona;
void setup() { void setup() {
//Init the serial port communication - to debug the library
Serial.begin(9600); //Init serial port Serial.begin(9600); //Init serial port
//init the sensor
/***************************** MQInicializar****************************************
Input: pin, type
Output:
Remarks: This function create the sensor object.
************************************************************************************/
MQ135.inicializar();
//pinMode(calibration_button, INPUT);
}
void loop() { //Set math model to calculate the PPM concentration and the value of constants
MQ135.update(); // Update data, the arduino will be read the voltaje in the analog pin MQ135.setRegressionMethod("Exponential"); //_PPM = a*ratio^b
MQ135.setA(102.2); MQ135.setB(-2.473); // Configurate the ecuation values to get NH4 concentration
/* /*
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo: Exponential regression:
MQ135.setRL(10); GAS | a | b
CO | 605.18 | -3.937
Alcohol | 77.255 | -3.18
CO2 | 110.47 | -2.862
Tolueno | 44.947 | -3.445
NH4 | 102.2 | -2.473
Acetona | 34.668 | -3.369
*/ */
// Calibration setup
MQ135.setR0(76.63);
/* /*
//Rutina de calibracion - Uncomment if you need (setup too and header) //If the RL value is different from 10K please assign your RL value with the following method:
if(calibration_button) MQ135.setRL(10);
{
float R0 = MQ135.calibrate();
MQ135.setR0(R0):
}
*/ */
/***************************** MQReadSensor ****************************************
Input: Gas - Serial print flag
Output: Value in PPM
Remarks: This function use readPPM to read the value in PPM the gas in the air.
************************************************************************************/
//Read the sensor and print in serial port
//Lecture will be saved in lecture variable
//float lecture = MQ135.readSensor("", true); // Return NH4 concentration
// Options, uncomment where you need
CO = MQ135.readSensor("CO"); // Return CO concentration
Alcohol = MQ135.readSensor("Alcohol"); // Return Alcohol concentration
CO2 = MQ135.readSensor("CO2"); // Return CO2 concentration
Tolueno = MQ135.readSensor("Tolueno"); // Return Tolueno concentration
NH4 = MQ135.readSensor("NH4"); // Return NH4 concentration
Acetona = MQ135.readSensor("Acetona"); // Return Acetona concentration
Serial.println("***************************"); /***************************** MQ Init ********************************************/
Serial.println("Lectures for MQ-135"); //Remarks: Configure the pin of arduino as input.
Serial.print("Volt: ");Serial.print(MQ135.getVoltage(false));Serial.println(" V"); /************************************************************************************/
Serial.print("R0: ");Serial.print(MQ135.getR0());Serial.println(" Ohm"); MQ135.init();
Serial.print("CO: ");Serial.print(CO,2);Serial.println(" ppm"); /***************************** MQ Init ********************************************/
Serial.print("Alcohol: ");Serial.print(Alcohol,2);Serial.println(" ppm"); //Input: setup flag, if this function are on setup will print the headers (Optional - Default value: False)
Serial.print("CO2: ");Serial.print(CO2,2);Serial.println(" ppm"); //Output: print on serial port the information about sensor and sensor readings
Serial.print("Tolueno: ");Serial.print(Tolueno,2);Serial.println(" ppm"); //Remarks: Configure the pin of arduino as input.
Serial.print("NH4: ");Serial.print(NH4,2);Serial.println(" ppm"); /************************************************************************************/
Serial.print("Acetona: ");Serial.print(Acetona,2);Serial.println(" ppm"); MQ135.serialDebug(true);
Serial.println("***************************"); }
void loop() {
MQ135.update(); // Update data, the arduino will be read the voltage on the analog pin
MQ135.readSensor(); // Sensor will read PPM concentration using the model and a and b values setted before or in the setup
MQ135.serialDebug(); // Will print the table on the serial port
delay(500); //Sampling frequency
} }

@ -1,5 +1,5 @@
/* /*
MQUnifiedsensor Library - reading an MQ4 MQUnifiedsensor Library - reading an MQ303
Demonstrates the use a MQ303 sensor. Demonstrates the use a MQ303 sensor.
Library originally added 01 may 2019 Library originally added 01 may 2019
@ -9,6 +9,10 @@
modified 23 May 2019 modified 23 May 2019
by Miguel Califa by Miguel Califa
Updated library usage
modified 26 March 2020
by Miguel Califa
This example code is in the public domain. This example code is in the public domain.
*/ */
@ -17,62 +21,55 @@
#include <MQUnifiedsensor.h> #include <MQUnifiedsensor.h>
//Definitions //Definitions
#define placa "Arduino UNO"
#define Voltage_Resolution 5
#define pin A0 //Analog input 0 of your arduino #define pin A0 //Analog input 0 of your arduino
#define type 303 //MQ303 #define type "MQ-303" //MQ303
#define ADC_Bit_Resolution 10 // For arduino UNO/MEGA/NANO
//#define calibration_button 13 //Pin to calibrate your sensor //#define calibration_button 13 //Pin to calibrate your sensor
//Declare Sensor //Declare Sensor
MQUnifiedsensor MQ303(pin, type); MQUnifiedsensor MQ303(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);
//Variables
float Iso_butano, Hydrogeno, Ethanol;
void setup() { void setup() {
//Init the serial port communication - to debug the library
Serial.begin(9600); //Init serial port Serial.begin(9600); //Init serial port
//init the sensor
/***************************** MQInicializar****************************************
Input: pin, type
Output:
Remarks: This function create the sensor object.
************************************************************************************/
MQ303.inicializar();
//pinMode(calibration_button, INPUT);
}
void loop() { //Set math model to calculate the PPM concentration and the value of constants
MQ303.update(); MQ303.setRegressionMethod("Exponential"); //_PPM = a*ratio^b
MQ303.setA(6.2144); MQ303.setB(-2.894); // Configurate the ecuation values to get Isobutano concentration
/* /*
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo: Exponential regression:
MQ303.setRL(10); GAS | a | b
Iso_butano | 6.2144 | -2.894
Hydrogen | 4.1487 | -2.716
Ethanol | 3.4916 | -2.432
*/ */
// Calibration setup
MQ303.setR0(10);
/* /*
//Rutina de calibracion - Uncomment if you need (setup too and header) //If the RL value is different from 10K please assign your RL value with the following method:
if(calibration_button) MQ303.setRL(10);
{
float R0 = MQ303.calibrate();
MQ303.setR0(R0);
}
*/ */
/***************************** MQReadSensor ****************************************
Input: Gas - Serial print flag
Output: Value in PPM
Remarks: This function use readPPM to read the value in PPM the gas in the air.
************************************************************************************/
//Read the sensor and print in serial port
//Lecture will be saved in lecture variable
//float lecture = MQ303.readSensor("", true); // Return Isobutano concentration
// Options, uncomment where you need
Iso_butano = MQ303.readSensor("Iso_butano"); // Return Iso_butano concentration
Hydrogeno = MQ303.readSensor("Hydrogeno"); // Return Hydrogeno concentration
Ethanol = MQ303.readSensor("Ethanol"); // Return Ethanol concentration
Serial.println("***************************"); /***************************** MQ Init ********************************************/
Serial.println("Lectures for MQ-303"); //Remarks: Configure the pin of arduino as input.
Serial.print("Volt: ");Serial.print(MQ303.getVoltage(false));Serial.println(" V"); /************************************************************************************/
Serial.print("R0: ");Serial.print(MQ303.getR0());Serial.println(" Ohm"); MQ303.init();
Serial.print("Iso_butano: ");Serial.print(Iso_butano,2);Serial.println(" ppm"); /***************************** MQ Init ********************************************/
Serial.print("Hydrogeno: ");Serial.print(Hydrogeno,2);Serial.println(" ppm"); //Input: setup flag, if this function are on setup will print the headers (Optional - Default value: False)
Serial.print("Ethanol: ");Serial.print(Ethanol,2);Serial.println(" ppm"); //Output: print on serial port the information about sensor and sensor readings
Serial.println("***************************"); //Remarks: Configure the pin of arduino as input.
/************************************************************************************/
MQ303.serialDebug(true);
}
void loop() {
MQ303.update(); // Update data, the arduino will be read the voltage on the analog pin
MQ303.readSensor(); // Sensor will read PPM concentration using the model and a and b values setted before or in the setup
MQ303.serialDebug(); // Will print the table on the serial port
delay(500); //Sampling frequency
} }

@ -9,6 +9,10 @@
modified 23 May 2019 modified 23 May 2019
by Miguel Califa by Miguel Califa
Updated library usage
modified 26 March 2020
by Miguel Califa
This example code is in the public domain. This example code is in the public domain.
*/ */
@ -17,63 +21,56 @@
#include <MQUnifiedsensor.h> #include <MQUnifiedsensor.h>
//Definitions //Definitions
#define placa "Arduino UNO"
#define Voltage_Resolution 5
#define pin A0 //Analog input 0 of your arduino #define pin A0 //Analog input 0 of your arduino
#define type 309 //MQ309 #define type "MQ-309" //MQ309
#define ADC_Bit_Resolution 10 // For arduino UNO/MEGA/NANO
//#define calibration_button 13 //Pin to calibrate your sensor //#define calibration_button 13 //Pin to calibrate your sensor
//Declare Sensor //Declare Sensor
MQUnifiedsensor MQ309(pin, type); MQUnifiedsensor MQ309(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);
//Variables
float H2, CH4, CO, Alcohol;
void setup() { void setup() {
//Init the serial port communication - to debug the library
Serial.begin(9600); //Init serial port Serial.begin(9600); //Init serial port
//init the sensor
/***************************** MQInicializar****************************************
Input: pin, type
Output:
Remarks: This function create the sensor object.
************************************************************************************/
MQ309.inicializar();
//pinMode(calibration_button, INPUT);
}
void loop() { //Set math model to calculate the PPM concentration and the value of constants
MQ309.update(); MQ309.setRegressionMethod("Exponential"); //_PPM = a*ratio^b
MQ309.setA(1000000); MQ309.setB(-4.01); // Configurate the ecuation values to get CO concentration
/* /*
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo: Exponential regression:
MQ309.setRL(10); GAS | a | b
H2 | 1532.9 | -1.951
CH4 | 980.24 | -1.68
CO | 1000000 | -4.01
ALCOHOL | 473622 | -3.647
*/ */
// Calibration setup
MQ309.setR0(10);
/* /*
//Rutina de calibracion - Uncomment if you need (setup too and header) //If the RL value is different from 10K please assign your RL value with the following method:
if(calibration_button) MQ309.setRL(10);
{
float R0 = MQ309.calibrate();
MQ309.setR0(R0);
}
*/ */
/***************************** MQReadSensor ****************************************
Input: Gas - Serial print flag
Output: Value in PPM
Remarks: This function use readPPM to read the value in PPM the gas in the air.
************************************************************************************/
//Read the sensor and print in serial port
//Lecture will be saved in lecture variable
//float lecture = MQ309.readSensor("", true); // Return CO concentration
// Options, uncomment where you need
H2 = MQ309.readSensor("H2"); // Return H2 concentration
CH4 = MQ309.readSensor("CH4"); // Return CH4 concentration
CO = MQ309.readSensor("CO"); // Return CO concentration
Alcohol = MQ309.readSensor("Alcohol"); // Return Alcohol concentration
Serial.println("***************************"); /***************************** MQ Init ********************************************/
Serial.println("Lectures for MQ-309"); //Remarks: Configure the pin of arduino as input.
Serial.print("Volt: ");Serial.print(MQ309.getVoltage(false));Serial.println(" V"); /************************************************************************************/
Serial.print("R0: ");Serial.print(MQ309.getR0());Serial.println(" Ohm"); MQ309.init();
Serial.print("H2: ");Serial.print(H2,2);Serial.println(" ppm"); /***************************** MQ Init ********************************************/
Serial.print("CH4: ");Serial.print(CH4,2);Serial.println(" ppm"); //Input: setup flag, if this function are on setup will print the headers (Optional - Default value: False)
Serial.print("CO: ");Serial.print(CO,2);Serial.println(" ppm"); //Output: print on serial port the information about sensor and sensor readings
Serial.print("Alcohol: ");Serial.print(Alcohol,2);Serial.println(" ppm"); //Remarks: Configure the pin of arduino as input.
Serial.println("***************************"); /************************************************************************************/
MQ309.serialDebug(true);
}
void loop() {
MQ309.update(); // Update data, the arduino will be read the voltage on the analog pin
MQ309.readSensor(); // Sensor will read PPM concentration using the model and a and b values setted before or in the setup
MQ309.serialDebug(); // Will print the table on the serial port
delay(500); //Sampling frequency
} }
Loading…
Cancel
Save