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.
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.
|