
Midiendo gases contaminantes con el sensor MiCS-4514 y Arduino o keyestudio UNO
Hace unos días estuvimos construyendo nuestra propia estación de calidad del aire EducaCont. Conseguimos medir partículas PM2.5 utilizando el sensor Sharp GP2Y1014AU0F y descubrimos algo muy interesante: el aire que respiramos contiene mucha más información de la que parece.
Hoy vamos a dar un paso más.
Vamos a utilizar el sensor MiCS-4514, un sensor profesional capaz de detectar gases contaminantes presentes en el ambiente. Este mismo sensor se utiliza en estaciones de calidad del aire, proyectos IoT y sistemas de monitorización ambiental.
Y sí, también vamos a hacer una de las cosas favoritas de cualquier científico: acercar cosas raras al sensor para ver qué ocurre.
¿Qué es el sensor MiCS-4514?
El MiCS-4514 es un sensor de gases fabricado específicamente para detectar distintos contaminantes atmosféricos.
En realidad incorpora dos sensores en el mismo encapsulado:
- Un sensor orientado a gases reductores (CO).
- Un sensor orientado a gases oxidantes (NO₂ y otros NOx).
Por eso dispone de dos salidas analógicas independientes:
RED
NOX
que podremos leer desde Arduino.
¿Qué mide exactamente?
CO
CO significa Monóxido de Carbono.
Es un gas muy peligroso producido por combustiones incompletas.
Por ejemplo:
- Motores.
- Calderas.
- Estufas.
- Incendios.
NO₂
NO₂ significa Dióxido de Nitrógeno.
Es uno de los principales contaminantes urbanos.
Se genera principalmente por:
- Vehículos.
- Industrias.
- Centrales térmicas.
Es uno de los gases que suelen utilizarse para evaluar la calidad del aire de una ciudad.
Material necesario
- Arduino UNO o compatible.
- Sensor MiCS-4514.
- Cables Dupont.
- Arduino IDE.

Conexión del sensor
El módulo utilizado dispone de los siguientes pines:
VCC
GND
RED
NOX
PRE
Las conexiones son las siguientes:
| Sensor | Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| PRE | D8 |
| NOX | A0 |
| RED | A1 |
¿Para qué sirve el pin PRE?
Esta fue una de las cosas más curiosas que descubrimos durante nuestras pruebas.
El MiCS-4514 incorpora internamente un pequeño calentador.
Antes de empezar a medir correctamente necesita calentarse durante un tiempo.
Por eso el pin PRE se conecta a una salida digital.
Cuando activamos PRE, el sensor comienza a alcanzar su temperatura de funcionamiento.
Es parecido a cuando arrancamos un coche en invierno y necesitamos esperar unos segundos antes de salir.
Programa completo
#define PRE_PIN 8
#define NOX_PIN A0
#define RED_PIN A1
void setup() {
pinMode(PRE_PIN, OUTPUT);
Serial.begin(9600);
Serial.println("Calentando sensor...");
digitalWrite(PRE_PIN, HIGH);
delay(30000);
digitalWrite(PRE_PIN, LOW);
Serial.println("Iniciando medidas...");
}
void loop() {
int nox = analogRead(NOX_PIN);
int co = analogRead(RED_PIN);
Serial.print("NOX = ");
Serial.print(nox);
Serial.print(" CO = ");
Serial.println(co);
delay(1000);
}
Explicación del programa
Definición de pines
#define PRE_PIN 8
#define NOX_PIN A0
#define RED_PIN A1
Indicamos dónde está conectado cada terminal del sensor.
Calentamiento inicial
digitalWrite(PRE_PIN, HIGH);
delay(30000);
Activamos el calentador interno durante 30 segundos.
Aunque el sensor empieza a funcionar antes, las medidas suelen mejorar si se deja calentando varios minutos.
Lectura de datos
int nox = analogRead(NOX_PIN);
int co = analogRead(RED_PIN);
Leemos las dos señales analógicas.
Arduino devuelve valores comprendidos entre:
0 y 1023
Envío al monitor serie
Serial.print("NOX = ");
Serial.print(nox);
Serial.print(" CO = ");
Serial.println(co);
Mostramos los resultados en pantalla.
Nuestra primera sorpresa
Cuando realizamos las primeras pruebas obtuvimos algo parecido a esto:
NOX = 4
CO = 37
Al principio pensamos que algo estaba mal.
Pero después acercamos un rotulador permanente al sensor.
Y ocurrió esto:
CO = 8000
Bueno… no exactamente 8000 en el valor analógico, pero sí observamos una subida enorme en la lectura relacionada con el canal CO.
El sensor estaba funcionando perfectamente.
Lo que ocurría es que los disolventes del rotulador afectan mucho más al canal RED (CO) que al canal NOX.
Experimentos seguros para el aula
Rotulador permanente
Acercar un rotulador abierto.
Normalmente provoca cambios muy visibles.
Colonia
Una pequeña pulverización cerca del sensor.
El canal CO suele reaccionar rápidamente.
Cítricos
Pelar una naranja cerca del sensor.
Los compuestos aromáticos pueden modificar las lecturas.
Respiración
Acercar la respiración durante unos segundos.
Observar si aparecen cambios.
¿Y por qué NOX apenas cambia?
Esta fue una pregunta muy interesante.
Los vapores de un rotulador o una colonia no contienen cantidades significativas de dióxido de nitrógeno.
Por eso el canal NOX apenas se mueve.
Para detectar NO₂ de forma apreciable habría que acercarlo a fuentes de contaminación reales, algo que no vamos a hacer en el aula por motivos de seguridad.
Lo que hemos aprendido
En esta práctica hemos descubierto algo muy importante:
La contaminación del aire no es una única cosa.
Existen muchos tipos de contaminantes diferentes y cada sensor responde de forma distinta.
Mientras que el sensor Sharp PM2.5 detectaba partículas en suspensión, el MiCS-4514 nos permite investigar la presencia de determinados gases.
Poco a poco vamos convirtiendo nuestra EducaCont en una auténtica estación de monitorización ambiental capaz de medir temperatura, humedad, partículas y gases contaminantes.
Y todo ello utilizando Arduino, programación y mucha curiosidad científica.
Etiqueta:arduino, keyestudio, mics-4514, montesteam



