Capacitación Arduino · Sensor de gas
Módulo MQ-2 (comparador LM393): el LED verde dice «aire limpio» y el rojo «¡humo o gas!». Simulado en Tinkercad y en OpenCircuits.
El componente
Cómo funciona
Truco de simulación
El módulo compara el gas con el umbral del trimmer y entrega el resultado por DO.
| Parte del kit | La reemplazamos con | Arduino |
|---|---|---|
| Cápsula + AO | Sensor de gas (sí existe en Tinkercad) con una resistencia de 4,7 kΩ a GND más gas = valor más alto | A0 |
| Trimmer azul | Potenciómetro umbral de 0 a 1023 | A1 |
| Comparador LM393 | El código:if (gas > umbral) | — |
| LED DOUT | LED verde (aire limpio) y LED rojo (gas), con 220 Ω | D4 · D6 |
Paso 1 · Componentes
Buscar: Arduino
Buscar: Placa de pruebas
Buscar: gas. Hace de cápsula + AO.
Carga del sensor: de B1 a GND.
Hace de trimmer azul: fija el umbral.
Una para cada LED.
Aire limpio.
¡Humo o gas!
Paso 2 · Circuito
Paso 2 · Conexiones
| Alimentación | ||
| Arduino 5V | Riel + inferior | |
| Arduino GND | Riel − inferior | |
| Sensor de gas (fuera de la protoboard, girado) | ||
| Sensor A1 y H1 | Riel + (un cable cada uno) | |
| Sensor H2 | Riel − | |
| Sensor B1 | Columna 28 (fila e) | |
| — | 4,7 kΩ | Columna 24 → 28 (fila c) |
| Columna 24 | Riel − | |
| Columna 28 | Arduino A0 | |
| Trimmer (potenciómetro) | ||
| — | Potenciómetro (fila e) | Columnas 18, 19, 20 |
| Columna 18 / 20 | Riel − / + | |
| Columna 19 (cursor) | Arduino A1 | |
| LED verde · aire limpio | ||
| — | LED cátodo / ánodo (fila e) | Columna 3 / 4 |
| — | 220 Ω | Columna 4 → 8 (fila c) |
| Arduino D4 | Columna 8 | |
| Columna 3 | Riel − | |
| LED rojo · ¡gas! | ||
| — | LED cátodo / ánodo (fila e) | Columna 10 / 11 |
| — | 220 Ω | Columna 11 → 15 (fila c) |
| Arduino D6 | Columna 15 | |
| Columna 10 | Riel − | |
Paso 3 · Código en bloques
Variables → Crear variable: gas y umbral.
Paso 3 · Código C++
// C++ code // int gas = 0; int umbral = 0; void setup() { pinMode(A0, INPUT); pinMode(A1, INPUT); pinMode(6, OUTPUT); pinMode(4, OUTPUT); }
void loop() { gas = analogRead(A0); umbral = analogRead(A1); if (gas > umbral) { digitalWrite(6, HIGH); digitalWrite(4, LOW); } else { digitalWrite(6, LOW); digitalWrite(4, HIGH); } delay(10); // Delay a little bit to improve simulation performance }
Paso 4 · Simular
| Ningún LED enciende | Revisa la orientación (pata doblada = ánodo, hacia la resistencia). |
| Siempre rojo | El umbral está bajo: con aire limpio A0 ≈ 306, sube el potenciómetro sobre 30 %. |
| Nunca rojo | Acerca más la nube o baja el umbral. |
| A0 no cambia | Falta el calefactor (H1 a +, H2 a −) o la resistencia de 4,7 kΩ a GND. |
Paso 5 · Kit real
| Módulo MQ-2 | Arduino |
|---|---|
| VCC | 5V |
| GND | GND |
| DO | D7 |
| AO | sin conectar |
Quita el sensor de Tinkercad, su resistencia de 4,7 kΩ y el potenciómetro: el módulo ya trae su trimmer y su comparador. Los LEDs y sus 220 Ω se quedan.
Borra las dos lecturas analogRead y cambia el if (gas > umbral) por:
if (digitalRead(7) == LOW) { // DO en LOW = hay gas
Nunca uses llamas ni encendedores para probarlo. La cápsula se calienta: no la toques.
Alternativa · OpenCircuits
El bloque verde de la categoría MQ2 lee la salida DO del módulo: es verdadero cuando hay más gas que el umbral del trimmer azul (DO en LOW). Reemplaza al if (gas > umbral) de Tinkercad.
No hacen falta variables: el módulo ya decide. En la categoría MQ2 también está «nivel de humo» (AO) por si quieres el número.
// C++ code // void setup() { pinMode(7, INPUT); pinMode(6, OUTPUT); pinMode(4, OUTPUT); }
void loop() { if (digitalRead(7) == LOW) { digitalWrite(6, HIGH); digitalWrite(4, LOW); } else { digitalWrite(6, LOW); digitalWrite(4, HIGH); } delay(10); // Delay a little bit to improve simulation performance }
digitalRead(7).Para seguir
Muestra el valor de A0 en el Monitor serie cada medio segundo. Pista: Serial.println(gas).
Cuando hay gas, suena el buzzer en D8 además del LED rojo.
Agrega un LED amarillo en D5: limpio (verde), algo de humo (amarillo) y peligro (rojo), con dos umbrales.
Haz que el LED rojo parpadee mientras haya gas, y que se quede encendido 5 s después de ventilar.