DS18x20 temperature sensor: temp.read_temp_async() AFTER temp.start_conversion()?



  • The Pycom documentation for the Onewire library now gives the following example on how to read a DS18x20 temperature sensor:

    import time
    from machine import Pin
    from onewire import DS18X20
    from onewire import OneWire
    
    # DS18B20 data line connected to pin P10
    ow = OneWire(Pin('P10'))
    temp = DS18X20(ow)
    
    while True:
        print(temp.read_temp_async())
        time.sleep(1)
        temp.start_conversion()
        time.sleep(1)
    

    I would think that the "print(temp.read_temp_async())" statement needs to come AFTER the "temp.start_conversion()" statement, not before. And that is also how it works for me. When I do the conversion after the read, I get impossible temperature values. Or do I get something wrong here? In a loop (as in the above example) it works of course both ways.



Pycom on Twitter