#include <OneWire.h>
#include <DallasTemperature.h>
// 定义DS18B20数据引脚
#define ONE_WIRE_BUS 2
// 创建OneWire对象
OneWire oneWire(ONE_WIRE_BUS);
// 创建DallasTemperature对象
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
Serial.println("DS18B20 Temperature Sensor Test");
// 初始化DS18B20传感器
sensors.begin();
}
void loop() {
// 请求温度值
sensors.requestTemperatures();
// 读取温度值
float temperatureC = sensors.getTempCByIndex(0);
// 检查是否成功读取温度
if (temperatureC == -127.00) {
Serial.println("Failed to read temperature from DS18B20 sensor!");
return;
}
// 打印温度值到串口监视器
Serial.print("Temperature: ");
Serial.print(temperatureC);
Serial.println("°C");
// 延时2秒钟,以降低读取频率
delay(2000);
}
在这个例子中:
- 使用了 OneWire 和 DallasTemperature 库,这两个库可通过Arduino IDE的库管理器安装。
- ONE_WIRE_BUS 定义了DS18B20传感器的数据引脚,连接到Arduino的D2引脚。
- 创建 OneWire 对象和 DallasTemperature 对象。
- sensors.begin() 初始化DS18B20传感器。
- 在 loop 函数中,通过 sensors.requestTemperatures() 请求温度值。
- 使用 sensors.getTempCByIndex(0) 读取温度值,其中 0 表示如果有多个传感器,选择第一个传感器。
- 使用 Serial.print 将温度值打印到串口监视器。
确保你的DS18B20传感器正确连接,且引脚连接正确。在实际应用中,你可能需要考虑使用其他传感器库,根据传感器的具体型号和需求调整代码。
转载请注明出处:http://www.pingtaimeng.com/article/detail/11000/Arduino