Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. i have problem in gas sensor

i have problem in gas sensor

Scheduled Pinned Locked Moved Troubleshooting
16 Posts 2 Posters 5.3k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Z zampedro

    @Reza
    there are two problems with MQ-2 sensors :
    1 the sketch, at the bottom, uses log instead of log10
    2 are you sure that RL_VALUE is 5 (kOhm) in your MQ-2 board? In my is 1, the one labeled 102 in the pic.

    Regards
    0_1482682330215_mq-2_modules.jpg

    R Offline
    R Offline
    Reza
    wrote on last edited by
    #3

    @zampedro
    hi thank you for help me
    i can not understand about (1 the sketch, at the bottom, uses log instead of log10) please help me more .
    about 2 , my sensor is different with you . this is my sensor (MQ2):
    0_1482687344779_photo_2016-12-25_21-01-40.jpg

    1 Reply Last reply
    0
    • Z Offline
      Z Offline
      zampedro
      wrote on last edited by
      #4

      1 look at the last line of the sketch:

        return (pow(10, ( ((log(rs_ro_ratio) - pcurve[1]) / pcurve[2]) + pcurve[0])));
      }``
      

      change to:

        return (pow(10, ( ((log10(rs_ro_ratio) - pcurve[1]) / pcurve[2]) + pcurve[0])));
      }``
      

      2 RL_VALUE in your MQ2 board should be 1 (kohm), R2 in the schematic.
      0_1482692240236_mq2-sch.jpg

      R 1 Reply Last reply
      2
      • Z zampedro

        1 look at the last line of the sketch:

          return (pow(10, ( ((log(rs_ro_ratio) - pcurve[1]) / pcurve[2]) + pcurve[0])));
        }``
        

        change to:

          return (pow(10, ( ((log10(rs_ro_ratio) - pcurve[1]) / pcurve[2]) + pcurve[0])));
        }``
        

        2 RL_VALUE in your MQ2 board should be 1 (kohm), R2 in the schematic.
        0_1482692240236_mq2-sch.jpg

        R Offline
        R Offline
        Reza
        wrote on last edited by Reza
        #5

        @zampedro thank you for help in 1.i change this .
        but about 2. that is my sensor pic.is that my R2 in board 1K ? i am weak in electronic.if this is not so what am i do ? thank you for help
        0_1482701911929_img_5799.jpg

        1 Reply Last reply
        0
        • Z Offline
          Z Offline
          zampedro
          wrote on last edited by
          #6

          yes, R2 is 1k. Change RL_VALUE from 5 to 1.
          0_1482728855950_mq2_a.JPG

          I suggest you use the MQ-2 sensor library https://github.com/xerlay11/MQ-2-sensor-library and obviously change log and RL_VALUE.
          Regards

          R 1 Reply Last reply
          2
          • Z zampedro

            yes, R2 is 1k. Change RL_VALUE from 5 to 1.
            0_1482728855950_mq2_a.JPG

            I suggest you use the MQ-2 sensor library https://github.com/xerlay11/MQ-2-sensor-library and obviously change log and RL_VALUE.
            Regards

            R Offline
            R Offline
            Reza
            wrote on last edited by
            #7

            @zampedro
            thank you and i am sorry for questions.
            so in sketch this is enough just i change RL_VALUE 5 to 1 and change log to log10 ?
            thank you for help

            1 Reply Last reply
            0
            • Z Offline
              Z Offline
              zampedro
              wrote on last edited by
              #8

              It should be enough to read ppm from the sensor.

              R 2 Replies Last reply
              1
              • Z zampedro

                It should be enough to read ppm from the sensor.

                R Offline
                R Offline
                Reza
                wrote on last edited by
                #9

                @zampedro
                thank you my friend . after 1 day this is work well.so i will test in next days. thank you

                1 Reply Last reply
                0
                • Z zampedro

                  It should be enough to read ppm from the sensor.

                  R Offline
                  R Offline
                  Reza
                  wrote on last edited by
                  #10

                  @zampedro
                  hi friend after some day i have problem again with gas sensors mq2.
                  i use a air bag (full of gas) and put gas sensor in bag. some minutes i have 0ppm but after some minutes this is several report :
                  0_1485125889531_Untitledkekeke.jpg
                  i change RL_VALUE to 1 and use log10 in sketch but....

                  R 1 Reply Last reply
                  0
                  • R Reza

                    @zampedro
                    hi friend after some day i have problem again with gas sensors mq2.
                    i use a air bag (full of gas) and put gas sensor in bag. some minutes i have 0ppm but after some minutes this is several report :
                    0_1485125889531_Untitledkekeke.jpg
                    i change RL_VALUE to 1 and use log10 in sketch but....

                    R Offline
                    R Offline
                    Reza
                    wrote on last edited by
                    #11

                    i test again today. with a bag full of gas. but today gas sensor is 0 ppm and dont change :( what is problem ! thank you

                    Z 1 Reply Last reply
                    0
                    • R Reza

                      i test again today. with a bag full of gas. but today gas sensor is 0 ppm and dont change :( what is problem ! thank you

                      Z Offline
                      Z Offline
                      zampedro
                      wrote on last edited by
                      #12

                      @Reza
                      You are sending a 16 bits signed integer, so the maximum value is 32767.

                      send(msg.set((int16_t)ceil(valMQ)));
                      

                      Try to send GAS_SMOKE instead of GAS_CO.
                      Pay attention to the power supply, the sensor need 5v 200mA ( i misured 130ma).

                      R 1 Reply Last reply
                      0
                      • Z zampedro

                        @Reza
                        You are sending a 16 bits signed integer, so the maximum value is 32767.

                        send(msg.set((int16_t)ceil(valMQ)));
                        

                        Try to send GAS_SMOKE instead of GAS_CO.
                        Pay attention to the power supply, the sensor need 5v 200mA ( i misured 130ma).

                        R Offline
                        R Offline
                        Reza
                        wrote on last edited by
                        #13

                        @zampedro
                        so when must of 32767 so show me a - value ? but this is my problem yesterday.now i test again with a bag but dont any change and this is 0 ppm always . i dont use 5v pin in arduino for sensor. i use 5v from vcc power supply for vcc sensor .and power supply is 1.5A
                        for change to gas smoke this is enough change this line :

                        uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_CO);
                        

                        to

                        uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_SMOKE);
                        

                        ?

                        Z 1 Reply Last reply
                        0
                        • R Reza

                          @zampedro
                          so when must of 32767 so show me a - value ? but this is my problem yesterday.now i test again with a bag but dont any change and this is 0 ppm always . i dont use 5v pin in arduino for sensor. i use 5v from vcc power supply for vcc sensor .and power supply is 1.5A
                          for change to gas smoke this is enough change this line :

                          uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_CO);
                          

                          to

                          uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_SMOKE);
                          

                          ?

                          Z Offline
                          Z Offline
                          zampedro
                          wrote on last edited by
                          #14

                          @Reza
                          you can't convert 16 bits unsigned integers greater than 32767 into 16 bits signed integers because they're treated as negative numbers according to 2's complement math.
                          You must check with a multimeter VCC(for supply voltage sanity) and DOUT( for ppm reading) on the sensor board.

                          I see two lines to be modified:

                          if (b == 0) { 
                              uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_CO);
                          
                          
                          if (c == 0) {
                            uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_CO);
                          
                          R 1 Reply Last reply
                          0
                          • Z zampedro

                            @Reza
                            you can't convert 16 bits unsigned integers greater than 32767 into 16 bits signed integers because they're treated as negative numbers according to 2's complement math.
                            You must check with a multimeter VCC(for supply voltage sanity) and DOUT( for ppm reading) on the sensor board.

                            I see two lines to be modified:

                            if (b == 0) { 
                                uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_CO);
                            
                            
                            if (c == 0) {
                              uint16_t valMQ = MQGetGasPercentage(MQRead(MQ_SENSOR_ANALOG_PIN) / Ro, GAS_CO);
                            
                            R Offline
                            R Offline
                            Reza
                            wrote on last edited by
                            #15

                            @zampedro
                            i use AOUT in wiring !in the site and sketch told use AOUT.... do you sure i must use DOUT?

                            Z 1 Reply Last reply
                            0
                            • R Reza

                              @zampedro
                              i use AOUT in wiring !in the site and sketch told use AOUT.... do you sure i must use DOUT?

                              Z Offline
                              Z Offline
                              zampedro
                              wrote on last edited by
                              #16

                              @Reza
                              sorry, I made a mistake. You have to check AOUT.

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              13

                              Online

                              11.7k

                              Users

                              11.2k

                              Topics

                              113.0k

                              Posts


                              Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • MySensors
                              • OpenHardware.io
                              • Categories
                              • Recent
                              • Tags
                              • Popular