温度模块是一种通过电子信号来测量环境温度的装置。它通常由温度传感器和信号转换电路两个部分组成,能够将温度变化转化为电压信号,并输出数字或模拟信号。温度模块可以广泛应用于各种领域,例如自动化控制、环境监测、医疗设备、汽车等。
参数表
温度传感器内部采用的数字温度传感器(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);
}
串口打印: