You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MQSensorsLib/src/MQUnifiedsensor.h

57 lines
1.5 KiB
C

#ifndef MQUnifiedsensor_H
#define MQUnifiedsensor_H
#include <Arduino.h>
#include <stdint.h>
6 years ago
/***********************Software Related Macros************************************/
#define ADC_RESOLUTION 10 // for 10bit analog to digital converter.
#define retries 5
#define retry_interval 20
6 years ago
class MQUnifiedsensor
{
public:
MQUnifiedsensor(String Placa = "Arduino", double Voltage_Resolution = 5, int pin = 1, String type = "CUSTOM MQ");
//Functions to set values
void init();
void update();
void setR0(double R0 = 10);
void setRL(double RL = 10);
void setA(double a);
void setB(double b);
void setRegressionMethod(String regressionMethod);
void setVoltResolution(double voltage_resolution = 5);
void serialDebug(bool onSetup = false); //Show on serial port information about sensor
//user functions
float calibrate();
float readSensor();
//get function for info
double getR0();
double getRL();
double getVoltage(int read = true);
6 years ago
double stringToDouble(String & str);
private:
/************************Private vars************************************/
byte _pin;
byte _firstFlag = false;
byte _VOLT_RESOLUTION = 5.0; // if 3.3v use 3.3
byte _ratioInCleanAir;
byte _RL = 10; //Value in KiloOhms
double _adc, _a, _b, _sensor_volt;
float _R0, RS_air, _ratio, _PPM, _RS_Calc;
String _type;
String _placa;
String _regressionMethod;
};
#endif //MQUnifiedsensor_H