STM32 —— 温湿度( AHT20 )传感器入门

这篇具有很好参考价值的文章主要介绍了STM32 —— 温湿度( AHT20 )传感器入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

STM32 —— 温湿度( AHT20 )传感器入门

dht20和aht20,stm32,单片机,嵌入式硬件

温湿度的具体使用方法可以看官方给出的基于 STM32 的历程,这里只进行简单介绍

官方历程如下:

  1. AHT20-21 DEMO V1_3(stm32)

  2. AHT20在STM32上的例程 V1.4

简介

DHT20 是 DHT11 的全新升级产品,配置了专用的 ASIC 传感器芯片、高性能的半导体硅基电容式湿度传感器和一个标准的片上温度传感器,并使用了标准 I²C 数据输出信号格式。其性能已经大大提升,并且超过了前一代传感器( DHT11 )的可靠性水平。新一代升级产品,经过改进使其在高温高湿环境下的性能更稳定;同时,产品的精度、响应时间、测量范围都得到了大幅的提升。每一个传感器的出厂都经过严格的校准和测试,保障并满足客户的大规模应用

完全标定

数字输出,IIC 接口

优异的长期稳定性

响应迅速、抗干扰能力强

宽电压支持 2.2-5.5 VDC

传感器性能

相对湿度

湿度特性表:

参数 条件 最小 典型 最大 单位
分辨率 典型 - 0.024 - %RH
精度误差 典型 - +3/-3 - %RH
精度误差 最大 如下图 如下图 - %RH
重复性 - - +0.1/-0.1 - %RH
迟滞 - - +1/-1 - %RH
非线性 - - <0.1 - %RH
响应时间 τ63% - <8 - S
工作范围 - 0 - - %RH
长时间漂移 正常 - <0.5 100 %RH

25℃ 时相对湿度的典型误差和最大误差:

dht20和aht20,stm32,单片机,嵌入式硬件

温度

温度特性表:

分辨率 条件 最小 典型 最大 单位
分辨率 典型 - 0.01 -
精度误差 典型 - +0.5/-0.5 -
精度误差 最大 如下图 如下图 -
重复性 - - +0.1/-0.1 -
迟滞 - - +0.1/-0.1 -
响应时间 τ63% 5 - 30 S
工作范围 - -40 - 80
长时间漂移 - - <0.04 - ℃/yr

温度典型误差和最大误差:

dht20和aht20,stm32,单片机,嵌入式硬件

电器特性

电气特性表:

参数 条件 最小 典型 最大 单位
供电电压 典型 2.2 3.3 5.5 V
供电电流 IDD 休眠 - 250 - nA
供电电流 IDD 测量 - 980 - µA
功耗 休眠 - - 0.8 µW
功耗 测量 - 3.2 - mW

通讯协议:IIC

接口定义

dht20和aht20,stm32,单片机,嵌入式硬件
  1. 电源引脚 VDD GND :

DHT20的供电范围为 2.2-5.5 V ,VDD 接电压输入,GND 接地

  1. 串行时钟 SCL:

SCL 用于微处理器与 DHT20 之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小 SCL 频率

  1. 串行数据 SDA:

SDA 引脚用于传感器的数据输入和输出。当向传感器发送命令时,SDA 在串行时钟( SCL )的上升沿有效,且当 SCL 为高电平时,SDA 必须保持稳定。在 SCL 下降沿之后,SDA 值可被改变。为确保通信安全,SDA 的有效时间在 SCL 上升沿之前和下降沿之后应该分别延长至 TSU and THO 。当从传感器读取数据时,SDA 在 SCL 变低以后有效( TV ),且维持到下一个 SCL 的下降沿

应用电路接线图:

dht20和aht20,stm32,单片机,嵌入式硬件

为避免信号冲突,微处理器( MCU )必须只能驱动 SDA 和 SCL 在低电平。需要一个外部的上拉电阻(例如:4.7kΩ)将信号提拉至高电平。上拉电阻已包含在 DHT20 的微处理器的 I/O 电路中

注意:

  1. 产品在电路使用中主机 MCU 的供电电压必须与传感器一致

  2. 如需进一步提高系统的可靠性,可以对传感器电源加以控制

  3. 系统刚上电时,优先给传感器 VDD 供电,5ms 后才可以设置 SCL 和 SDA 高电平

