51单片机驱动AHT10温湿度传感器

  • AHT10温湿度传感器
    • AHT10参数
    • 工作原理
    • 数据转换
  • 驱动
    • 接线
    • 驱动代码
    • 实验结果

AHT10温湿度传感器

AHT10是新一代温湿度传感器,传感器输出经过标定的数字信号,通过IIC通讯方式输出。其配有一个全新设计的 ASIC专用芯片、一个经过改进的MEMS半导体电容式湿度传感元件和一个标准的片上温度传感元件,大大提升了传感器的可靠性,在恶劣环境下稳定工作。

AHT10参数

名称 参数值
供电 1.8-3.6V
相对湿度分辨率 0.024%RH
相对湿度精度 ±2%RH
相对湿度测量范围 0-100%RH
温度分辨率 0.01℃
温度精度 ±0.3℃
湿度测量范围 -40-85℃
通讯方式 IIC

工作原理

由于AHT10为IIC通讯,在开发使用时需要查看并了解它的寄存器和通讯时序。
时序说明:

启动时序图:

停止时序图:

功能命令:

数据转换

相对湿度:

温度:

驱动

接线

STC89C52RC AHT10
VCC VCC
GND GND
P1^0 SCL
P1^1 SDA

驱动代码

AHT10驱动函数声明:

/*AHT10初始化函数*/
bit AHT10_int(void);
/*读取状态字函数*/
uchar Read_Status(void);
/*判断状态字bit3是否使能函数*/
bit  Judge(void);
/*AHT10软件复位函数*/
bit AHT10_RST(void);
/*AHT10初始化并且校准使能位*/
void AHT10_INIT(void);
/*AHT10触发测量函数*/
bit AHT10_Start(void);
/*数据读取处理函数*/
bit AHT10_Read_TH(uint *Temp,uint *Hum);

数据处理:

bit AHT10_Read_TH(uint *Temp,uint *Hum)
{uchar i;uchar Data[6] = {0};unsigned long retudata = 0;AHT10_Start();delay_ms(80);while((Read_Status()&0x80)==0x80);Start_I2c(); //起动总线函数SendByte(IIC_Add_R); //字节数据发送函数if(ack == 0) return 0;for(i = 0;i<6;i++){Data[i] = RcvByte(); //无子地址读字节数据函数 if(i<5){Ack_I2c(0); //应答子函数  a = 0  应答  a = 1不应答}elseAck_I2c(1); //应答子函数  a = 0  应答  a = 1不应答}Stop_I2c(); //结束总线函数retudata = retudata+Data[1];retudata = (retudata<<8)+Data[2];retudata = ((retudata<<8)+Data[3])>>4;*Hum = (retudata*1000/1024/1024);retudata = 0;retudata = ((Data[3] & 0x0f)<<8)|Data[4];retudata = (retudata<<8)|Data[5];*Temp = (retudata*2000/1024/1024 - 500); //数据精确到一位小数return 1;
}

主函数:

