Skip to Content

Sensor de gas VOC MEMS Fermion GM-502B con Arduino

Sensor de gas VOC MEMS Fermion GM-502B con Arduino

El sensor de gas analógico Fermion VOC de DFRobot es un módulo compacto para la detección de compuestos orgánicos volátiles (VOC) diseñado para integrarse con plataformas de microcontroladores como Arduino y ESP32.

Emplea tecnología de sistemas microelectromecánicos (MEMS) para proporcionar alta sensibilidad a una variedad de VOC, incluyendo etanol, formaldehído y tolueno en un rango aproximado de 1 a 500 ppm.

En este tutorial aprenderás cómo medir concentraciones de VOC y activar una alarma o hacer parpadear un LED si la concentración de VOC es demasiado alta.

Partes necesarias

Necesitarás un sensor de gas Fermion VOC de DFRobot. Para el microcontrolador, usé un Arduino Uno para este proyecto, pero cualquier otro Arduino o ESP32 también funcionará.

Para nuestro sistema de alarma de gas necesitaremos un LED o un zumbador, que puedes conseguir en Amazon. También usaremos un OLED para mostrar los valores medidos de VOC en una pantalla. A continuación, listé el pequeño OLED SSD1306 128×64 que usé.

Sensor de gas MEMS Fermion VOC

Zumbador pasivo

Kit de resistencias y LED

OLED display

Pantalla OLED

Arduino

Arduino Uno

USB Data Sync cable Arduino

Cable USB para Arduino UNO

Dupont wire set

Juego de cables Dupont

Half_breadboard56a

Protoboard

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Hardware del sensor de gas Fermion VOC

El sensor de gas analógico Fermion VOC de DFRobot es una placa compacta diseñada para detectar compuestos orgánicos volátiles (VOC), como etanol, formaldehído, tolueno y otros.

Está basado en el chip GM-502B, que utiliza tecnología de sistemas microelectromecánicos (MEMS) para lograr un factor de forma pequeño con bajo consumo de energía y características de respuesta rápida.

La placa mide aproximadamente 13 mm por 13 mm con un grosor de unos 2.5 mm. La imagen a continuación muestra la placa con el sensor GM-502B en la parte superior y un regulador de voltaje debajo:

Fermion VOC Analog Gas Sensor Board
Placa del sensor de gas analógico Fermion VOC

El módulo está destinado a la detección cualitativa de concentraciones de VOC más que a un análisis cuantitativo preciso. Ten en cuenta que DFRobot también ofrece sensores calibrados, pero son más grandes y costosos (link).

Características eléctricas y salida

El sensor funciona con un rango de voltaje de alimentación de 3.3 V a 5 V, que coincide con los niveles lógicos de la mayoría de las placas de desarrollo Arduino y ESP32. Cuando está alimentado, el dispositivo consume menos de 20 mA de corriente operativa y genera muy poco auto-calentamiento debido a su diseño MEMS.

La concentración de gas se representa mediante una salida de voltaje analógico que varía en proporción a la cantidad de VOC detectada en el aire circundante. El voltaje de salida está en el rango 0…VCC.

Rango de detección y sensibilidad

El sensor puede detectar VOC comunes como etanol, formaldehído y tolueno en un rango de 1 ppm a 500 ppm. La sensibilidad se cuantifica por la relación de resistencia en aire limpio (R0) a la resistencia en una concentración conocida de VOC (Rs), con una especificación típica de R0/Rs ≥ 3 a una concentración de etanol de 50 ppm. Como se mencionó antes, la salida del sensor no es un valor calibrado de concentración.

Especificaciones ambientales y de vida útil

El elemento sensor está diseñado para operar en un rango de temperatura ambiente de aproximadamente -10 °C a +50 °C y humedad relativa de 15 % a 90 % (sin condensación). El fabricante especifica una vida útil de al menos cinco años cuando el sensor se usa en condiciones atmosféricas normales sin contaminación excesiva.

