SENSOR MQ-135
Conocido también como sensor de calidad de aire, se utilizan en equipos de control de calidad del
aire para edificios y oficinas, son adecuados para la detección de NH3, NOx, alcohol, benceno,
humo, CO2, etc.
Características:
Buena sensibilidad a gases nocivos en amplio rango.
Alta sensibilidad al amoniaco, sulfuro y benceno.
Larga vida y bajo costo.
Circuito de accionamiento simple.
Aplicaciones:
Detector de contaminación del aire doméstico.
Detector de contaminación del aire industrial.
Detector portátil de contaminación del aire.
Forma de conexión al Arduino:
Calibración del sensor para detectar NH3:
Las gráficas se disponen en escala logarítmica para ambos ejes y, en general, son aproximadamente
rectas bajo estas escalas. Por lo que la concentración resultará:
Para determinar la concentración necesitaremos la recta que la aproxima, para lo cual debemos
coger dos puntos cuales quiera de las gráficas P0 = {X0, Y0} y P1 = {X1, Y1}, resultando la ecuación
de la recta:
Para poder hallar la relación Rs/Ro usaremos la recta de aire limpio a 3,6 y obtendremos valores
promedios de Rs que con la formula, Rs = (Vc/VRL -1)RL según lo proporcionado en el datasheet,
Usaremos el entorno de Arduino para realizar el cálculo de Ro.
#define RL 20//The value of resistor RL is 20K
void setup () //Runs only once
Serial.begin(9600); //Initialise serial COM for displaying the value
}
void loop () {
float analog_value;
float VRL;
float Rs;
float Ro;
analog_value=0; //I added this line to zero my variable read at the beginning of each loop
for(int test_cycle = 1 ; test_cycle <= 500 ; test_cycle++) //Read the analog output of the sensor
for 500 times
analog_value = analog_value + analogRead(A0); //add the values for 500
analog_value = analog_value/500.0;
VRL = analog_value*(5.0/1023.0);
Rs = ((5.0/VRL)-1) * RL;
Ro = Rs/3.6;
Serial.print(analogRead(A0));
Serial.print("VRL = ");
Serial.println(VRL);
Serial.print("Rs = ");
Serial.println(Rs);
Serial.print("Ro at fresh air = ");
Serial.println(Ro);
Serial.println("-----------------------------------------------------------------------");
delay(1000); //delay of 1sec
}
Una vez hallado Ro podremos hallar la concentración a distintas condiciones de contaminación
mediante el siguiente código en el Arduino
#define RL 20 //The value of resistor RL is 47K
#define m -0.309 //Enter calculated Slope
#define b 0.493 //Enter calculated intercept
#define Ro 105.9 //Enter found Ro value
#define MQ_sensor A0 //Sensor is connected to A4
void setup() {
Serial.begin(9600);
void loop() {
float VRL; //Voltage drop across the MQ sensor
float Rs; //Sensor resistance at gas concentration
float ratio; //Define variable for ratio
VRL = analogRead(MQ_sensor)*(5.0/1023.0); //Measure the voltage drop and convert to 0-5V
Rs = ((5.0*RL)/VRL)-RL; //Use formula to get Rs value
ratio = Rs/Ro; // find ratio Rs/Ro
float ppm = pow(10, ((log10(ratio)-b)/m)); //use formula to calculate ppm
Serial.println(analogRead(MQ_sensor));
//datos a enviar
Serial.print("NH3 (ppm) = "); // Ammonia in ppm
Serial.println(ppm);
Serial.print("Voltage = "); // Intro message
Serial.println(VRL);
Serial.println("------");
delay(200);
}
PLACA ARDUINO - UNO
Arduino Uno es una placa electrónica basada en el microcontrolador ATmega328. Cuenta con 14
entradas/salidas digitales, de las cuales 6 se pueden utilizar como salidas PWM (Modulación por
ancho de pulsos) y otras 6 son entradas analógicas. Además, incluye un resonador cerámico de 16
MHz, un conector USB, un conector de alimentación, una cabecera ICSP y un botón de reseteado.
La placa incluye todo lo necesario para que el microcontrolador haga su trabajo, basta conectarla a
un ordenador con un cable USB o a la corriente eléctrica a través de un transformador.
Características técnicas de Arduino Uno
- Microcontrolador: ATmega328
- Voltaje: 5V
- Voltaje entrada (recomendado): 7-12V
- Voltaje entrada (limites): 6-20V
- Digital I/O Pins: 14 (de los cuales 6 son salida PWM)
- Entradas Analógicas: 6
- DC corriente por I/O Pin: 40 mA
- DC Corriente parar 3.3V Pin: 50 mA
- Flash Memory: 32 KB (ATmega328) de los cuales 0.5 KB son utilizados para el arranque
- SRAM: 2 KB (ATmega328)
- EEPROM: 1 KB (ATmega328)
- Clock Speed: 16 MHz