1 / 12
文档名称:

(完整word版)DHT22数字温湿度传感器AM2302温湿度模块(带说明).docx

格式:docx   大小:171KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

(完整word版)DHT22数字温湿度传感器AM2302温湿度模块(带说明).docx

上传人:guoxiachuanyue001 2021/4/11 文件大小:171 KB

下载得到文件列表

(完整word版)DHT22数字温湿度传感器AM2302温湿度模块(带说明).docx

文档介绍

文档介绍:AM2302温湿度传感器 C程序(测试可以用)
2017-8-13
说明:
DHT22与DHT11程序基本相同,DHT11起始信号拉低18ms, DHT22起始信号拉低是 800us,用户 主机(MCU )发送一次起始信号(把数据总线 SDA拉低至少800 ^s)后,AM2302从休眠模式转换到高速
模式。待主机开始信号结束后, AM2302发送响应信号,从数据总线 SDA串行送出40Bit的数据,先发送
字节的高位;发送的数据依次为湿度高位、湿度低位、温度高位、温度低位、校验位,发送数据结束触发 一次信息采集,采集结束传感器自动转入休眠模式,直到下一次通信来临。
注意事项:
与DHT11相同,一次采集8个位数据,循环4次采集完成所有数据,40位采集完成后,校验数据, 如果数据正确,将高 8位左移8位与低8位相或,再保存到一个 16位变量中,就可以得到一个整数值。 默认采集的数据是实际值的 10倍,例如当前实际温度是 ,采集到的数据是 327,目的是为了编程
时方便分离数据。(详细见后面说明书)
0000 0010 1000 1100 0000 0001 0101 1111
湿度数据 温度数据 校验和
湿度高8位+湿度低8位+温度高8位+温度低8位=的末8位=校验和
如果需要处理零下值,16位的最高位为1表示负数,温度最大量程: -20~80度,分辨率:。
如果用数据码管显示且有中断,采集数据开始需要关中断,采集结束开中断,否则在采集数据过程
中,中断会打断 DHT22时序,造成采集数据不正确。
每次采集间隔大于1秒,否则采集数据不准确。
C程序:
DHT22代码,使用时直接调
为了方便程序阅读,其它器件的初始化及定义都删除掉了,以下代码纯 用RH函数即可。由于程序多次修改,可能有多余的变量,大家自己清理下。
RH函数调用后,以下四个变量会得相应的数据
R_H
湿度咼
8位
R_L
湿度低
8位(包含小数)
T_H
温度咼
8位
T_L
湿度低
8位(包含小数)
如果采集的数据是:0000 0010 1000 1100 0000 0001 0101 1111
由上面四个变量是16位,采集数据是8位,分四次采完,8位放在16位里面应该是这样:
R_H= 00000000 00000010
R_L= 00000000 10001100
所以R_H左移8个位或上R_L才是我们要的数据。 R_H =R_H & R_L
以上采集数据湿度为 652,湿度为351,再除以10就是实际温湿度值。
#include <>
typedef unsigned
char
U8;
typedef signed
char
S8;
*/
typedef unsigned
int
U16;
typedef signed
int
S16;
typedef unsigned
long
U32;
量 */
typedef signed
long
S32;
typedef float
F32;
度) */
typedef double
F64;
度) */
#include <>
//
/* defined for unsigned 8-bits integer variable /* defined for signed 8-bits integer variable
/* defined for unsigned 16-bits integer variable /* defined for signed 16-bits integer variable /* defined for unsigned 32-bits integer variable
/* defined for signed 32-bits integer variable
/* single precision floating point variable (32bits)
/* double precision floating point variable (64bits)
无符号 8 位整型变量 */ 有符号 8 位整型变量
无符号 16 位整型变量 */
有符号 16 位整型变量 */
无符号 32 位整型变
有符号 32 位整型变量 */ 单精度浮点数( 32 位长
双精度浮点数 (64 位长
#define uchar unsigned char
#define uint unsigned in