Debido a que los sensores VOC responden a una amplia clase de gases orgánicos, factores ambientales como la humedad, temperatura y la presencia de otros gases también pueden afectar la salida.

Pinout

Físicamente, la placa expone tres pines para conexión: salida analógica (A), voltaje de alimentación (VCC) y tierra (GND). La imagen a continuación muestra el pinout de la placa:

Pinout of VOC Analog Gas Sensor Board
Pinout de la placa del sensor de gas analógico VOC

Esquemas

La siguiente imagen muestra el esquema de la placa del sensor de gas Fermion VOC:

Esquema del sensor de gas analógico Fermion VOC (source)

Puedes ver el regulador de voltaje y el chip sensor GM-502B con la resistencia de carga de 20K en la salida VOUT.

Preparación

El sensor de gas viene con una película protectora que debes retirar. Si miras la parte superior del sensor, verás una lámina amarilla cubriendo los orificios de entrada de aire. Usa unas pinzas para despegar la película. Las fotos a continuación muestran el sensor con la película protectora completa, a medio retirar y completamente retirada:

Peeling of protective film
Despegado de la película protectora

Ten en cuenta que el sensor requiere un período de calentamiento para alcanzar la estabilidad operativa. Esto puede tomar varios minutos en el primer uso hasta que las lecturas se estabilicen. Si no has usado el sensor por mucho tiempo, se recomienda dejarlo funcionando entre 24 y 72 horas:

Preheating times for GM-502B VOC Sensor
Tiempos de precalentamiento para el sensor VOC GM-502B (source)

Especificación técnica

La siguiente tabla resume la especificación técnica del sensor de gas Fermion VOC:

Parámetro Especificación
Tipo de sensor Sensor de gas VOC basado en MEMS
Gases objetivo Compuestos orgánicos volátiles (p. ej., etanol, formaldehído, tolueno)
Rango de detección Aproximadamente 1 ppm a 500 ppm
Tipo de salida Salida de voltaje analógico
Voltaje de operación 3.3 V a 5 V DC
Corriente de operación < 20 mA
Resistencia de carga (RL) 20 kΩ (a bordo)
Temperatura de operación -10 °C a +50 °C
Humedad de operación 15 % a 90 % HR (sin condensación)
Característica de respuesta El voltaje de salida aumenta con la concentración creciente de VOC
Tiempo de calentamiento Varios minutos (se requiere estabilización inicial)
Vida útil esperada ≥ 5 años (bajo condiciones normales)
Dimensiones Aprox. 13 mm × 13 mm × 2.5 mm (elemento sensor)
Pines de interfaz VCC, GND, salida analógica

Y aquí tienes un enlace a la hoja de datos del GM-502B con más datos técnicos:

Sensor de gas Fermion VOC versus sensor de gas MQ-135

Una alternativa común al sensor de gas Fermion VOC es el más antiguo sensor MQ-135 MQ-135. A continuación, una breve comparación de ambos sensores.

Tecnología y principio de detección

El sensor Fermion VOC usa tecnología MEMS (sistemas microelectromecánicos) que responde a compuestos orgánicos volátiles cambiando la resistencia interna y produciendo un voltaje analógico proporcional. Su diseño está optimizado para bajo consumo, tamaño compacto y detección cualitativa de VOC en el rango de 1 a 500 ppm, con mínimo auto-calentamiento y rápida recuperación.

En contraste, el MQ-135 es un sensor de semiconductor de óxido metálico (MOS) que incorpora una capa sensible calentada de dióxido de estaño (SnO₂). El sensor muestra una amplia sensibilidad cruzada a gases como amoníaco, benceno, compuestos relacionados con CO₂ y humo. Los sensores MOS como el MQ-135 tienen un consumo mucho mayor y requieren un período de calentamiento más largo antes de que las lecturas se estabilicen.

Condiciones de operación y consumo

