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

TC77温度传感器驱动仿真

1、TC77介绍

TC77 是一款可串行访问的数字温度传感器,特别适合低成本和小尺寸应用。 温度数据从板载热感测元件转换而来,并可作为 13 位二进制补码数字字随时提供。 与 TC77 的通信是通过 SPI/Microwire 兼容接口完成的。 该器件具有每 LSB 0.0625°C 的 12 位加符号温度分辨率。

TC77 在 +25°C 至 +65°C 的温度范围内提供 +/-1.0°C(最大值)的温度精度。 配置寄存器中的 SHUTDOWN 位可用于激活低功耗待机模式(典型值为 0.1 uA)。 工作时,TC77 仅消耗 250 µA(典型值),最大 400 µA。 小尺寸、低安装成本和易用性使 TC77 成为在各种系统中实施热管理的理想选择。

TC77有如下特性:

  • 3 线 SPI™/Microwire 兼容接口
  • 13 位分辨率(0.0625°C/位)
  • ±1°C 精度从 +25°C 到 +65°C
  • ±2°C 精度,-40°C 至 +85°C
  • ±3°C 精度从 -55°C 到 +125°C
  • 低工作电流:250 uA(典型值)
  • 关断模式:1 uA(最大值)
  • 提供节省空间的 SOT-23 封装

在这里插入图片描述

TC77的引脚功能如下:

在这里插入图片描述

典型的应用电路如下:

在这里插入图片描述

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
int CSPin = 4;    
int MISOPin = 3;
int SCKPin = 5;
byte byte1;
byte byte2;
int temp;

void setup()
{
pinMode(CSPin, OUTPUT); //
digitalWrite(CSPin, HIGH);
pinMode(SCKPin, OUTPUT);
pinMode(MISOPin, INPUT_PULLUP);
Serial.begin(9600);
// EDIT
delay(350); // Allow sensor to do its 1.st reading after powerUp. (I guess this can be removed)
}

void loop()
{
digitalWrite(CSPin, LOW);
delay(1); // EDIT: This may be removed ???
byte1 = shiftIn(MISOPin, SCKPin, MSBFIRST);
byte2 = shiftIn(MISOPin, SCKPin, MSBFIRST);
// EDIT. Add:
byte2 = byte2 & 0xF8; // mask away 3 bits. You dont need them
digitalWrite(CSPin, HIGH);
temp = (int) byte1 << 8;
temp |= byte2;
float temp2 = (float)temp / 128; // EDIT equals >>3 and \* 0.0625;
temp = temp >> 3; // Edit
//Serial.println(temp, BIN);
Serial.println(temp2);
Serial.println("\*\*\*\*");
delay(2000);
}

4、仿真结果

在这里插入图片描述

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