DS18B20是一款常用的数字温度传感器,它通过1-Wire(单总线)接口与单片机进行通信。以下是如何使用单片机读取DS18B20温度传感器数据的详细步骤和代码示例。
#include <OneWire.h>
#include <DallasTemperature.h>
// 数据线连接到数字引脚2
#define ONE_WIRE_BUS 2
// 设置oneWire实例来通信
OneWire oneWire(ONE_WIRE_BUS);
// 将oneWire实例传递给DallasTemperature库
DallasTemperature sensors(&oneWire);
void setup(void)
{
// 启动串口通信
Serial.begin(9600);
// 启动传感器
sensors.begin();
}
void loop(void)
{
// 请求温度数据
sensors.requestTemperatures();
// 读取温度
float temperatureC = sensors.getTempCByIndex(0);
// 输出温度
Serial.print("Temperature is: ");
Serial.print(temperatureC);
Serial.println("°C");
// 延时1秒
delay(1000);
}
通过以上步骤和代码示例,你可以使用单片机读取DS18B20温度传感器的数据。这种方法不仅适用于Arduino,也适用于其他支持单总线通信的单片机。