void main()
{   unsigned int TEMP = 0,Hum = 0;UART_INIT();AHT10_INIT();printf("初始化成功");while(1){while(Judge()==0)//等到校准输出使能位为1,才读取。{AHT10_INIT();//如果为0再使能一次delay_ms(30);}AHT10_Read_TH(&TEMP,&Hum);printf("温度:%d%d.%d℃ 湿度:%d%d.%d%\r\n",TEMP/100,TEMP%100/10,TEMP%100%10,Hum/100,Hum%100/10,Hum%100%10);delay_ms(1000);}
}

实验结果

室温:

手指按压在传感器上:

51单片机驱动AHT10温湿度传感器相关推荐

  1. 51单片机控制DHT11温湿度传感器,并使用OLED屏幕显示

    目录 前言 一.MCU主控选型 二.DHT11温湿度传感器 1.模块介绍 2.软件实现 DHT11.c DHT11.h 三.OLED显示屏 1.模块介绍 2.软件实现 OLED.c OLED.h OL ...

  2. 基于STC单片机和AHT10温湿度传感器的温湿度计的设计

    大家好,我是『芯知识学堂』的SingleYork,今天笔者要跟大家分享一款"温湿度计"的制作,这是笔者曾经发表过的原文地址:https://www.icxbk.com/articl ...

  3. 使用51单片机 驱动DHT22温湿度模块 串口显示温湿度

    使用51 驱动DHT22温湿度 串口显示 一.基本参数 二.接线 三.部分代码 引脚定义 通信协议 时序对用代码 四.实验现象 五.注意事项 一.基本参数 二.接线 DHT22温湿度模块 STC89C ...

  4. 利用ESP8266-12F实现与51单片机通信及温湿度传感器数据交互

    文章目录 前言 一.ESP8266是什么? 二.使用步骤 1.将keil5生成的hex文件,下载到stc89c52单片机中 2.打开stc-isp内部自带的串口助手 3.利用AT指令集进行配网 4.手 ...

  5. sht11的linux程序,使用51单片机实现SHT11温湿度传感器检测的程序和电路图

    下面是原理图: 下面是与MCU连接的典型电路: 下面是源代码: #include <reg52.h> #include <intrins.h> /*************** ...

  6. STM32单片机硬件I2C读取AHT10温湿度传感器数据

    STM32使用硬件IIC读取AHT10温湿度传感器的数据并显示在0.96寸OLED屏上. 我用的单片机是STM32F103C8T6,程序用的是ST标准库写的. STM32使用硬件I2C读取SHTC3温 ...

  7. 51单片机驱动TCS3200颜色识别传感器

    51单片机驱动TCS3200颜色识别传感器 TCS3200 简介 输出频率与滤光器选择说明 实验说明 接线 驱动 驱动说明 主要代码 主函数 实验现象 验证: 实验注意事项: TCS3200 简介 T ...

  8. 课设-51单片机+PM2.5+温湿度(程序+原理图+Protel仿真)

    51单片机PM2.5+温湿度(程序+原理图+Protel仿真) 一.功能 二.模块 三.代码程序 四.PCB原理图 一.功能 本系统以STC89C52单片机为核心,主要包括传感器温湿度采集,传感器PM ...

  9. 基于51单片机驱动ADXL346 (LCD1602显示)

    基于51单片机驱动ADXL346 (LCD1602显示) 一.ADXL346传感器介绍 1.实物图 2.产品说明 3.电气参数 4.通信协议 二.驱动代码 1.引脚定义 2.初始化函数 3.主函数 三 ...

最新文章

  1. MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen
  2. bootstrapTable语言包设置
  3. [原]巧用RenderTexture
  4. 主页被挟持 火狐浏览器_看过来!关于IE、360浏览器访问学校部分网站的设置说明在这里...
  5. 模式识别机器学习术语
  6. DOS获取局域网内所有正在使用的ip地址
  7. 2010.07.13_19:30
  8. 【Java基础篇】try catch finally语句包含return语句时的执行过程
  9. Lua学习小记——语言
  10. 使用Socket使用域名连接服务器
  11. sql vb xml 换行_vb怎么写换行代码 vb文本框怎么换行输出
  12. 3D Max 2016安装教程
  13. PreScan笔记(1)——入坑之简单介绍和Demo
  14. java毕业设计房屋租赁管理系统Mybatis+系统+数据库+调试部署
  15. python 状态空间模型_基于状态空间的建模过程
  16. pyqt4的一些相关资料整理
  17. 在【守望先锋】学习C++的类与对象
  18. css2D、3D详解
  19. notability录音定位_请问如何在iPad上科学地使用good notes和notability?
  20. 使用beautiful soup解析xml

热门文章

  1. 怎么在pdf文件上添加水印
  2. HBase最佳实践-用好你的操作系统
  3. Unity Shader知识点(三)高光反射Shader
  4. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试六十题 10 12
  5. 圆弧中点坐标值求解(二维平面三维空间)(3.1增加三维部分)-②
  6. 最短路径问题(附航班最小价格练习)
  7. 最好用的bt下载器qbittorrent下载安装使用教程
  8. 一.树和二叉树的应用
  9. Linux用命令启动程序
  10. Tag功能介绍—我们为什么打Tag?