几种数字传感器介绍(一)————温湿度传感器(HDC1080)

一、温湿度采集传感器(HDC1080)

1.简要概述
HDC1080是一种集成温度传感器的数字湿度传感器,具有出色的测量精度和超低的功耗。其具有14位测量分辨率,相对湿度精度为±2%,温度精度为±0.2°C,工作时平均电流在0.7-1.3uA级。
传感器供电电压为2.7V至5.5V,具有较高的电压兼容性,通过单片机读取数据一般不再需要额外设置电平转换控制芯片。
图为传感器功能框图和典型应用
在这里插入图片描述

图为HDC1080传感器管脚图:
在这里插入图片描述
HDC1080的管脚较为简单,为3*3mm小型器件封装,总共有6个管脚:
SDA,SCL为IIC通信管脚,与单片机IIC接口相连,一般要求接上拉电阻,兼容5V和3.3V;
VDD,GND为电源和地管脚,VCC可接5V或3.3V电源;
NC为闲置管脚,一般悬浮或接地。

2.编程应用
HDC1080作为从设备通过IIC总线与主机通信,上电后至多15ms传感器便可进入工作状态。
读取传感器的数据需要访问HDC1080上的特定寄存器(寄存器地址为7位二进制数),将所需的寄存器地址值写入指针寄存器,寄存器字节首先发送MSB,然后是LSB。
在这里插入图片描述
如图为写命令时序图:
1.主机发出起始信号,发送7位从设备地址和写寄存器命令,从机接收后发出应答信号
2.主机发送8位寄存器地址,从机接收并发出应答信号
3.主机发送高八位数据,从机接收并发出应答信号
4.主机发送低八位数据,从机接收并发出应答信号,主机发出停止信号。
在这里插入图片描述
如图为读命令时序图:
1.主机发出起始信号,发送7位从设备地址和写寄存器命令,从机接收后发出应答信号
2.主机发送需要读取的寄存器地址,从机接收后返回应答信号
3.主机发出起始信号,发送7位从设备地址和读寄存器命令,从机接收发出应答信号
4.从机发送,主机接收高八位数据并发出应答信号
5.从机发送,主机接收低八位数据并发出应答信号,主机发出停止传输信号
在这里插入图片描述
如图为HDC1080寄存器地址及各寄存器作用表格,由此我们可以定义;

# define HDC1080_TEMPERATURE	0x00
# define HDC1080_HUMIDITY		0x01
# define HDC1080_CONFIGURATION	0x02
# define HDC1080_MANUFACTURER_ID 0xFE
# define HDC1080_DEVICE_ID		0xFF
# define HDC1080_SERIAL_ID_FIRST	0xFB
# define HDC1080_SERIAL_ID_MID	0xFC
# define HDC1080_SERIAL_ID_LAST	0xFD

根据写寄存器时序可写:

void HDC1080_WriteReg(u8 Addr,u16 Data)
{
	unsigned char data[2];
	data[0] = (uint8_t)((Data& 0xFF00) >> 8);        //高八位
	data[1] = (uint8_t)(Data & 0x00FF);				//低八位
	IIC_Start();   
	IIC_Send_Byte(0x80);   //·地址为10000000
	IIC_Wait_Ack();              //等待从机应答信号
	IIC_Send_Byte(Addr);   //写寄存器地址
	IIC_Wait_Ack();
	IIC_Send_Byte(data[0]);   //发送高八位
	IIC_Wait_Ack();
	IIC_Send_Byte(data[1]);   //发送低八位
	IIC_Wait_Ack();
	IIC_Stop();   //停止信号
}

根据读寄存器时序可写:

u16 HDC1080_ReadReg(u8 Addr)
{	  
    unsigned char data[2];;	    																 
    IIC_Start();   
	IIC_Send_Byte(0x80);     //·地址为10000000
	IIC_Wait_Ack();  
	IIC_Send_Byte(Addr);   
	IIC_Wait_Ack();
	IIC_Start();  
	IIC_Send_Byte(0x81);   //·地址为10000001
	IIC_Wait_Ack(); 
	data[1]=IIC_Read_Byte(1);   
	data[0]=IIC_Read_Byte(1);   
	IIC_NAck();   
    IIC_Stop();     
	return data;
}

温度和湿度寄存器为二进制格式的16位结果寄存器(2个LSB D1和D0始终为0)。采集结果始终为14位值。结果的准确性与选择的转换时间有关,计算公式如下:
在这里插入图片描述
在这里插入图片描述
其他更详尽的资料请自行参考数据手册。
参考资料:
1.HDC1080数据手册
2.博客:AnthonyYMH的HDC1080温湿度驱动 IIC I2C STM32,链接:https://blog.csdn.net/weixin_38075894/article/details/100625752?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163161913016780265415420%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163161913016780265415420&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-100625752.pc_search_es_clickV2&utm_term=hdc1080%E9%A9%B1%E5%8A%A8&spm=1018.2226.3001.4187

版权声明:本文为CSDN博主「m0_51294753」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_51294753/article/details/120084962

生成海报
点赞 0

m0_51294753

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

AD原理图设计与Clion源码工具学习

一、AD绘制电路原理图 1.准备工作 下载Altium Designer,具体安装步骤以及百度网盘分享参考:Altium Designer2018下载安装及基本使用 STM32F103C8T6元件库&#xff1a

HC-05主从模式自动连接配置

HC-05蓝牙模块主要用于短距离的数据无线传输领域。可以方便的和 PC蓝牙设备相连,也可以两个模块之间的数据互通。避免繁琐的线缆连接,能直接替代串口线。采用英国CSR公司BlueCore4-Ext 芯片&#xff0c

stm32f373利用esp8266连接onenet平台

学习目标: 1.注册onenet平台 2.esp8266引脚连接 3.stm32373代码移植编写 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一、注册onene