如何与Arduino一起使用0.91英寸OLED显示屏

How to Use a 0.91" OLED Display with Arduino

一个 0.91英寸OLED显示 是一个小型的高对比度屏幕 显示文本,图形和传感器数据 在Arduino项目中。本指南将带您完成 布线,编码和显示文本和图形 使用 基于SSD1306的OLED模块 与Arduino。


1。你需要什么

Arduino董事会 (UNO,Mega,Nano等)
0.91“ OLED显示器(SSD1306,I2C)
跳线
安装了Arduino IDE

🔹 笔记: 本教程的重点是 I2C通信,只使用 两条电线(SDA和SCL),使其非常适合简单项目。


2。将0.91英寸OLED接线至Arduino(I2C模式)

OLED展示别针 Arduino Uno Pin Arduino Nano Pin
VCC 5V 5V
gnd gnd gnd
SDA A4(SDA) A4(SDA)
SCL A5(SCL) A5(SCL)

🔹 对于Arduino Mega: 使用 SDA(引脚20)和SCL(引脚21).


3。安装所需库

在编码之前,安装 Adafruit SSD1306Adafruit GFX 图书馆:

  1. 打开 Arduino IDE.
  2. 草图→包括库→管理库.
  3. 搜索 Adafruit SSD1306 并安装它。
  4. 搜索 Adafruit GFX 并安装它。

4。在OLED上显示文本的基本代码

此示例初始化OLED并显示 “你好,arduino!”.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Define OLED screen size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32

// Initialize OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
    Serial.begin(115200);

    // Start OLED display
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println("SSD1306 allocation failed");
        for (;;);
    }

    display.clearDisplay();  // Clear buffer
    display.setTextSize(1);  // Text size
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(10, 10);
    display.println("Hello, Arduino!");
    display.display(); // Show text on screen
}

void loop() {
    // Nothing here (text is static)
}

🔹 该代码的作用:
✔ 初始化 SSD1306显示.
✔ 印刷 “你好,arduino!” 在屏幕上。
✔ 用途 I2C地址0x3c (某些模块可能会使用 0x3d).


5。显示图形(线,圆,图像)

形状,使用 Adafruit GFX函数.

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();

    // Draw a rectangle
    display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
    
    // Draw a filled circle
    display.fillCircle(90, 16, 10, SSD1306_WHITE);

    display.display();
}

void loop() {}

🔹 其他图纸功能:
display.drawLine(x1, y1, x2, y2, color); →画线
display.drawCircle(x, y, radius, color); →画一个圆圈
display.drawRect(x, y, width, height, color); →绘制矩形


6。滚动文本示例

此示例滚动文字 水平 在OLED屏幕上。

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();
    
    display.setTextSize(1);
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(0, 10);
    display.println("Scrolling Text...");
    display.display();
    
    // Start scrolling
    display.startscrollleft(0x00, 0x0F); 
}

void loop() {}

🔹 滚动功能:
display.startscrollleft(start, stop); →滚动文字 左边
display.startscrollright(start, stop); →滚动文字 正确的
display.stopscroll(); →停止滚动


7。故障排除提示

问题: 显示什么都不显示。
✅ 查看 接线(SDA和SCL正确连接).
✅ 确保 OLED I2C地址为0x3C(或尝试0x3d).
✅ 使用 I2C扫描仪 检测设备:

#include <Wire.h>
void setup() {
    Wire.begin();
    Serial.begin(115200);
    Serial.println("Scanning...");
    
    for (byte address = 8; address < 120; address++) {
        Wire.beginTransmission(address);
        if (Wire.endTransmission() == 0) {
            Serial.print("Found I2C device at 0x");
            Serial.println(address, HEX);
        }
    }
}
void loop() {}

问题: 文字太小或太大。
✅ 调整 display.setTextSize(1); (增加较大的文本)。


8。实际应用

显示传感器数据 - 从 DHT11,BMP280,等。
时钟显示 - 与 DS3231 RTC模块 制作数字时钟。
菜单系统 - 使用按钮在菜单中导航。
电池电压指示器 - 监视便携式项目中的功率水平。


9。结论

使用 0.91英寸与arduino 是添加的好方法 视觉输出 到您的项目。是否要显示 文本,图形或传感器数据,这个小屏幕提供 高对比度和低功耗.

发表评论

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.