用 DS18B20 温度传感器测量温度并将采集到的数字量传输到 Arduino 的数字 IO 口
时间: 2024-10-27 19:15:24 浏览: 105
DS18B20是一种常用的数字式温度传感器,它通过一根9针的连接线与Arduino Uno或类似板子通信。以下是使用这种传感器测量温度并传输数据的基本步骤:
1. **硬件连接**:
- 将DS18B20的VCC接至Arduino的5V电源,GND接到GND,DIN(数据输入)接到Uno的数字IO口,如D4、D5等。
- 如果有多只温度传感器,可以通过1-Wire总线扩展连接,只需将另外的数据线相连即可。
2. **库文件导入**:
- 在Arduino IDE中,你需要安装OneWire和DallasTemperature库。在Sketch菜单 -> Include Library -> Manage Libraries中搜索并安装这两个库。
3. **编写代码**:
```cpp
#include <OneWire.h>
#include < DallasTemperature.h>
// 定义DS18B20的地址(如果有多只,需要对应修改)
const byte myOneWireAddress[] = {0x18, 0x27}; // 假设你的地址为0x18或0x27
OneWire oneWire(D4); // 这里假设D4是数据线
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600);
sensors.begin();
}
void loop() {
float tempC;
if (sensors.requestTemperatures()) { // 检查是否有温度读取
for (size_t i = 0; i < sensors.getDeviceCount(); ++i) {
tempC = sensors.getTempCByIndex(i);
Serial.print("Temperature of device ");
Serial.print(i + 1);
Serial.print(": ");
Serial.print(tempC);
Serial.println(" *C");
}
} else {
Serial.println("No devices found!");
}
delay(1000); // 每秒读一次温度
}
```
4. **运行与调试**:
- 程序运行时,DS18B20会将测得的温度转换为数字信号并通过串口打印出来。你可以通过USB连接电脑查看串口监视器(Serial Monitor)获取实时温度值。
阅读全文