Pages Menu
TwitterFacebook



BANNER1_ALT

Posted by on Ago 6, 2014 in Sensores analógicos, Sensores digitales | 87 comments

sensor de gas (MQ2)

sensor de gas (MQ2)

sensor de gas (MQ2)

gas_1

El sensor de gas analógico (MQ2) se utiliza en la detección de fugas de gas de equipos en los mercados de consumo y la industria, este sensor es adecuado para la detección de gas LP, i-butano, propano, metano, alcohol, hidrógeno, tiene una alta sensibilidad, un tiempo de respuesta rápido  Y dicha sensibilidad puede ser ajustada por el potenciómetro.

Este pequeño sensor de gas detecta la presencia de gas combustible y humo en concentraciones de 300 a 10.000 ppm. Incorpora una sencilla interfaz de tensión analógica que únicamente requiere un pin de entrada analógica del microcontrolador. Con la conexión de cinco voltios en los pines el sensor se mantiene lo suficientemente caliente para que funcione correctamente. Solo tiene que conectar 5V a cualquiera de los pines (A o B) para que el sensor emita tensión. La sensibilidad del detector se ajusta con una carga resistiva entre los pines de salida y tierra.

Estructura y configuración de MQ-2 sensor de gas, el sensor compuesto por micro tubo de cerámica Al2O3, capa sensible de Dióxido de Estaño  (SnO2), el electrodo de medida y el calentador se fija en una corteza hecha por el plástico y red de acero inoxidable. El calentador proporciona las condiciones de trabajo necesarias para el trabajo de componentes sensibles. La envoltura MQ-2 tienen 6 pines, 4 de ellos se utilizan para recoger las señales, y otros se utilizan 2 para proporcionar corriente de calentamiento.

  • Condiciones de trabajo
  • Voltaje de circuito: 5V
  • Voltaje de calentamiento: 5v
  • Resistencia de carga: puede ser ajustable
  • Resistencia del calentador: 33Ω ±5%
  • Consumo: menos de 800mW

 gas_2

A continuación se muestra las típicas características de sensibilidad del MQ-2 durante varios gases en su:

  • Temperatura: 20 ℃,
  • Humedad: 65%,
  • Concentración de O2 21%
  • RL = 5kΩ
  • Ro: resistencia del sensor a 1000 ppm de
  • H2 en el aire limpio.
  • Rs: resistencia del sensor en varias concentraciones de gases.

gas_3

Se muestra la dependencia típica del MQ-2 de la temperatura y la humedad.

  • Ro: resistencia del sensor a 1000 ppm de H2 en el aire  a 33% HR y 20 grados.
  • Rs: resistencia del sensor a 1000 ppm de H2  a diferentes temperaturas y humedades

Conexiones

La terjeta del sensor cuenta con dos salidas de datos, una digital (DO)y otra analogica (AO). La salida digital manda una señal en estado alto cuando el sensor llega a un nivel deseado, el cual puede ser ajustado por medio del potenciometro. La salida analogica va aumentado el valor del voltaje en  proporcion al nivel de gas que se detecta.

 gas_4

Si estas usando un Arduino UNO, la conexión seria como el siguiente caso, pero de cualquier manera puedes utilizar cualquier Arduino.

gas_5

Para obtener los datos en partes por millón (ppm) es necesario hacer la conversión con el siguiente programa.

Programación

 

#define         MQ1                       (0)     //define la entrada analogica para el sensor
#define         RL_VALOR             (5)     //define el valor de la resistencia mde carga en kilo ohms
#define         RAL       (9.83)  // resistencia del sensor en el aire limpio / RO, que se deriva de la                                             tabla de la hoja de datos
#define         GAS_LP                      (0)
String inputstring = "";                                                        //Cadena recibida desde el PC
float           LPCurve[3]  =  {2.3,0.21,-0.47};
float           Ro           =  10;
void setup(){
Serial.begin(9600);                                                                  //Inicializa Serial a 9600 baudios
 Serial.println("Iniciando ...");
   //configuracion del sensor
  Serial.print("Calibrando...\n");
  Ro = Calibracion(MQ1);                        //Calibrando el sensor. Por favor de asegurarse que el sensor se encuentre en una zona de aire limpio mientras se calibra
  Serial.print("Calibracion finalizada...\n");
  Serial.print("Ro=");
  Serial.print(Ro);
  Serial.print("kohm");
  Serial.print("\n");
}

