Updated examples to MQ-4

This commit is contained in:
miguel5612 2020-03-26 12:37:12 -05:00
parent 3b578869ad
commit 1311d9446d
3 changed files with 59 additions and 59 deletions

View File

@ -31,9 +31,6 @@
//Declare Sensor //Declare Sensor
MQUnifiedsensor MQ2(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type); MQUnifiedsensor MQ2(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);
//Variables
float CH4, LPG, CO, Alcohol, Hexane, Benzine;
void setup() { void setup() {
//Init the serial port communication - to debug the library //Init the serial port communication - to debug the library
Serial.begin(9600); //Init serial port Serial.begin(9600); //Init serial port

View File

@ -31,9 +31,6 @@
//Declare Sensor //Declare Sensor
MQUnifiedsensor MQ3(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type); MQUnifiedsensor MQ3(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);
//Variables
float CH4, LPG, CO, Alcohol, Hexane, Benzine;
void setup() { void setup() {
//Init the serial port communication - to debug the library //Init the serial port communication - to debug the library
Serial.begin(9600); //Init serial port Serial.begin(9600); //Init serial port
@ -41,7 +38,17 @@ void setup() {
//Set math model to calculate the PPM concentration and the value of constants //Set math model to calculate the PPM concentration and the value of constants
MQ3.setRegressionMethod("Exponential"); //_PPM = a*ratio^b MQ3.setRegressionMethod("Exponential"); //_PPM = a*ratio^b
MQ3.setA(4.8387); MQ3.setB(-2.68); // Configurate the ecuation values to get Benzene concentration MQ3.setA(4.8387); MQ3.setB(-2.68); // Configurate the ecuation values to get Benzene concentration
/*
Exponential regression:
Gas | a | b
LPG | 44771 | -3.245
CH4 | 2*10^31| 19.01
CO | 521853 | -3.821
Alcohol| 0.3934 | -1.504
Benzene| 4.8387 | -2.68
Hexane | 7585.3 | -2.849
*/
// Calibration setup // Calibration setup
MQ3.setR0(3.86018237); MQ3.setR0(3.86018237);

View File

@ -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,65 +21,57 @@
#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 4 //MQ4 #define type "MQ-4" //MQ4
#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 MQ4(pin, type); MQUnifiedsensor MQ4(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);
//Variables
float CH4, LPG, CO, Alcohol, smoke;
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**************************************** //Set math model to calculate the PPM concentration and the value of constants
Input: pin, type MQ4.setRegressionMethod("Exponential"); //_PPM = a*ratio^b
Output: MQ4.setA(4.8387); MQ4.setB(-2.68); // Configurate the ecuation values to get Benzene concentration
Remarks: This function create the sensor object. /*
************************************************************************************/ Exponential regression:
MQ4.inicializar(); Gas | a | b
//pinMode(calibration_button, INPUT); LPG | 3811.9 | -3.113
CH4 | 1012.7 | -2.786
CO | 200000000000000 | -19.05
Alcohol| 60000000000 | -14.01
smoke | 30000000 | -8.308
*/
// Calibration setup
MQ4.setR0(3.86018237);
/*
//If the RL value is different from 10K please assign your RL value with the following method:
MQ4.setRL(10);
*/
/***************************** MQ Init ********************************************/
//Remarks: Configure the pin of arduino as input.
/************************************************************************************/
MQ4.init();
/***************************** MQ Init ********************************************/
//Input: setup flag, if this function are on setup will print the headers (Optional - Default value: False)
//Output: print on serial port the information about sensor and sensor readings
//Remarks: Configure the pin of arduino as input.
/************************************************************************************/
MQ4.serialDebug(true);
} }
void loop() { void loop() {
MQ4.update(); // Update data, the arduino will be read the voltaje in the analog pin MQ4.update(); // Update data, the arduino will be read the voltage on the analog pin
/* MQ4.readSensor(); // Sensor will read PPM concentration using the model and a and b values setted before or in the setup
//Si el valor de RL es diferente a 10K por favor asigna tu valor de RL con el siguiente metodo: MQ4.serialDebug(); // Will print the table on the serial port
MQ4.setRL(10); delay(500); //Sampling frequency
*/ }
/*
//Rutina de calibracion - Uncomment if you need (setup too and header)
if(calibration_button)
{
float R0 = MQ4.calibrate();
MQ4.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 = MQ4.readSensor("", true); // Return CH4 concentration
// Options, uncomment where you need
CH4 = MQ4.readSensor("CH4"); // Return CH4 concentration
LPG = MQ4.readSensor("LPG"); // Return LPG concentration
CO = MQ4.readSensor("CO"); // Return CO concentration
Alcohol = MQ4.readSensor("Alcohol"); // Return Alcohol concentration
smoke = MQ4.readSensor("smoke"); // Return smoke concentration
Serial.println("***************************");
Serial.println("Lectures for MQ-4");
Serial.print("Volt: ");Serial.print(MQ4.getVoltage(false));Serial.println(" V");
Serial.print("R0: ");Serial.print(MQ4.getR0());Serial.println(" Ohm");
Serial.print("CH4: ");Serial.print(CH4,2);Serial.println(" ppm");
Serial.print("LPG: ");Serial.print(LPG,2);Serial.println(" ppm");
Serial.print("CO: ");Serial.print(CO,2);Serial.println(" ppm");
Serial.print("Alcohol: ");Serial.print(Alcohol,2);Serial.println(" ppm");
Serial.print("smoke: ");Serial.print(smoke,2);Serial.println(" ppm");
Serial.println("***************************");
}