Updated alcohol on PPM

This commit is contained in:
miguel5612 2020-03-26 14:17:28 -05:00
parent b0f47547a5
commit 0b6bfd3863

View File

@ -1,5 +1,5 @@
/* /*
MQUnifiedsensor Library - implementing an alcoholimeter MQUnifiedsensor Library - reading an MQ3
Demonstrates the use a MQ3 sensor. Demonstrates the use a MQ3 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,49 +21,53 @@
#include <MQUnifiedsensor.h> #include <MQUnifiedsensor.h>
//Definitions //Definitions
#define pin A3 //Analog input 0 of your arduino #define placa "Arduino UNO"
#define type 3 //MQ3 #define Voltage_Resolution 5
#define pin A0 //Analog input 0 of your arduino
#define type "MQ-3" //MQ3
#define ADC_Bit_Resolution 10 // For arduino UNO/MEGA/NANO
//#define calibration_button 13 //Pin to calibrate your sensor
double alcoholPPM = 0;
//Declare Sensor //Declare Sensor
MQUnifiedsensor MQ3(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);
MQUnifiedsensor MQ3(pin, type);
void setup() { void setup() {
Serial.begin(9600); //Init the serial port communication - to debug the library
//init the sensor Serial.begin(9600); //Init serial port
/***************************** MQInicializar****************************************
Input: pin, type
Output:
Remarks: This function create the sensor object.
************************************************************************************/
MQ3.inicializar();
float RoCleanAir = MQ3.calibrate(); //Set math model to calculate the PPM concentration and the value of constants
MQ3.setRegressionMethod("Exponential"); //_PPM = a*ratio^b
MQ3.setA(0.3934); MQ3.setB(-1.504); // Configurate the ecuation values to get Alcohol 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
*/
Serial.print("R0 preconfigurado: "); // Calibration setup
Serial.println(MQ3.getR0()); MQ3.setR0(3.86018237);
Serial.print("R0 clean air: ");
Serial.println(RoCleanAir); /*
//MQ3.setR0(RoCleanAir); //If the RL value is different from 10K please assign your RL value with the following method:
MQ3.setRL(10);
*/
/***************************** MQ Init ********************************************/
//Remarks: Configure the pin of arduino as input.
/************************************************************************************/
MQ3.init();
} }
void loop() { void loop() {
/***************************** MQReadSensor **************************************** MQ3.update(); // Update data, the arduino will be read the voltage on the analog pin
Input: Gas - Serial print flag alcoholPPM = MQ3.readSensor(); // Sensor will read PPM concentration using the model and a and b values setted before or in the setup
Output: Value in PPM Serial.print("Alcohol now (PPM): ");
Remarks: This function use readPPM to read the value in PPM the gas in the air. Serial.println(alcoholPPM);
************************************************************************************/ delay(500); //Sampling frequency
//Read the sensor and print in serial port
//Lecture will be saved in lecture variable
int lecture = MQ3.readSensor("", true); // Return Alcohol concentration
/*
int gL = lecture/1000;
Serial.print("Alcohol ppm measured: ");
Serial.print(lecture);
Serial.println("ppm");
Serial.print("Alcohol gL measured: ");
Serial.print(gL);
Serial.println("g/L");
*/
} }