Arduino与Proteus仿真实例-MCP9802温度传感器驱动仿真

MCP9802温度传感器驱动仿真

1、MCP9802介绍

MCP9802 是一款数字温度传感器,能够读取 -55°C 至 +125°C 的温度。温度数据由集成温度传感器测量,寄存器设置还允许用户选择 9 位至 12 位温度测量分辨率,由模数转换器转换为数字字。当环境温度超过用户编程的设定点时,MCP9802 会通知主机控制器。 ALERT 输出可编程为用于恒温器操作的简单比较器或温度事件中断。与传感器的通信是通过与行业标准协议兼容的两线总线完成的。这允许读取当前温度、对设定点和滞后进行编程以及配置设备。 MCP9802 还包含 SMBus 超时逻辑以提高系统可靠性。小尺寸、低安装成本和易用性使 MCP9802 成为在各种应用中实施复杂温度系统管理方案的理想选择。MCP9802 传感器带有用户可编程寄存器,可为温度传感应用提供灵活性。 该传感器具有行业标准的 2 线 I2C 兼容串行接口,允许在单个串行总线中控制多达八个设备。

在这里插入图片描述

MCP9802具有如下特点:

  • 2 线 I²C™/SMBus 兼容接口
  • SMBus 超时
  • 用户可选择的 9 至 12 位分辨率
  • ±1°C 精度从 -10°C 到 +85°C
  • ±2°C 精度从 +85°C 到 +125°C
  • 低工作电流:220µA(典型值)
  • 关断模式:1µA(最大值)
  • 省电一键式温度转换测量
  • 节省空间的 SOT-23 封装
  • AEC-Q100 合格 1 级

MCP9802的引脚功能如下:

在这里插入图片描述

经典的MCP9802应用电路如下:

在这里插入图片描述

2、仿真电路原理图

在这里插入图片描述

3、仿真代码实现

本次实例使用到如下开源库:

演示代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <Arduino.h>
#include <MCP980X.h>

// LOCAL PROTOTYPES
void setup();
void loop();

// Instances
MCP980X mcp(0x48);

/\*\*
\* Init peripherals
\*/
void setup() {
Serial.begin(9600);
// Wait for Serial
while (!Serial) {
}
Serial.print("Initializing temperature sensor (float): ");
mcp.begin();
if (mcp.available()) {
// Set 12 bit sensor resolution
mcp.setResolution(12);
Serial.println("OK.");
} else {
Serial.println("failed. Check connections.");
while (true) {
}
}
}

/\*\*
\* Main loop
\*/
void loop() {
float temp = mcp.readTemperature();
Serial.println("Temperature: ");
Serial.print(temp, 4);
Serial.println("\*C");
Serial.print(mcp.toFahrenheit(temp), 4);
Serial.println("\*F");
Serial.println("--------");
delay(500);
}

4、仿真结果

在这里插入图片描述

文章来源: https://iotsmart.blog.csdn.net/article/details/121414275