MQ4 && MQ8 PPM data


I’m using this working library to extract H2 & Alcohol in PPM from sensors.

I only need the PPM for my project as I want to send this as an osc message.
But the code of the library is made up so I can only use the whole data table instead of the ppm.

This is the code:

  MQUnifiedsensor Library - reading an MQ8

  Demonstrates the use a MQ8 sensor.
  Library originally added 01 may 2019
  by Miguel A Califa, Yersson Carrillo, Ghiordy Contreras, Mario Rodriguez
  Added example
  modified 23 May 2019
  by Miguel Califa 

  Updated library usage
  modified 26 March 2020
  by Miguel Califa 

  Please take care, arduino A0 pin represent the analog input configured on #define pin

 This example code is in the public domain.


//Include the library
#include <MQUnifiedsensor.h>

#define placa "Arduino UNO"
#define Voltage_Resolution 5
#define pin A0 //Analog input 0 of your arduino
#define type "MQ-8" //MQ8
#define ADC_Bit_Resolution 10 // For arduino UNO/MEGA/NANO
#define RatioMQ8CleanAir 70   //RS / R0 = 70 ppm  
//#define calibration_button 13 //Pin to calibrate your sensor

//Declare Sensor
MQUnifiedsensor MQ8(placa, Voltage_Resolution, ADC_Bit_Resolution, pin, type);

void setup() {
  //Init the serial port communication - to debug the library
  Serial.begin(9600); //Init serial port

  //Set math model to calculate the PPM concentration and the value of constants
  MQ8.setRegressionMethod(1); //_PPM =  a*ratio^b
  MQ8.setA(976.97); MQ8.setB(-0.688); // Configurate the ecuation values to get H2 concentration

    Exponential regression:
  GAS     | a      | b
  H2      | 976.97  | -0.688
  LPG     | 10000000 | -3.123
  CH4     | 80000000000000 | -6.666
  CO      | 2000000000000000000 | -8.074
  Alcohol | 76101 | -1.86
  /*****************************  MQ Init ********************************************/ 
  //Remarks: Configure the pin of arduino as input.
    //If the RL value is different from 10K please assign your RL value with the following method:
  /*****************************  MQ CAlibration ********************************************/ 
  // Explanation: 
  // In this routine the sensor will measure the resistance of the sensor supposing before was pre-heated
  // and now is on clean air (Calibration conditions), and it will setup R0 value.
  // We recomend execute this routine only on setup or on the laboratory and save on the eeprom of your arduino
  // This routine not need to execute to every restart, you can load your R0 if you know the value
  // Acknowledgements:
  Serial.print("Calibrating please wait.");
  float calcR0 = 0;
  for(int i = 1; i<=10; i ++)
    MQ8.update(); // Update data, the arduino will be read the voltage on the analog pin
    calcR0 += MQ8.calibrate(RatioMQ8CleanAir);
  Serial.println("  done!.");
  if(isinf(calcR0)) {Serial.println("Warning: Conection issue founded, R0 is infite (Open circuit detected) please check your wiring and supply"); while(1);}
  if(calcR0 == 0){Serial.println("Warning: Conection issue founded, R0 is zero (Analog pin with short circuit to ground) please check your wiring and supply"); while(1);}
  /*****************************  MQ CAlibration ********************************************/ 

void loop() {
  MQ8.update(); // Update data, the arduino will be read the voltage on the analog pin
  MQ8.readSensor(); // Sensor will read PPM concentration using the model and a and b values setted before or in the setup
  MQ8.serialDebug(); // Will print the table on the serial port !!!!!!!!!!!!!!!!! this is the table !!!!!
  delay(500); //Sampling frequency

This is the library:
From 63 till 103 is the part that prints the table. I want to get the _PPM alone in my loop so I can add it to my osc message.

Library link

I tried several things but nothing gets the _PPM message in my SerialPrint and or OSCmessage