ds18b20获取温度并在OLED显示
时间: 2024-03-25 20:38:22 浏览: 153
好的,以下是一个基于 Arduino Uno 板和 DS18B20 温度传感器,并且使用 SSD1306 OLED 显示屏的示例代码,可以获取温度并在 OLED 上显示:
首先,您需要安装 Adafruit_SSD1306 库和 OneWire 库。您可以在 Arduino IDE 中选择菜单 "工具" > "管理库",然后搜索并安装这两个库。
接下来,将 DS18B20 温度传感器连接到 Arduino Uno 板:
- 将 DS18B20 的 VCC 引脚连接到 Arduino 的 5V 引脚
- 将 DS18B20 的 GND 引脚连接到 Arduino 的 GND 引脚
- 将 DS18B20 的 DATA 引脚连接到 Arduino 的数字引脚 2
最后,将 SSD1306 OLED 显示屏连接到 Arduino Uno 板:
- 将 OLED 的 VCC 引脚连接到 Arduino 的 5V 引脚
- 将 OLED 的 GND 引脚连接到 Arduino 的 GND 引脚
- 将 OLED 的 SCL 引脚连接到 Arduino 的数字引脚 5
- 将 OLED 的 SDA 引脚连接到 Arduino 的数字引脚 4
接下来是示例代码:
```c++
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// 定义 DS18B20 数据引脚
#define ONE_WIRE_BUS 2
// 初始化 OneWire 和 DallasTemperature 库
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// 定义 OLED 显示屏相关参数
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 初始化 OLED 显示屏
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.println("Temperature:");
display.display();
// 初始化 DS18B20 温度传感器
sensors.begin();
}
void loop() {
// 获取当前温度
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
// 在 OLED 显示屏上显示当前温度
display.clearDisplay();
display.setCursor(0, 0);
display.println("Temperature:");
display.setCursor(0, 10);
display.print(temperature);
display.print(" ");
display.print((char)247);
display.print("C");
display.display();
// 延时 2 秒
delay(2000);
}
```
请根据您的具体硬件和传感器类型进行修改。另外,您还需要在计算机上安装 SSD1306 OLED 显示屏库和串口通信软件(如 Arduino IDE 或 CoolTerm),以便接收并查看发送的数据。
阅读全文