Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Sensor de Calidad de Aire MQ-135: Detección de CO2, NH3, Alcohol y Más con Arduino

El MQ-135 es un sensor de gas semiconductor (MOX) de bajo coste para detección de calidad de aire. Sensible a: CO₂, NH₃ (amoniaco), alcohol (etanol), benceno, humo, CO y otros vapores orgánicos. No distingue gases individualmente: da señal combinada "contaminación". Salida analógica (A0) proporcional a concentración; salida digital (D0) con umbral ajustable por potenciómetro onboard. Alimentación: 5 V DC. Corriente: ~150 mA (calentador interno). Precalentado: 24–48 h primera vez, luego 5–10 min cada encendido. Rango detección: 10–1000 ppm (aprox.). Sensibilidad ajustable vía potenciómetro (D0). Encapsulado: 4 pines (VCC, GND, A0, D0). Ideal para monitores calidad aire interior, detectores de fugas, ventilación controlada, proyectos educativos. No es sensor CO₂ preciso (NDIR); para CO₂ exacto usa MH-Z19, SCD30, SGP30.

Pinout del MQ-135

PinNombreFunción
1VCC5 V DC
2GNDTierra
3A0Salida analógica (0–1023 en Arduino 10-bit)
4D0Salida digital (HIGH/LOW según umbral potenciómetro)

Principio de Funcionamiento (MOX)

Material semiconductor óxido metálico (SnO₂ típico) calentado internamente. En aire limpio, oxígeno se adsorbe en superficie → alta resistencia. Al exponerse a gases reductores (CO, alcohol, NH₃, etc.), reaccionan con oxígeno adsorbido → liberan electrones → resistencia baja → voltaje salida A0 sube. El calentador consume ~150 mA constante.

Conexión con Arduino

MQ-135           Arduino Uno
VCC      ──────── 5V
GND      ──────── GND
A0       ──────── A0 (pin analógico)
D0       ──────── D2 (opcional, digital)

Estabiliza 5 V: usa fuente externa o USB con buen amperaje. El calentador calienta el módulo → normal.

Código Arduino: Lectura Analógica Básica


const int MQ135_A0 = A0;
const int MQ135_D0 = 2;

void setup() {
  Serial.begin(9600);
  pinMode(MQ135_D0, INPUT);
  Serial.println("MQ-135 Precalentando... (5-10 min)");
}

void loop() {
  int raw = analogRead(MQ135_A0); // 0-1023
  float voltage = raw * (5.0 / 1023.0);
  int digital = digitalRead(MQ135_D0);

  Serial.print("Raw: ");
  Serial.print(raw);
  Serial.print(" | Voltaje: ");
  Serial.print(voltage, 2);
  Serial.print(" V | Digital (D0): ");
  Serial.println(digital ? "HIGH (Contaminado)" : "LOW (Limpio)");

  delay(1000);
}

Convertir a PPM (Aproximado) — Calibración R₀

La hoja de datos da curva Rs/Ro vs ppm. Rs = resistencia sensor en gas; Ro = resistencia en aire limpio (calibración). Fórmula genérica: ppm = a × (Rs/Ro)^b (a, b dependen del gas).

Pasos calibración Ro:

  1. Sensor en aire limpio (exterior, ventilado) tras precalentado 24–48 h.
  2. Mide voltaje A0 estable → calcula Rs = ((5.0 × R_load) / V_out) - R_load. R_load = resistencia de carga interna (~10–20 kΩ, ver datasheet). Simplificado: Rs ∝ (1023/raw - 1).
  3. Ese Rs en aire limpio = Ro. Guárdalo en código.

Ejemplo simplificado (solo tendencia, no ppm exactos):


float R0 = 76.5; // Valor calibrado en aire limpio (ajusta el tuyo)
float RL = 10.0; // Resistencia carga aprox (kΩ)

void loop() {
  int raw = analogRead(A0);
  if (raw == 0) return;
  float Vout = raw * (5.0 / 1023.0);
  float Rs = ((5.0 * RL) / Vout) - RL; // kΩ
  float ratio = Rs / R0;

  // Curva aproximada para CO2 (a=110.47, b=-2.86) - SOLO ORIENTATIVO
  float ppm = 110.47 * pow(ratio, -2.86);

  Serial.print("Ratio Rs/Ro: ");
  Serial.print(ratio);
  Serial.print(" | PPM estimado CO2: ");
  Serial.println(ppm);
  delay(2000);
}

Nota: Sin calibración de laboratorio y selectividad de gases, los ppm son estimaciones relativas. Útil para tendencias: "aire empeora/mejora".

Uso de Salida Digital (D0) — Alarma Umbral

Gira potenciómetro azul onboard: en aire limpio ajusta hasta que D0 cambie LOW→HIGH (o viceversa según módulo). Luego, en código:


if (digitalRead(MQ135_D0) == HIGH) {
  Serial.println("¡ALARMA: Calidad aire mala!");
  // Activar ventilador, buzzer, notificación...
}

Limitaciones Críticas

Comparativa: MQ-135 vs Sensores CO₂ NDIR

CaracterísticaMQ-135 (MOX)MH-Z19B (NDIR)SCD30 (NDIR)
PrincipioÓxido metálico (calentador)Infrarrojo no dispersivoInfrarrojo no dispersivo
Selectividad CO₂No (mixto)Sí (específico CO₂)Sí (específico CO₂)
PrecisiónBaja (relativa)±50 ppm + 3%±30 ppm + 3%
InterfazAnalógica / DigitalUART / PWMI²C
Consumo~150 mA @ 5V~18 mA @ 5V~19 mA @ 3.3V
PrecioMuy bajo (~$2)Medio (~$20)Alto (~$35)

Conclusión

El MQ-135 es excelente para detectar cambios en calidad de aire general (tendencias, alarmas umbral) en proyectos de bajo coste. No sirve para medición cuantitativa precisa de CO₂ u otro gas específico. Para eso, invierte en sensor NDIR. Calibra Ro en aire limpio, usa salida analógica para gráficas y digital para alarmas. Ventila bien tu espacio. ¡Respira tranquilo!

Tecnología Industrial

  1. Acero para Herramientas Explicado: Propiedades Clave y Aplicaciones en Construcción y Fabricación
  2. Máquinas Prensa Punzonadora: Funcionamiento y Por Qué las Eligen los Fabricantes
  3. Matrices de Estampado de Chapa: Visión Profesional Completa
  4. Fundamentos de circuitos DC: entendiendo la corriente continua y conceptos eléctricos básicos
  5. Entendiendo Circuitos AC: Guía para Principiantes
  6. Circuitos Rectificadores: Desde Media Onda hasta Diseños Polifásicos de Onda Completa
  7. Circuitos de Control: Fundamentos, Aplicaciones y Mejores Prácticas
  8. Máquinas CNC Mazak: Visión General Completa y Capacidades
  9. Visión Experta: Operaciones de Taladrado en Mecanizado CNC
  10. Entendiendo el Mecanizado de Plásticos: Técnicas, Herramientas y Consideraciones de Material
  11. Revolucionando la retroalimentación háptica: ventajas de los transductores piezoeléctricos