ChuJALT
Aporte: Arduino, sensor de gas con alarma - Versión para impresión

+- ChuJALT (https://chujalt.com)
+-- Foro: PLACAS DE PROTOTIPOS Y MINI PC'S (https://chujalt.com/forum-22.html)
+--- Foro: Anduino, Nodemcu, Wemos (https://chujalt.com/forum-23.html)
+--- Tema: Aporte: Arduino, sensor de gas con alarma (/thread-5.html)



Arduino, sensor de gas con alarma - chujalt - 05-03-2021

Saludos....

En esta ocasión vamos a realizar un sistema para medir la cantidad de gas (butano, natural, metano....) que hay en el ambiente, le asignamos un umbral y si la cantidad que capta el sensor es mayor que el umbral sonará un pitido (buzzer) y se encenderá un led rojo, que no se apagarán hasta que las lecturas den unas medidas por debajo del umbral.


Materiales utilizados
  • Una placa Arduino (yo he utilizado la Uno).
  • 7 Cables dupont.
  • Un sensor de gases MQ-5.
  • Un buzzer.
  • Un led de color rojo.



[Imagen: mq5.jpg]


[Imagen: buzzer.jpg]



Conexiones
  • Pin Vcc del sensor MQ-5 al pin 5v de arduino.
  • Pin AOUT del sensor MQ-5 al pin A0 de arduino.
  • Pin GND del sensor MQ-5 al pin GND de arduino.
  • Pin positivo del buzzer al pin 10 de arduino.
  • Pin negativo del buzzer al pin GND de arduino.
  • Pin positivo del led al pin 13 de arduino.
  • Pin negativo del led al pin GND de arduino.




Código Arduino:

Código:
const int gasPin = A0;
const int buzzerPin= 10;
int ledPin = 13;

void setup()
{
 pinMode(gasPin, INPUT);
 pinMode(buzzerPin, OUTPUT);
 pinMode(ledPin, OUTPUT);
 Serial.begin(9600);
}

void loop()
{
 int medida = analogRead(gasPin);
 if(medida > 200)
 {
   digitalWrite(ledPin, HIGH);
playTone(1000, 500);  
}
else
{
digitalWrite(ledPin, LOW);
}
 Serial.println(medida);
 delay(1000);
}
void playTone(long duration, int freq) {
  duration *= 1000;
  int period = (1.0 / freq) * 1000000;
  long elapsed_time = 0;
  while (elapsed_time < duration) {
      digitalWrite(buzzerPin,HIGH);
      delayMicroseconds(period / 2);
      digitalWrite(buzzerPin, LOW);
      delayMicroseconds(period / 2);
      elapsed_time += (period);
  }
}



Básicamente el código lo que hace:
  • Asigna los pines.
  • Pone el sensor de gas como entrada y el buzzer y pin de salida.
  • Inicia la comunicación serial a 9600 baudios.
  • Inicia una variable (medida) y le asigna el valor de la lectura del sensor.
  • Como el sensor, en condiciones normales, da una lectura entre 120 y 160, creamos una condición, si el valor de la medida es mayor de 200 se encenderá el pin rojo y empezará a sonar el buzzer, que no se apagarán hasta que la lectura sea inferior a 200.
  • Si tenemos la placa conectada al ordenador por el monitor serial nos imprimirá cada segundo las lecturas que hace el sensor.


Bueno... ya está... espero que le pueda servir a alguien. Saludos.