一个常见的温度传感器是DS18B20,它是一种数字温度传感器,能够以数字形式提供温度测量值。以下是使用DS18B20温度传感器的Arduino示例代码:
#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