MQ-7 sensor sending same value to Lopy4



  • Hi,

    I am trying to interface my CO carbon monoxide sensor (MQ 7) to the Kopy4 and expansion board. i have wired the system up as its shown on the tutorial linked below. https://core-electronics.com.au/tutorials/temperature-sensing-pycom-tmp36-tutorial.html
    I am aware that that tutorial uses the TMP36 but the wiring are the same. I'm using pymakr atom plugin IDE. Program A is the program listed on the tutorial and program B is the minor details i changed but as you can see i just changed the print statements. I wanted to outline this to avoid any confusion. The output is what I'm getting below.

    At first I thought it was working but when I tested it with a lighter the figures didn't change and that ADC count = 4095 and CO value = 60.0 C was the only data I'm receiving. Any help with this would be much appreciated

    (A)-------------------------------------------------------------------------------
    import time
    import machine

    adc = machine.ADC() # create an ADC object
    apin = adc.channel(pin='P16') # create an analog pin on P16 & connect TMP36
    while True:
    print("")
    print("Reading CO Sensor...")
    value = apin()
    print("ADC count = %d" %(value))

    # LoPy  has 1.1 V input range for ADC
    temp = ((value * 1100 ) / 4096 - 500) / 10
    print("CO value = %5.1f C" % (temp))
    
    time.sleep(10) 
    

    (B)---------------------------------------------------------------------------------
    import time
    import machine

    adc = machine.ADC()
    apin = adc.channel(pin='P16')
    while True:
    print("")
    print("Reading CO Sensor...")
    value = apin()
    print("ADC count = %d" %(value))

    # LoPy  has 1.1 V input range for ADC
    temp = ((value * 1100 ) / 4096 - 500) / 10
    print("CO value = %5.1f C" % (temp))
    
    time.sleep(10)
    

    Reading CO Sensor...
    ADC count = 4095
    CO value = 60.0 C



  • @Benjamin-Mavinga I'm not sure how the wiring could be the same? The TMP36 has 3 pins, the MQ7 has 6, and you need to supply a variable voltage to the MQ7 to change temperature of the heating element and measure the resulting change in conductivity?



  • @Benjamin-Mavinga an adc value if 4096 means overflow. The input range of the ADC is wrong.


Log in to reply
 

Pycom on Twitter