用Arduino NANO开发板控制oled屏幕和DS18B20温度传感器显示学号姓名温度
本文章在教师指导下,通过在课堂上通过分发的硬件和deepseek生成的代码,完成连接和调试。需要注意的是NANO开发板有蓝板和粉板,需要选择不同的processor(处理器);代码需要C语言的格式,在Arduino上运行。
·
Arduino NANO开发板控制oled屏幕和DS18B20温度传感器显示学号姓名温度
一、前言
本文章在教师指导下,通过在课堂上通过分发的硬件和deepseek生成的代码,完成连接和调试。需要注意的是NANO开发板有蓝板和粉板,需要选择不同的processor(处理器);代码需要C语言的格式,在Arduino上运行。
二、硬件选择
1、Arduino Nano 开发板
2、0.96寸oled屏幕
3、DS18B20温度传感器
4、TapC-USB数据线
5、杜邦线若干
三、引脚连接
四、前置库的下载
在Arduino软件中点工具–管理库 搜索下载即可
五、代码
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h>
#include <DallasTemperature.h>
// OLED屏幕设置
#define SCREEN_WIDTH 128 // OLED宽度,像素
#define SCREEN_HEIGHT 64 // OLED高度,像素
#define OLED_RESET -1 // Reset pin
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
// DS18B20温度传感器设置
#define ONE_WIRE_BUS 2 // DS18B20数据线连接的引脚
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// 个人信息 - 请替换为你的实际学号和姓名
const char* studentID = "20230001";
const char* studentName = "张三";
void setup() {
Serial.begin(9600);
// 初始化OLED
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306分配失败"));
for(;;); // 卡死在这里
}
// 显示初始画面
display.display();
delay(2000); // 暂停2秒
// 初始化温度传感器
sensors.begin();
// 清屏
display.clearDisplay();
}
void loop() {
// 获取温度数据
sensors.requestTemperatures(); // 发送温度获取命令
float tempC = sensors.getTempCByIndex(0); // 获取第一个传感器的摄氏温度
// 在串口监视器打印温度
Serial.print("温度: ");
Serial.print(tempC);
Serial.println(" °C");
// 在OLED上显示信息
display.clearDisplay();
// 设置文本大小和颜色
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
// 显示学号和姓名
display.setCursor(0, 0);
display.print("学号: ");
display.println(studentID);
display.print("姓名: ");
display.println(studentName);
// 显示温度
display.setCursor(0, 30);
display.setTextSize(2);
display.print("温度: ");
display.print(tempC);
display.println(" C");
// 显示更新时间和分隔线
display.setTextSize(1);
display.setCursor(0, 55);
display.print("更新时间: ");
display.print(millis() / 1000);
display.println("s");
display.drawLine(0, 25, 127, 25, SSD1306_WHITE);
display.display();
delay(2000); // 每2秒更新一次
}
六、成品图
更多推荐
所有评论(0)