El sensor Fermion VOC opera de 3.3 V a 5 V con corriente muy baja (< 20 mA), lo que lo hace adecuado para sistemas embebidos de bajo consumo y monitoreo continuo sin un calentador separado.

El MQ-135, sin embargo, normalmente funciona a unos 5 V y usa una corriente significativa para el calentador (a menudo ~100–200 mA o más), lo que incrementa el consumo total.

Gases objetivo y sensibilidad

Ambos sensores responden a VOC, pero el Fermion está específicamente ajustado para detectar VOC típicos en interiores como etanol, formaldehído y tolueno, y puede proporcionar una respuesta analógica relativamente consistente dentro de su rango especificado.

El MQ-135, en cambio, tiene sensibilidad amplia a muchos gases incluyendo amoníaco, humo y varios contaminantes del aire; esto puede ser una ventaja para indicación general de calidad del aire, pero la falta de selectividad dificulta distinguir un gas de otro o calibrar para concentraciones precisas.

Calibración y estabilidad

Los sensores basados en MEMS como el Fermion tienden a estabilizarse más rápido, con un tiempo mínimo de “quemado” y son menos afectados por la temperatura ambiente porque no dependen de una cámara calentada.

Los sensores MQ-135 suelen requerir un pre-quemado (a menudo 24–48 horas) y recalibración regular para resultados estables, y sus lecturas se ven fuertemente influenciadas por temperatura y humedad.

Conexión del sensor de gas VOC al Arduino UNO

Conectar el sensor a un Arduino UNO es sencillo. Conecta VCC a 5V (o 3.3V), GND a tierra y A a la entrada analógica A0 como se muestra a continuación:

Connecting VOC Gas Sensor to Arduino UNO
Conexión del sensor de gas VOC al Arduino UNO

Ejemplos de código

Lectura de concentración de gas

En este primer ejemplo simplemente leemos los valores medidos por el sensor de gas y los imprimimos en el Monitor Serial:

void setup() {
  Serial.begin(9600);
}

void loop() {
  int val = analogRead(A0);
  Serial.println(val);
  delay(100);
}

Verás valores entre 0 y 1023, dependiendo de la cantidad de gases VOC en el ambiente.

Si el sensor no se ha calentado completamente, verás una secuencia de valores que disminuye continuamente en el Monitor Serial:

Después de varios minutos las mediciones se estabilizarán. En mi caso alrededor de un valor de 643:

Si luego expones el sensor a perfume u otro gas VOC, verás un aumento repentino en el valor medido:

Como el sensor no está calibrado, no puedes usarlo para medir concentraciones reales en ppm (partes por millón) o mg/m 3 de gases VOC. Sin embargo, puedes usarlo para construir una alarma de gas, que haremos en la siguiente sección.

Alarma de gas con LED

El siguiente código implementa una alarma de gas simple. Enciende un LED si el valor medido de VOC supera un umbral predefinido de 700:

byte sensorPin = A0;
byte ledPin = 13;
int threshold = 700;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  int val = analogRead(sensorPin);
  digitalWrite(ledPin, val > threshold ? HIGH: LOW);
  delay(100);
}

Conecté el LED con una resistencia de 220 Ohm a GPIO 13 como LED de alarma, como se muestra a continuación:

Connecting alarm LED to Arduino Uno
Conexión del LED de alarma al Arduino UNO

Ten en cuenta que para un sistema de alarma confiable puede que quieras añadir también un sensor de temperatura y uno de humedad, ya que las lecturas del sensor de gas se ven afectadas por la temperatura y la humedad. La figura a continuación muestra la dependencia de la resistencia del sensor, que es proporcional al voltaje que lee el Arduino, con la humedad relativa:

Typical temperature/humidity characteristics
Características típicas de temperatura/humedad (source)

Alarma de gas con zumbador pasivo

En lugar de un LED también puedes activar un zumbador como señal de alarma. En el siguiente código se activa un zumbador pasivo si el valor medido de VOC supera el umbral:

