DHT11是一种数字输出温湿度传感器,由芯片内部的温湿度传感器和一个8位单片机组成,在实际应用中常被用于测量环境温湿度。
DHT11芯片的读取过程分为单总线方式和双总线方式。单总线方式即是利用单片机的一个IO口与DHT11芯片进行通信。在读取时,单片机先将总线拉低一段时间,然后拉高,并等待DHT11芯片回应。DHT11芯片在检测到总线被拉低时,会延时一段时间后将总线拉低以回应。然后单片机再等待一段时间,让DHT11芯片输入数据。DHT11芯片的输出数据为40位,分别是湿度整数、湿度小数、温度整数、温度小数和校验和。
在读取一位数据时,DHT11芯片会将总线拉低一段时间,延时的时间长短表示数据位是0还是1。在读取完一位数据后,DHT11芯片会将总线拉高,使单片机进行下一次读取。在DHT11芯片和单片机进行通信时,DHT11芯片延时的时间需要控制在非常精确的范围内,否则就会读取错误的数据。而80us被认为是一个比较适合的延时时间,可以尽可能的保证数据的准确性。
除了延时时间的控制精度以外,DHT11芯片的可靠性还受到环境温湿度的影响。如果环境温湿度过高或过低,都会导致读取的数据不准确。此外,如果使用的单片机电压不稳定或接线不正确,也会影响DHT11芯片的数据读取。