Trouble getting consistent readings from analog gas sensor (MQ series)

Hi everyone! I’m working on a project using the MQ-135 gas sensor to measure air quality, but I’m running into issues with inconsistent analog readings. I’m using a 10-bit ADC on an Arduino Uno and reading values every second. Even after preheating the sensor as recommended, the readings still fluctuate quite a bit in a stable environment. I’ve tried using a simple moving average to smooth it out, but it still feels noisy.

Is there a better filtering method or circuit setup to get more stable readings? Also, would switching to an external ADC with better resolution make a significant difference for this kind of sensor?

Appreciate any tips—thanks!

Are you able to put the sensor in a sealed container and then see if you still get fluctuations?

1 Like

Over 24 hours of preheating is usually required, and possibly more.

Details are given in this electronic nose project, which you might find informative:

Since the MQ sensors are not calibrated, stable readings are not particularly meaningful. The sensors are intended mostly for alerting about changes in the environment.

1 Like