电气特性

绝对最大额定值

前面已经给出了 DHT20 的电气特性,下表将给出绝对最大额定值仅为应力额定值和提供更多的信息

参数 最小 最大 单位
VDD to GND -0.3 5.5 V
数字 I/O 引脚( SDA ,SCL ) to GND -0.3 VDD+0.3 V
每个引脚的输入电流 -10 10 mA

在这样的条件下,该装置进行功能操作是不可取的。长时间暴露于绝对最大额定值条件下,可能影响传感器的可靠性

ESD 静电释放符合 JEDECJESD22-A114 标准(人体模式 ±4kV ),JEDECJESD22-A115(机器模式 ±200V )。如果测试条件超出标称限制指标,传感器需要加额外的保护电路

输入/输出特性

电气特性,如功耗、输入和输出的高、低电平电压等,依赖于电源供电电压。为了使传感器通讯顺畅,很重要的一点是,确保信号设计严格限制在本篇博客表中和图中给出的数据范围内)

数字输入输出焊盘的直流特性表:

参数 条件 最小 典型 最大 单位
输出低电压 VOL VDD = 3.3V,-4mA<IOL<0mA 0 - 0.4 V
输出高电压 VOH 70%VDD - VDD V
输出汇点电流 IOL - - -4 mA
输入低电压 VIL 0 - 30%VDD V
输入高电压 VIH 70%VDD - VDD V
输入电流 VDD = 5.5V,VIN = 0V to 5.5V - - +1/-1 uA

如无特殊声明,VDD = 2.2V to 5.5V ,T = -40°C to 80°C

数字输入/输出端的时序图:

dht20和aht20,stm32,单片机,嵌入式硬件

IIC 快速模式数字输入/输出端的时序特性表:

dht20和aht20,stm32,单片机,嵌入式硬件

传感器通讯

启动传感器

第一步,将传感器上电,电压为所选择的 VDD 电源电压(范围介于 2.2V 与 5.5V 之间)。上电后传感器需要不少于 100ms 稳定时间(此时 SCL 为高电平)以达到空闲状态即做好准备接收由主机( MCU )发送的命令

启动/停止时序

每个传输序列都以 Start 状态作为开始并以 Stop 状态作为结束

下图为启动传输状态(S)-当 SCL 为高电平时,SDA 由高电平转换为低电平。开始状态是由主机控制的一种特殊的总线状态,指示从机传输开始( Start 之后,BUS 总线一般被认为处于占线状态)

dht20和aht20,stm32,单片机,嵌入式硬件

下图为停止传输状态(P)-当 SCL 高电平时,SDA 线上从低电平转换为高电平。停止状态是由主机控制的一种特殊的总线状态,指示从机传输结束( Stop 之后,BUS 总线一般被认为处于闲置状态)

dht20和aht20,stm32,单片机,嵌入式硬件

发送命令

