In my application I'm required to read all sensors through I2C bus. No sensors should be connected to MCU directly.
At this moment I need to read temperature and humidity (DHT22 sensor).
In order to read data from DHT22 I need to switch data pin to output first and then after some high/low operations and delay I can switch it to input and read data from sensor.
As an ADC IC I have PCF8591. I don't quite understand how to achieve this with PCF8591. Is there a way to do so?
Maybe I should be using other ADC/I2C?
Best Answer
Not in any useful sense. The DHT22 communicates digitally, using a protocol described in the datasheet. It doesn't output an analog temperature signal; if you want that, use another part, like the LM35.
You can't use an ADC to read the DHT22 because:
It's not an analog signal. (I mean, you could use an ADC to read a digital signal, but it'd be a huge waste.)
The DHT22 doesn't start outputting its status until it receives a pulse from the host MCU. If you hooked it up to an ADC, it'd just sit there and not do anything.