byte sensorPin = A0;
byte buzzerPin = 11;
int threshold = 700;

void setup() {
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  int val = analogRead(sensorPin);
  if (val > threshold) {
     tone(buzzerPin, 500);
  } else {
    noTone(buzzerPin);
  }
  delay(100);
}

La siguiente imagen muestra cómo añadir el zumbador al circuito. Comienza conectando el terminal negativo del zumbador al GND del Arduino (cable negro). Luego conecta el terminal positivo a través de una resistencia de 100Ω al GPIO 11 (cable rojo):

Connecting alarm buzzer to Arduino UNO
Conexión del zumbador de alarma al Arduino UNO

Asegúrate de que la polaridad del zumbador sea correcta y que sea un zumbador pasivo conectado a un puerto GPIO con capacidad PWM. Para más información, consulta el tutorial Active and Passive Piezo Buzzers with Arduino.

Si tienes un zumbador activo, debes usar el código de alarma con LED anterior, ya que no funcionará correctamente con el comando tone().

Mostrar concentración de VOC en OLED

En este último ejemplo mostramos los valores medidos de VOC en un pequeño OLED. El código imprime «VOC» y el valor en el centro de la pantalla y actualiza el valor mostrado cada 100 ms:

#include "Adafruit_SSD1306.h"  // Version 2.5.16

Adafruit_SSD1306 oled(128, 64, &Wire, -1);

void setup() {
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  oled.setTextColor(WHITE, BLACK);
  oled.clearDisplay();
}

void loop() {
  static char text[30];

  int val = analogRead(A0);

  oled.setTextSize(2);
  oled.setCursor(45, 10);  
  oled.print("VOC");

  sprintf(text, " %d ", val);
  oled.setTextSize(2);
  oled.setCursor(35, 40);
  oled.print(text);

  oled.display();

  delay(100);
}

Ten en cuenta que tendrás que instalar la biblioteca Adafruit_SSD1306 para controlar el OLED. Puedes instalarla a través del Library Manager como de costumbre:

Adafruit_SSD1306 library installed in Library Manager
Biblioteca Adafruit_SSD1306 instalada en Library Manager

Conectar el OLED al Arduino es fácil. Conecta SDA y SCL del OLED a los pines A4 y A5 del Arduino. En cuanto a la alimentación: dado que el OLED puede funcionar a 5V, podemos compartir las líneas de alimentación. Conecta VCC a 5V y GND a GND. La imagen a continuación muestra el cableado completo:

Connecting OLED to Arduino Uno
Conexión del OLED al Arduino UNO

Si necesitas ayuda con el OLED, echa un vistazo al tutorial Use SSD1306 I2C OLED Display With Arduino.

Conclusión

En este tutorial aprendiste cómo usar el sensor de gas Fermion VOC con un Arduino UNO para medir gases compuestos orgánicos volátiles (VOC). El sensor también puede usarse fácilmente con otros microcontroladores como un ESP32.

Los sensores de gas MEMS tienen la ventaja de ser pequeños, consumir muy poca energía (< 20mA) y tener un tiempo de calentamiento corto. Sin embargo, aún se ven afectados por la temperatura y humedad ambiente.

Además, el sensor de gas Fermion VOC usado aquí no está calibrado y por lo tanto no puede usarse directamente para medir concentraciones reales de VOC en unidades ppm, por ejemplo. En teoría, podrías calibrar el sensor tú mismo, pero en la práctica sería difícil. DFRobot también ofrece sensores calibrados, pero son más grandes y costosos (link).

Ten en cuenta que existe toda una serie de diferentes sensores MEMS disponibles. Para una visión general, consulta el artículo Review of the DFRobot Fermion MEMS Gas Sensor Series y para detalles específicos nuestras publicaciones dedicadas:

Si tienes alguna pregunta, no dudes en dejarla en la sección de comentarios.

¡Feliz bricolaje! 😉