upm  1.5.0
Sensor/Actuator repository for libmraa (v1.8.0)
Public Member Functions

API for the MQ6 LPG Gas Sensor. More...

Detailed Description

The MQ6 Gas Sensor module is useful for detecting LPG, iso-butane, propane, and LNG concentrations in the air. It has a detection range of 200-10000 ppm.

For optimum use, it requires calibration after a pre-heat time of at least 24 hours. See the datasheet for details.

main(int argc, char** argv)
// Attach gas sensor to Analog A0
upm::MQ6 sensor(0);
signal(SIGINT, sig_handler);
uint16_t buffer[128];
ctx.averageReading = 0;
ctx.runningAverage = 0;
ctx.averagedOver = 2;
// Infinite loop, ends when script is cancelled
// Repeatedly, take a sample every 2 microseconds;
// find the average of 128 samples; and
// print a running graph of asteriskss as averages
while (shouldRun) {
int len = sensor.getSampledWindow(2, 128, buffer);
if (len) {
int thresh = sensor.findThreshold(&ctx, 30, buffer, len);
sensor.printGraph(&ctx, 5);
if (thresh) {
// do something ....
cout << "Exiting" << endl;
return 0;

Public Member Functions

 MQ6 (int gasPin)
 ~MQ6 ()
std::string name ()
- Public Member Functions inherited from Gas
 Gas (int gasPin)
virtual ~Gas ()
virtual int getSampledWindow (unsigned int freqMS, int numberOfSamples, uint16_t *buffer)
virtual int findThreshold (thresholdContext *ctx, unsigned int threshold, uint16_t *buffer, int len)
virtual int getSampledData (thresholdContext *ctx)
virtual int getSample ()
virtual void printGraph (thresholdContext *ctx, uint8_t resolution)

Additional Inherited Members

- Protected Attributes inherited from Gas
mraa::Aio m_aio

Constructor & Destructor Documentation

MQ6 ( int  gasPin)

MQ6 constructor

gasPinAnalog pin where the sensor is connected
~MQ6 ( )

MQ6 destructor

Member Function Documentation

std::string name ( )

Returns the name of the sensor

Inheritance diagram for MQ6:
Inheritance graph
Collaboration diagram for MQ6:
Collaboration graph

The documentation for this class was generated from the following files: