Java教程

基于stm32f103zet6的——温度检测模块总结1

本文主要是介绍基于stm32f103zet6的——温度检测模块总结1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

温湿度检测部分

温湿度传感器选用DHT21,传输协议为单总线协议。传感器模块有三根数据线,3.3V-5.2V的VCC(红色),建议供电5V;GND(黑色);SDA数据传输线(黄色),可用于读写数据。所测量的湿度数据范围为0-99.9%RH,25摄氏度下精度为正负3%RH;温度测量范围为-40℃-80摄氏度,精度为正负0.3摄氏度,最大精度为正负1摄氏度。

1.单总线通信特殊说明

1.典型电路中建议连接线长度小于30米事用5.1K上拉电阻,大于30米时根据实际情况减低上拉电阻的阻值。

2.使用3.3V电压供电时连接线长度不得大于100cm。否则线路压降会导致传感器供电不足,造成测量偏差。

3.读取传感器最小间隔时间为2S,读取时间小于2S可能会导致读取数值不准确或者通信不成功。

4.每次读出的温湿度数值是上一次测量的结果,欲获取实时数据,需连续读取两次,

建议连续多次读取传感器,且每次读取传感器间隔大于 2 秒即可获得准确的数据。

2.什么叫单总线协议?

单总线即只有一根数据线,系统中的数据交流以及控制均由数据线完成。该总线连接处理器的漏级开路或者三态端口,单总线要求外接一个5.1K的上拉电阻,这样主机在不闲置时,状态为高电平。

3.单总线传输时序

DHT21一次只能传输40位数据,数据的最高八位为湿度高8为,其次8位为湿度低8位,再其次8位为温度高8位,然后是温度低8为,最后8为为校验位。如图:

![![AEUU26LG%_HU7Q(C70H](D:\博客\宠物箱总结\A]EUU26LG%_HU7Q(C70H.png)

用户主机(MCU)发送一次起始信号(把数据总线 SDA 拉低至少 800µs)后,AM2301 从休眠模式转换到高速模式。待主机开始信号结束后,AM2301 发送响应信号,从数据总线 SDA 串行送出 40Bit的数据,先发送字节的高位;发送的数据依次为湿度高位、湿度低位、温度高位、温度低位、校验位,发送数据结束触发一次信息采集,采集结束传感器自动转入休眠模式,直到下一次通信来临。如图:
这篇关于基于stm32f103zet6的——温度检测模块总结1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!