Arduinoで0.91 "OLEDディスプレイを使用する方法

How to Use a 0.91" OLED Display with Arduino

0.91 "OLEDディスプレイ 小さなコントラストの画面は完璧です テキスト、グラフィック、センサーデータの表示 Arduinoプロジェクトで。このガイドはあなたを歩き回ります テキストとグラフィックスの配線、コーディング、表示 を使用して SSD1306ベースのOLEDモジュール Arduinoと。


1。必要なもの

Arduino委員会 (UNO、メガ、ナノなど)
0.91 "OLEDディスプレイ(SSD1306、I2C)
ジャンパーワイヤ
Arduino IDEがインストールされました

🔹 注記: このチュートリアルは焦点を当てています I2C通信、それはのみ使用します 2つのワイヤー(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 SSD1306 そして Adafruit 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。結論

Aを使用します 0.91 "ArduinoとOLED 追加するのに最適な方法です 視覚出力 あなたのプロジェクトに。表示したいかどうか テキスト、グラフィックス、またはセンサーデータ、この小さな画面が提供しています コントラストが高く、消費電力が低くなります.

コメントを残す

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.