在启动传输后,随后传输的 IIC 首字节包括 7 位的 I²C 设备地址 0x38 和一个 SDA 方向位 x (读 R:‘1',写 W:‘0’)。在第 8 个 SCL 时钟下降沿之后,通过拉低 SDA 引脚( ACK 位),指示传感器数据接收正常。在发送测量命令 0xAC 之后,MCU 必须等到测量完成

dht20和aht20,stm32,单片机,嵌入式硬件

状态位说明表:

比特位 意义 描述
Bit[7] 忙闲指示 1--设备忙,处于测量状态 0--设备闲,处于休眠状态
Bit[6:5] 保留 保留
Bit[4] 保留 保留
Bit[3] 校准使能位 1--已校准 0--未校准
Bit[2:0] 保留 保留

注意:在第一步的校准状态检验只需要上电时检查,在正常采集过程无需操作

传感器读取流程

  1. 上电后要等待不少于 100ms ,读取温湿度值之前,通过发送 0x71 获取一个字节的状态字,如果状态字和 0x18 相与后不等于0x18,初始化 0x1B、0x1C、0x1E 寄存器,详细初始化流程可以参考官网历程,已经给出相关代码;如果相等,执行下一步

  2. 等待 10ms 发送 0xAC 命令(触发测量),此命令参数有两个字节,第一个字节为 0x33 ,第二个字节为 0x00

  3. 等待 80ms 待测量完成,如果读取状态字 Bit[7] 为 0 ,表示测量完成,然后可以连续读取六个字节;否则继续等待

  4. 当接收完六个字节后,紧接着下一个字节是 CRC 校验数据,用户可以根据需要读出,如果接收端需要 CRC 校验,则在接收完第六个字节后发 ACK 应答,否则发 NACK 结束,CRC 初始值为 0XFF ,CRC8 校验多项式为:CRC[7:0] = \(1+x^4+x^5+x^8\)

  5. 计算温湿度值。

注意:在第一步的校准状态检验只需要上电时检查,在正常采集过程无需操作

dht20和aht20,stm32,单片机,嵌入式硬件

注意:传感器在采集时需要时间,主机发出测量指令( 0xAC )后,延时 80 毫秒以上再读取转换后的数据并判断返回的状态位是否正常。若状态比特位 [Bit7] 为 0 代表数据可正常读取,为 1 时传感器为忙状态,主机需要等待数据处理完成

信号转换

相对湿度转换

相对湿度 RH 都可以根据 SDA 输出的相对湿度信号 SRH 通过如下公式计算获得(结果以 %RH 表示)

\[RH[\%] = (\frac{S_{Rh}}{2^{20}}) * 100% \]

温度转换

温度 T 都可以通过将温度输出信号 ST 代入到下面的公式计算得到(结果以温度 ℃ 表示)

\[T[℃] = (\frac{S_T}{2^{20}}) * 200 - 50 \]

环境稳定性

如果传感器用于装备或机械中,要确保用于测量的传感器与用于参考的传感器感知的是同一条件的温度和湿度。如果传感器被放置于装备中,反应时间会延长,因此在程序设计中要保证预留足够的测量时间。DHT20 传感器依据奥松温湿度传感器企业标准进行测试。传感器在其它测试条件下的表现,我们不予保证,且不能作为传感器性能的一部分

代码设计

官方给出的函数如下,这里只需要在我们使用的时候直接调用即可:

#ifndef _AHT20_DEMO_
#define _AHT20_DEMO_

#include "stm32f10x.h"  

void Delay_N10us(uint32_t t);//延时函数
void SensorDelay_us(uint32_t t);//延时函数
void Delay_4us(void);		//延时函数
void Delay_5us(void);		//延时函数
void Delay_1ms(uint32_t t);	
void AHT20_Clock_Init(void);		//延时函数
void SDA_Pin_Output_High(void)  ; //将PB15配置为输出 , 并设置为高电平, PB15作为I2C的SDA
void SDA_Pin_Output_Low(void);  //将P15配置为输出  并设置为低电平
void SDA_Pin_IN_FLOATING(void);  //SDA配置为浮空输入
void SCL_Pin_Output_High(void); //SCL输出高电平,P14作为I2C的SCL
void SCL_Pin_Output_Low(void); //SCL输出低电平
void Init_I2C_Sensor_Port(void); //初始化I2C接口,输出为高电平
void I2C_Start(void);		 //I2C主机发送START信号
void AHT20_WR_Byte(uint8_t Byte); //往AHT20写一个字节
uint8_t AHT20_RD_Byte(void);//从AHT20读取一个字节
uint8_t Receive_ACK(void);   //看AHT20是否有回复ACK
void Send_ACK(void)	;	  //主机回复ACK信号
void Send_NOT_ACK(void);	//主机不回复ACK
void Stop_I2C(void);	  //一条协议结束
uint8_t AHT20_Read_Status(void);//读取AHT20的状态寄存器
uint8_t AHT20_Read_Cal_Enable(void);  //查询cal enable位有没有使能
void AHT20_SendAC(void); //向AHT20发送AC命令
uint8_t Calc_CRC8(uint8_t *message,uint8_t Num);
void AHT20_Read_CTdata(uint32_t *ct); //没有CRC校验,直接读取AHT20的温度和湿度数据
void AHT20_Read_CTdata_crc(uint32_t *ct); //CRC校验后,读取AHT20的温度和湿度数据
void AHT20_Init(void);   //初始化AHT20
void JH_Reset_REG(uint8_t addr);///重置寄存器
void AHT20_Start_Init(void);///上电初始化进入正常测量状态、

注意:这里我们两次获取温度的间隔最好不小于 1.5s ,否则会导致温度不准或传输错误数据等结果文章来源地址https://www.toymoban.com/news/detail-729171.html

到了这里,关于STM32 —— 温湿度( AHT20 )传感器入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32+DHT11温湿度传感器

    DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次 通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数 部分用于以后扩展,现读出为零.操作流程如下: 一次完整的数据传输为40bit,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据

    2023年04月13日
    浏览(50)
  • STM32--DHT11温湿度传感器

    本文介绍基于STM32F103实现的DHT11温湿度传感器数据采集及显示,完整代码见文末链接 一、DHT11传感器简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期

    2024年02月16日
    浏览(54)
  • STM32—DHT11温湿度传感器

    (1).下图一是DHT11总的时序图。 (2).图二对应图一的左边黑色部分,图三对应图一的绿色部分,图四的左部分图对应图一的红色部分,图四的右部分对应图一的黄色部分。 (3).首先图二部分是单片机向DHT11发送我要开始的信号,此时单片机IO口处于输出模式,输出低电平至少18MS,

    2024年02月19日
    浏览(56)
  • stm32连接DHT11温湿度传感器

    目录 1. DHT11简介 1.1. 连接电路  1.2. 串行接口 (单线双向)  2. cubeMX设置 3. 代码开发  3.1. 实现定时函数 3.2. 打开串口调试 3.4. 测试代码实现 4. 运行效果 信息如下: 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使 用合适的上拉电阻  DHT11的供电电压为 3-5

    2023年04月16日
    浏览(50)
  • stm32读取DHT11温湿度传感器

    我们知道DHT11是单总线协议,只有一根数据线。 且内部有个上拉电路(下图)。那么数据线默认就是高电平那接下来就可以讲解主机如何和DHT11通讯的 读取DHT11的芯片手册,可以知道,DHT11一次完成的数据输出是40bit,高位先出。 格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温

    2024年02月09日
    浏览(51)
  • STM32+DHT11采集温湿度传感器数据

            DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够 实时的采集本地湿度和温度。 DHT11 与单片机之间能采用简单的单总线进行通信,仅

    2024年02月07日
    浏览(40)
  • 【STM32(HAL库)--DHT11温湿度传感器】

    stm32控制DHT11温湿度传感器,进行温湿度的读取.以下是自己的一点学习过程和心得,若有不妥之处,还望各位大佬指正,在下感激不尽. DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器 。 它应用专用的数字模块采集技术温湿度传感技术, 确保产品具有极高

    2024年04月15日
    浏览(48)
  • 嵌入式 STM32 SHT31温湿度传感器

    目录 简介 1、原理图  2、时序说明  数据传输 起始信号  结束信号  3、SHT31读写数据  SHT31指令集 读数据  温湿度转换 4、温湿度转换应用  sht3x初始化 读取温湿度  什么是SHT31?  一主机多从机--通过寻址的方式--每个从机都有唯一的地址(器件地址0x44+引脚地址)1 + 读写位

    2024年02月01日
    浏览(65)
  • 【STM32】DHT11温湿度模块传感器详解&代码

    DHT11是数字温湿度传感器,测量范围:湿度20%-95%,温度0-50℃,广泛应用于加湿器、温湿度计、空调、汽车等领域。 如上图DATA引脚用于MCU与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右(超时时间的判断)。一次完整的数据传输为40bit,高位先出(MSB最高

    2024年02月12日
    浏览(51)
  • STM32+DHT11温湿度传感器(含完整代码)

    前言 DHT11数字温湿度传感器是一种数字信号输出的温湿度传感器,具有高可靠性和长期稳定性。它采用专用的数字模块和温湿度传感技术,提供准确的温湿度数据。传感器内部包含感湿元件和测温元件,并与高性能单片机连接。因此,该传感器具有优异的品质、快速响应、抗

    2024年04月08日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包