void loop()
{
   Serial.print("LP:");
   Serial.print(porcentaje_gas(lecturaMQ(MQ1)/Ro,GAS_LP) );
   Serial.print( "ppm" );
   Serial.print("    ");
   Serial.print("\n");
   delay(200);
}

float calc_res(int raw_adc)
{
  return ( ((float)RL_VALOR*(1023-raw_adc)/raw_adc));
}

float Calibracion(float mq_pin){
  int i;
  float val=0;
    for (i=0;i<50;i++) {                                                                               //tomar múltiples muestras
    val += calc_res(analogRead(mq_pin));
    delay(500);
  }
  val = val/50;                                                                                         //calcular el valor medio
  val = val/RAL;
  return val;
}

float lecturaMQ(int mq_pin){
  int i;
  float rs=0;
  for (i=0;i<5;i++) {
    rs += calc_res(analogRead(mq_pin));
    delay(50);
  }
rs = rs/5;
return rs;
}

int porcentaje_gas(float rs_ro_ratio, int gas_id){
   if ( gas_id == GAS_LP ) {
     return porcentaje_gas(rs_ro_ratio,LPCurve);
   }
  return 0;
}

int porcentaje_gas(float rs_ro_ratio, float *pcurve){
  return (pow(10, (((log(rs_ro_ratio)-pcurve[1])/pcurve[2]) + pcurve[0])));
}

Configuración del puerto serial

 

Para cargar el programa e ingresar al monitor serial que ofrece el Arduino es necesario asegurarse que el puerto COM sea el correcto.  Para ello tenemos que acceder a “Administrador de dispositivos” desde la PC y verificar que el COM que nos muestra sea el mismo que marca el software de Arduino.

 gas_6

En caso de que no coincidan el que muestra el “Administrador de dispositivos” con el marcado en el software podemos cambiarlo en la barra de herramientas.

gas_7

Una vez que este verificado el puerto serial solo damos click en la lupa que aparece en la parte superior derecha y automáticamente abre otra ventana que muestra el puerto serial.

gas_8

Nota: observe que la nueva ventana marca como título del COM de la tarjeta que corresponde al serial monitoreado.

Para analizar el comportamiento del sensor se colocó dentro de un recipiente cerrado y se dejó escapar gas de un encendedor y con la ayuda del puerto serial se pudo observar los datos obtenidos de los sensores de gas LP.

 gas_9

