欢迎来到军工软件开发人才培养基地——学到牛牛

温度传感器

时间:2024-05-06 07:01:10 来源:学到牛牛

温度模块是一种通过电子信号来测量环境温度的装置。它通常由温度传感器和信号转换电路两个部分组成,能够将温度变化转化为电压信号,并输出数字或模拟信号。温度模块可以广泛应用于各种领域,例如自动化控制、环境监测、医疗设备、汽车等。

 

 

参数表

 

 

温度传感器内部采用的数字温度传感器(DS8B20),DS18B20是一款常用的高精度的单总线数字温度测量芯片,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

传感器参数:

1,测温范围为-55°C到+125°C,在-10°C到+85°C范围内误差为±0.4°C

2,返回16位二进制温度数值

3,主机和从机通信使用单总线,即使用单线进行数据的发送和接收

4,在使用中不需要任何外围元件,独立芯片即可完成工作

5,掉电保护功能DS18B20内部含有EEPROM,通过配置寄存器可以设定数字转换精度和报警温度,子啊系统掉电以后,它仍可保存分辨率及报警温度的设定值。

6,每个DS8B20都有独立唯一的64位ID,宽电压供电,电压2.5V~5.5V

 

 

温度传感器原理图:

 

 

 

打开arduino IDE 加载库——ZIP库

 

 

 

将文件夹中的两个库都加载进去

 

 

 

打开示例程序tempertaure_test

将程序中的接口改成3(视自己所接口而改,这里只是说明接口要改)

 

 

示例程序:

#include <OneWire.h>

#include <DallasTemperature.h>

 

// Data wire is plugged into port 2 on the Arduino

#define ONE_WIRE_BUS 3

 

// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)

OneWire oneWire(ONE_WIRE_BUS);

 

// Pass our oneWire reference to Dallas Temperature. 

DallasTemperature sensors(&oneWire);

 

// arrays to hold device addresses

DeviceAddress insideThermometer, outsideThermometer;

 

void setup(void)

{

  // start serial port

  Serial.begin(9600);

 

  // Start up the library

  sensors.begin();

  

 // search for devices on the bus and assign based on an index.

  if (!sensors.getAddress(insideThermometer, 0));

  if (!sensors.getAddress(outsideThermometer, 1));

 

}

 

// function to print the temperature for a device

void printTemperature(DeviceAddress deviceAddress)

{

  float tempC = sensors.getTempC(deviceAddress);

  Serial.print("Temp C: ");

  Serial.print(tempC);

  Serial.print(" Temp F: ");

  Serial.println(DallasTemperature::toFahrenheit(tempC));

}

 

void loop(void)

  sensors.begin();

  

 // search for devices on the bus and assign based on an index.

  if (!sensors.getAddress(insideThermometer, 0));

  if (!sensors.getAddress(outsideThermometer, 1));

  sensors.requestTemperatures();

  printTemperature(insideThermometer);

  delay(100);

}

 

 

串口打印: