利用Arduino Nano开发板、OLED显示屏模块、DS12B20温度传感器和杜邦线,在OLED上显示温度和姓名学号


前期准备
Arduino Nano开发板

    OLED显示屏

    DS18B20温度传感器

    杜邦线若干

一、硬件连接

  1. OLED显示屏模块与Arduino Nano连接:
    - VCC:接Arduino Nano的5V引脚,为模块供电。
    - GND:接Arduino Nano的GND引脚,提供接地。
    - SDA:接Arduino Nano的A4引脚,用于I2C通信的数据传输 。
    - SCL:接Arduino Nano的A5引脚,用于I2C通信的时钟信号 。
    2. DS18B20温度传感器模块与Arduino Nano连接:
    - VCC:接Arduino Nano的3.3V引脚(部分DS18B20也可接5V,但3.3V更稳定)。
    - GND:接Arduino Nano的GND引脚。
    - DQ:接Arduino Nano的一个数字引脚,如D2 。
    在这里插入图片描述
    在这里插入图片描述

二、软件安装
安装库:打开Arduino IDE,依次点击“工具” - “管理库”。在搜索栏中分别输入“OneWire”和“DallasTemperature”并安装,这两个库用于与DS18B20温度传感器通信;再搜索“Adafruit_SSD1306”并安装,用于控制OLED显示屏。

三、代码实现
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#includ

### 连接Arduino Nano与SD8266温度传感器OLED显示屏 #### 硬件连接 硬件连接是实现功能的关键步骤。以下是具体的接线方法: - **Arduino Nano与SD8266温度传感器** SD8266温度传感器通常通过I2C或模拟信号输出数据。如果使用I2C接口,需要将SD8266的SCLSDA分别连接到Arduino Nano的A5(SCLA4(SDA)引脚[^3]。同时,确保VCC连接到5V或3.3V(根据传感器规格),GND连接到Nano的GND。 - **Arduino NanoOLED显示屏** OLED显示屏(SSD1306驱动)通过I2C接口连接。将OLED的VCC连接到Nano的5V,GND连接到Nano的GND,SDA连接到Nano的A4,SCL连接到Nano的A5[^3]。 #### 软件配置 在软件层面,需要安装相关的库文件以支持传感器显示屏的功能。 - **库文件安装** 在Arduino IDE中安装以下库: - OneWire库:用于DS18B20通信。 - DallasTemperature库:简化温度读取。 - Adafruit_SSD1306库Adafruit_GFX库:用于OLED显示屏驱动[^3]。 - **代码示例** 下面是一个完整的代码示例,展示如何读取SD8266温度传感器的数据,并在OLED显示屏显示学号姓名温度值。 ```cpp #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels // Declaration for an SSD1306 display connected to I2C (SDA, SCL pins) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // Setup a oneWire instance to communicate with any OneWire devices OneWire oneWire(2); // Pin 2 on Arduino Nano // Pass our oneWire reference to Dallas Temperature sensor DallasTemperature sensors(&oneWire); void setup() { // Initialize the OLED display if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x64 Serial.println(F("SSD1306 allocation failed")); for (;;); } display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0, 0); // Start up the library sensors.begin(); } void loop() { // Request temperature measurement from DS18B20 sensor sensors.requestTemperatures(); float temperature = sensors.getTempCByIndex(0); // Clear the display buffer display.clearDisplay(); // Display student ID and name display.setCursor(0, 0); display.println("Student ID: 123456"); display.println("Name: Zhang San"); // Display temperature display.setCursor(0, 20); display.print("Temperature: "); display.print(temperature); display.println(" C"); // Show the updated display display.display(); delay(1000); // Update every second } ``` #### 注意事项 - 确保SD8266温度传感器的地址正确。如果传感器未被识别,可能需要检查接线或更换引脚[^3]。 - OLED显示屏的I2C地址可能是`0x3C`或`0x3D`,具体取决于硬件版本。如果默认地址无效,请使用扫描工具检测实际地址[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值