AM2301

在这里插入图片描述
AM2301 的供电电压范围为 3.5V - 5.0V,建议供电电压为 5V。
微处理器与 AM2301 的连接典型应用电路如图 4 所示。单总线通信模式时,SDA 上拉后与微处理器的 I/O 端口相连
单总线通信特殊说明:
1.典型应用电路中建议连接线长度短于 30 米时用 5.1K 上拉电阻,大于 30 米时根据实际情 况降低上拉电阻的阻值。
2.使用 3.3V 电压供电时连接线长度不得大于 30cm。否则线路压降会导致传感器供电不足,
造成测量偏差。
3.读取传感器最小间隔时间为 2S;读取间隔时间小于 2S,可能导致温湿度不准或通信不成 功等情况。
4.每次读出的温湿度数值是上一次测量的结果,欲获取实时数据,需连续读取两次,
建议连续多次读取传感器,且每次读取传感器间隔大于 2 秒即可获得准确的数据。
单总线传送数据定义
SDA 用于微处理器与 AM2301 之间的通讯和同步,采用单总线数据格式,一次传送 40 位数据, 高位先出。具体通信时序如图 5 所示,通信格式说明见表 5
在这里插入图片描述
AM2301负温度并不是用补码来存放,直接把符号位看成1进行温度处理
当温度低于 0 ℃ 时温度数据的最高位置 1。
示例: -10.1 ℃ 表示为 1 000 0000 0110 0101
温度:0000 0000 0110 0101 = 0065H(十六进制)= 6×16 +5 = 101
=> 温度 = -10.1℃

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
步骤三:
AM2301 发送完响应后,随后由数据总线 SDA 连续串行输出 40 位数据,微处理器根据 I/O 电平 的变化接收 40 位数据。 位数据“0”的格式为: 50 微秒的低电平加 26-28 微秒的高电平; 位数据“1”的格式为: 50 微秒的低电平加 70 微秒的高电平; 位数据“0”、位数据“1”格式信号如图 8 所示: AM2301 的数据总线 SDA 输出 40 位数据后,继续输出低电平 50 微秒后转为输入状态,由于上拉电阻随之变为高电平
在这里插入图片描述
温湿度传感器AM2301对于负温度没有用补码存储,只是有符号位变成1,需要注意
对于AM2301需要接收40位数据,可以把32位数据位一起接收
humidity=(value>>28&0x0F)*4096+(value>>24&0x0F)*256+(value>>20&0x0F)*16+(value>>16&0x0f);
可以定义一个结构体
typedef struct _AM2301MeasurementResult
{
unsigned int state;
float humidity;
float temperature;

}AM2301MeasurementResult;
出自b站鸿则,缺小小

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值