87 Comments

  1. Excelente sencillo, claro y funciona a la perfección, gracias

    • Muchas gracias Adrian, esperamos seguir subiendo mas.

      • una pregunta o duda que me surgio a mi, es por que en la ventana de puerto serial al momento de detectar gas me salen puras letras extranas y simbolos no entiendo que estoy haciendo mal?..

        • Diego, que velocidad tienes configurada en la parte de la ventana serial?

          • mira lo que pasa es que yo estoy haciendo pruebas con mi sensor es el mismo que pones aqui en la desrcipcion, y tambien estoy usando el mismo codigo que pusiste no le cambie nada, lo que hice fue copiar y pegar y cargarlo y a la hora de aplicarle gas al sensor me salen en la ventana de puerto serial este tipo de caracteres y simbolos “IòñEùÙ|UEÅîü:ðü:ðÿ[ðÿzðÿ:ðüñÿ:ðÿ:ðÿZðÿñþñü[ðþ[ðÿñÿñþzðÿZðÿSðþzðþZðÿ:ðþñþ[ðÿ[ðÿ:ðþ:ðþ:ðþñþñü”no se donde checar la velocidad que dices…

        • Acabo de cambiar el codigo de la pagina, parece ser que hay una discrepancia, en el codigo estaba 57600 pero en la imagen 9600, ya puedes copiarlo y pegarlo y deberia de funcionar. Me avisas como te fue.

          • de hecho de las dos maneras esta bien ya lo cheque muchas gracias, pero tengo otra duda ese codigo esta hecho solamente para que se detecte el gas lp? ya que yo eh estado tratando de aplicarle propano y butano pero no mide nada solo sale esto”
            Iniciando …
            Calibrando…
            Calibracion finalizada…
            Ro=3.15kohm
            LP:0ppm
            LP:0ppm
            LP:0ppm
            LP:0ppm

            tendra que ver el tipo de gas que le estoy aplicando al sensor?

  2. gran tutorial, pero una duda… el sensor puede leer mas de un gas distinto a la vez? y si es asi… como deberia de ser la programacion???

    • Diego, el sensor es sensible a diferentes gases, solo que en mayor medida al que se supone que esta fabricado, por lo que si quisieras sensar otro gas te recomendaría usar otro módulo MQ que puedas estar monitoreando.

  3. Disculpa, el sesor puede medir varios tipos de gases, pero me gustaria saber si diseñaste ese codigo para la lectura del gas LP solamente? o puedo usar ese codigo para medir algun otro gas ?
    Y como le puedo hacer para que con ese codigo pueda identificar entre dos gases al mismo tiempo? se que son muchas dudas pero no estoy muy familiarizado con todo esto. gracias de antemano

    • Hola que tal sensor es sensible a diferentes gases, solo que en mayor medida al que se supone que esta fabricado, por lo que si quisieras sensar otro gas te recomendaría usar otro módulo MQ que puedas estar monitoreando. No podrias identificar 2 gases al mismo tiempo como te decia, ocupas 2 sensores MQ.

  4. Hola, quisiera saber si esta formula que usas en el codigo sirve para el MQ9 y el MQ7.
    Saludos

  5. Hola
    Disculpa cres que me podrías decir como cambiar la resistencia para variar la sensibilidad del sensor

    Habla de un potencio metro no se si es el que tiene el modulo o cambiar la resistencia interna del sensor y si puede detectar 1000 ppm

    Gracias

    • La sensibilidad ya no la puedes cambiar, lo que cambia el pot es el NIVEL DE DETECCIÓN para activación de la salida digital.

  6. Muchas gracias por el tutorial!
    Ayer lo construí y me anduvo, hasta que….parece que se me quemó el Arduino. Puede ser que haya demandado demasiado amperaje y se haya quemado el regulador de tensión o el mismo arduino?
    Vi en otros tutoriales, que alimentan con 5v al sensor directamente de una fuente, y esa misma fuente al Arduino al Vin y Grnd.
    Gracias
    Patricio

    • Patricio, es dificil saber con lo que mencionas, que hace el Arduino cuando lo conectas?

      • Gracias por tu pronta respuesta!
        Estaba probando el sensor lo más bien hasta que dejó de responder y el mismo arduino empezó a calentarse. Lo desenchufé de la fuente, desconecté todo, y lo enchufé a la computadora (ordenador) vía usb. Pero ya no responde nada, no me aparece el puerto y volvió a tomar temperatura el chip del arduino (no el regulador).
        Hoy cuando vuelva a casa, probaré de cambiarle el chip por uno que debo tener dando vueltas por ahí. Pero temo estropearlo también.

      • Efectivamente “drenó” demasiada corriente por el pin 5V. El MQ2 consume hasta 800mW la parte de la resistencia que lo calienta. Esto hizo que se quemara el estabilizador de voltaje del arduino.
        Lo correcto, y lo que hice, fue alimentar el sensor directamente de la fuente de 5V, y esta fuente alimentar al arduino (uno nuevo).
        Estaría bueno actualizar esto para que a nadie más le pase. Saludos

        • Patricio, me extraña, el sensor nunca debió de consumir tanta corriente, el pin de 5V del Arduino tiene suficiente capacidad para ese módulo. Seria bueno revisar bien que fue lo que paso.

          • No, el regulador del voltaje del arduino no está diseñado para tanto consumo, y en pocas horas se estropeará.
            Lo mejor es alimentarlo aparte con otro regulador de voltaje como el L7805CV.

          • Exacto! Fue lo que terminé haciendo.

  7. Disculpa a que te refieres con LPCurve [3] = {2.3 …}, que significan estos valores, ¿son tomados de la gráfica? porque no logro identificarlos

    • Es correcto el LPCurve[3]={2.3…} salen del datasheet del MQ, son 3 valores {x,y,m} con m= pendiente de la curva, x=log(ppm) , y=log(Rs/Ro) y m= log [(y2-y1)/(x2-x1)]. Siendo (x1,y1) un punto sobre la curva y (x2,y2) otro mas alejado

      • Hola gracias por aclarar la duda, saludos

  8. Hola! Disculpa, necesita alguna librería? Uso el MQ-2 y necesito medir metano en ppm. Sigo los mismos pasos que aquí? Gracias, está excelente el artículo.

    • Alejandro, los mismos pasos :) no necesitas librería aplica para toda la familia MQ. Saludos y gracias.

  9. como lo calibro para solamente detectar humo?
    saludos

    • Sebsanta, dependiendo el sensor que tengas, y de que tipo de “humo” sea. Igual checa las hojas de datos de los sensores MQ y solo elige el que más se acerque a lo que quieras medir, una vez lo tengas funcionan prácticamente igual.

  10. Como haria para medir Hidrogeno?? que datos tendria que cambiar, poseo el modulo MQ2

  11. Veo que todos refieren a un Arduino UNO, puedo usar, por ejemplo, una tarjeta NANO?

    • Hola que tal, si claro que puedes funciona igual. Saludos

    • oye karnal no le entiendo muy bien si me podrias pasar la libreria y el programa de compilacion porfa esque tengo un arduino nano pero no se como programarlo

      • Alan, este programa no usa bibliotecas o librerias, solo copia y pega el código en tu Arduino IDE, no guardamos los archivos por que solo es copiar y pegar. Saludos.

  12. Hay un tema que no entiendo. A ver si estoy en lo correcto, el pin analógico es para leer o sensar el gas o humo, con int nivel_sensor regulo donde quiero que se me active el buzzer y el potenciómetro del sensor para darle sensibilidad. Pero el pin digital que me activa??? o como lo configuro, en una palabra, para que sirve el pin digital?

    • El pin digital es para cunado no quieres usar el canal analógico del Arduino y solo quieres regular por Todo/Nada que el umbral lo defines a través del pot.

  13. Hola, tengo el sensor mq7 y quisiera saber si son los mismos paso, o tengo que cambiar valores por la curva del datasheet

      • Hola, el MQ135 y me salen en 0 las particulas por millon, ahora estoy usando el MQ135 para medir C02 y todo me sale en 0, cambie la resistencia RL a 20K (el datasheet indica) y no me arroja ningun valor, pero si solo leo la lectura analogica me lanza valores al respirar cerca, ese es el codigo:

        #define MQ135 (0) //define la entrada analogica para el sensor
        #define RL_VALOR (20) //define el valor de la resistencia mde carga en kilo ohms
        #define RAL (9.83) // resistencia del sensor en el aire limpio / RO, que se deriva de la tabla de la hoja de datos
        #define GAS_CO2 (0)
        String inputstring = “”; //Cadena recibida desde el PC
        float CO2Curve[3] = {2.3,0.21,-0.47};
        float Ro = 10;
        void setup(){
        Serial.begin(9600); //Inicializa Serial a 9600 baudios
        Serial.println(“Iniciando …”);
        //configuracion del sensor
        Serial.print(“Calibrando…\n”);
        Ro = Calibracion(MQ135); //Calibrando el sensor. Por favor de asegurarse que el sensor se encuentre en una zona de aire limpio mientras se calibra
        Serial.print(“Calibracion finalizada…\n”);
        Serial.print(“Ro=”);
        Serial.print(Ro);
        Serial.print(“kohm”);
        Serial.print(“\n”);
        }

        void loop()
        {
        Serial.print(“C02:”);
        Serial.print(porcentaje_gas(lecturaMQ(MQ135)/Ro,GAS_CO2) );
        Serial.print( “ppm” );
        Serial.print(” “);
        Serial.print(“\n”);
        delay(200);
        }

        float calc_res(int raw_adc)
        {
        return ( ((float)RL_VALOR*(1023-raw_adc)/raw_adc));
        }

        float Calibracion(float mq_pin){
        int i;
        float val=0;
        for (i=0;i<50;i++) { //tomar múltiples muestras
        val += calc_res(analogRead(mq_pin));
        delay(500);
        }
        val = val/50; //calcular el valor medio
        val = val/RAL;
        return val;
        }

        float lecturaMQ(int mq_pin){
        int i;
        float rs=0;
        for (i=0;i<5;i++) {
        rs += calc_res(analogRead(mq_pin));
        delay(50);
        }
        rs = rs/5;
        return rs;
        }

        int porcentaje_gas(float rs_ro_ratio, int gas_id){
        if ( gas_id == GAS_CO2 ) {
        return porcentaje_gas(rs_ro_ratio,CO2Curve);
        }
        return 0;
        }

        int porcentaje_gas(float rs_ro_ratio, float *pcurve){
        return (pow(10, (((log(rs_ro_ratio)-pcurve[1])/pcurve[2]) + pcurve[0])));
        }

        • Hola que tal la salida analógica es la que tienes que usar para este código, si te tiene que mandar valores cuando respires cerca. Cual es la duda o el problema en este caso?

          • es que quiero implementar este codigo para la calibracion, pero se lo subo al arduino y todo me sale en 0

  14. Hola buenos Dias, el sensor debe estar conectado por 24 horas antes de usarlo ?

    • Idealmente si, es el tiempo de pre calentamiento para estabilizar el sensor. Igual puedes medir y hacer pruebas solo al conectarlo es suficiente ya que manda datos desde el inicio.

  15. Se puede enviar los datos obtenidos a un un celular Android mediante bluetooth o Wi-Fi

  16. saludos Hector, yo estuve batallando bastante con este módulo y
    la duda viene por parte de la fórmula:
    “(pow(10, (((log(rs_ro_ratio)-pcurve[1])/pcurve[2]) + pcurve[0])));”
    lo que pasa es que usa el logaritmo natural “log” y lo correcto seria cambiarlo por el logaritmo de base 10 “log10” para que así concuerde con la fórmula de linealización de las curvas del datasheet.
    le agradeceria bastante si podría revisar esta observación y que si tuviera algún tutorial sobre el sensor mq135 y como obtener el gas NH3 me pueda mandar el link gracias.

  17. Muchas Gracias ! por compartir :) Saludos desde B.C.S.

    • Gracias a todos por también visitar nuestra pagina. Saludos.

  18. Muy bueno, tendrás algún ejemplo con una rasperry pi y el código en Python solo para saber cómo calibrar y me de los datos igualmente en ppm. Saludos

  19. Excelente post, solo una pregunta: cuantas partes por millón seria el umbral para tener una alerta?

    saludos.

    • El umbral lo modificas con el pot Ricardo, tu puedes revisar las PPM con la salida analógica.

      • Hola Hector,estamos trabajando con un MQ9 para detectar el monoxido de carbono pero nos hemos atascado en la conversión a ppm. Hemos visto que tienes muy bien definida la programación para la detección de lpg con el MQ2 y nos preguntamos si tendrías definida tambien la programación para el CO en MQ9.
        Gracias,un saludo

        • Hola otra vez,realmente nos da igual si tenemos que trabajar con un MQ2 o MQ7 para la lectura del CO,asi que nos vale cualquier programación definida para estos sensores con tal de poder hacer la medición correcta en ppm.
          Gracias de nuevo.

  20. ESperamos que nos puedas ayudar…

    • Raul, ¿entonces todo bien? en el ultimo comentario dices que también te va con el MQ2 en el que esta basado este tutorial.

      • Hola Hector,el problema es que el esquema que aparece en este post es para la deteccion de “lp” y a nosotros nos interesa la medición de Co…
        Gracias.

        • Entonces si necesitas cambiar el sensor al MQ-7, si observas el MQ-2 no cambia su magnitud con Co, solo cambia el sensor y listo. Aunque para una calibración precisa siempre necesitas otro medido de Co para calibrar el sensor.

          • entonces quieres decir que con el MQ7 y el codigo del MQ2 puedo obtener la medición en ppm?

  21. Discúlpa… de qué fuente bibliográfica sacaste la información sobre el sensor?

  22. Hola Hector
    Estoy haciendo el detector para tratar de medir CH4.
    No me queda claro si tengo que cambiar para mi caso la linea
    06 float LPCurve[3] = {2.3,0.21,-0.47};
    Desde Ya muchas gracias
    Foe Kohei

  23. Una pregunta, al momento que se realiza la conexión del pin analógico del arduino y el sensor, no debería ir una resistencia RL? En el datasheet menciona un RL pero la verdad no sé si es así.saludos

    • Hola Diego
      Yo estoy haciendo uno como comento arriba, la RL en los múdulos que figuran al inicio da la página ya vienen con una RL.
      En el caso de mi módulo la medí y me dió 1 Kohms.
      Yo estoy trabado con la línea que menciono 06 float LPCurve[3] = {2.3,0.21,-0.47}; que no interpreto que hace, pero en lo demás lo hice y anda bien con el módulo MQ2.
      Saludos

  24. Gracias por tu respuesta Foe Kohei,osea tengo la duda si la RL esta es solo para el pin digital del sensor, pero según consulté en una tesis, se necesita una resistencia de carga entre el pin del arduino y el sensor para obtener los voltajes de salida y luego realizar la conversión en ppm; yo ya lo realicé sin la RL pero no estoy seguro que sean correctos esos valores. Te recomiendo que revises este video en youtube: https://www.youtube.com/watch?v=QYSDSKn2Vf8 para el problema de esa línea de código(yo también lo estoy revisando porque no comprendo muy bien esa línea 06 float LP…), está en inglés pero fíjate en lo que dice y anda a las páginas web que utiliza para el código, yo también estoy usando el sensor MQ4, MQ7 y para CO2. Espero tus comentarios para apoyarnos.

    • Hola Diego, es correcto lo que comenta Foe el modulo que utilizamos en este tutorial ya tiene RL y Foe este codigo debe funcionar para este tipo de sensor y obtener sin dificultad los datos pero sobre la linea de codigo no recordamos su función pero es una declaración de datos para la variable espero que aclare mas tu duda seguiremos buscando para dar mejor apoyo

      • Gracias Saul por tu aclaracion, solo que me confundí un poco porque vi en una tesis esa resistencia,
        Bueno voy a tratar de explicar como saca esos valores para todas las personas que tengan dudas de 06 float LPCurve[3] = {2.3,0.21,-0.47}
        El 2,3 es el log(200), el 200 es de la hoja de datos del sensor. El 0,21 es un valor aproximado del log(1,6), el 1,6 sale de la hoja de datos del sensor, es decir cuando se tiene 200ppm el valor de Rs/Ro=1,6. El valor -0,47 es el valor de la pendiente, si recuerdan de geometría la pendiente(m) se calcula con m=(y2-y1)/(x2-x1), para poder calcular la pendiente se necesita dos puntos, en este caso solo tenemos un punto P(2,3 ; 0,21) por lo que se requiere otro punto, esto se obtiene con el valor maximo que sería 10000ppm con una Rs/Ro aproximado de 0,26(esto sale del datasheet), log(10000)=4 y log(0,26)= -0,59 por lo que el otro punto es Q(4 ; -0,59), entonces reemplazamos en la ecuación m=(-0,59-0,21)/(4-2,3)=-0,47.
        Saludos, espero haber sido lo más claro posible

        • Gracias Diego por tan buena respuesta muy dato tu respuesta esperamos que sea de ayuda a las demas personas que entren aqui, saludos

        • Hola Diego
          Hay varios datos que no logro entender, te explico:
          1º El log(200)dices que es 2,3, entonces si el log fuera 300 ¿Qué seria 3,3?(no logro entender como sale el 2,3).
          2º el 0,21 sale del log (1,6), el 1,6 entiendo que es a donde termina la línea del gas que estamos tratando(LPG)pero el ¿0,21?.
          3ºLa pendiente, el 0,26 ¿de donde sale?
          el log 10000 =4, el 4 ¿de donde sale ?
          el log 0,26 =-0,59 ¿el -0,59 ¿de donde sale?.
          Bueno, perdona mi torpeza pero si logro entender los cálculos de este sensor creo que poder sacar los del MQ-4 que es el que estoy utilizando para medir gas natural
          Gracias

          • Que tal Julio, respondo a este tipo de preguntas porque me ayudó full este blog jeje y se que mientras para una persona puede ser lo más fácil del mundo para otr@s puede resultar difícil. Verás primero debes tener la hoja de datos del sensor MQ-2 para que vayas verificando la información.La hoja de datos da una escala logarítmica así que debes fijarte el valor que representa cada línea.
            1)Verás, se tiene 200 ppm cuando Rs/Ro es aproximadamente 1,6 (estos valores corresponden a la recta de LGP del sensor MQ-2 de la hoja de datos). Log significa logarítmo, en cualquier calculadora científica encuentras esta opción. Pones el log(200) en tu calculadora y te saldrá 2,30. Si fuera log(300) sería 2,477 eso depende del cálculo.
            2) La misma explicación anterior. Pones en tu calculadora log(1,6) y te da 0,204, que en está página lo aproximan a 0,21
            3) EL 0,26 NO es la pendiente, eso se calcula más después. Se tiene 10000 ppm cuando Rs/Ro es aproximadamente 0,26(valor aproximado ya que el final de la recta esta entre 0,2 y 0,3); te acuerdas que la escala del datasheet tiene escala logarítmica entonces en la gráfica esta 0,1(luego sería 0,2; 0,3; 0,4 ………….0,6) después 1 (luego 2; 3; 4; ……..9) y posterior 10.Entonces log que significa logartímo (perdona mi insistencia jejeje ) pones en tu calculadora, log(10000) y te da 4; log(0,26)= -0,585 que le redondeas y te da -0,59.
            Por último la pendiente le calculas con la fórmula m=(y2-y1)/(x2-x1), los puntos son los que se calculó P(2,3 ; 0,21)
            Q(4; -0,59) y ya pues reemplazas y listo m=(-0,59-0,21)/(4-2,3)=-0,47.

            Saludos.

          • Hola Diego te agradecemos tus comentarios y por ayudar a otros usuarios

          • Muchas gracias por tu extensa explicación y sobre todo por tu tiempo.
            En un principio lo que hice es un copi pega de tu explicación y un copi pega de la grafica del MQ-2 y pegarlo en Word y imprimirlo, con la hoja empece a darle vueltas pero una de tantas torpezas mias es no entender que (log) es logaritmo.
            Lo único que logre sacar es el 1,6 y poco mas. Ahora ya tiene sentido todo

            Muchas Gracias de nuevo

  25. Hola, estoy haciendo pruebas con mi sensor y los valores que me arrojan es solamente 0 ppm por que no me sale ninguna medicion

    • Hola procura verificar tus conexiones y el codigo es posible que el error se encuentre en ellos

    • Verifica el estado del sensor y la parte del codigo donde toma la lectura y otra donde la muestra, saludos

  26. por mas que miro lo de la resistencia RL no se si hay que ponerla o no, y si hay que ponerla donde seria?.
    Mi proyecto es la realización de un detector de gas ciudad, para colocarlo en una cocina

    • Hola buen dia le comento, a esa misma pregunta han llegado mas usuarios, la tarjeta que hemos usado aqui ya incluia la resistencia RL, si gusta puede leer los comentarios estan un poco antes de este, y viendo lo que este usando puede considerar la respuesta

  27. No tienes coj el mq5 y pic el tutorial

    • Por el momento no

  28. Gracias por contestar, veo que la resistencia la lleva el modulo.
    El modulo que estoy usando es el MQ-4 que creo que es el mas indicado para detectar gas natural, el problema que estoy teniendo es el cambiar los parámetros según el datasheet.
    Lo estoy modificando según entiendo las explicaciones del amigo Diego pero al probarlo me detecta menos ppm que con los parámetros que originalmente vienen en tu programa.
    No se si podras echarme una mano.
    Un Saludo

    • Probablemente deberia haber un ajuste con el programa con los parametros que vienen en la hoja de datos

  29. ¿Porque en la lectura de pmm salen cifras en negativo?

    • En algun momento te da otro tipo de valores ?

      • Si, empieza por medidas 48,60, 210 etc. y de buenas a primeras pasa a -280000, -3000, 5500,-6700 etc

        • Haz intentado cambiar el sensor ?

  30. Una pregunta acerca del siguiente código.

    {
    return ( ((float)RL_VALOR*(1023-raw_adc)/raw_adc));
    }
    El RL_VALOR, a la final vendría a ser el voltaje de 5 voltios de Arduino? para obtener la concentración del gas en el rango de 0 a 5 voltios para luego transformarle a ppm? Lo que pasa es que estoy haciendo para el sensor MQ7 y en el datasheet dice que RL=10. La duda es: la variable RL_VALOR para el sensor MQ7 es 5 ó 10

Post a Reply

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *