一、 實驗說明:為什麼選擇 SSD1306 0.91 吋 OLED 顯示器?
在需要極致輕薄、長條狀外觀的穿戴式裝置或微型儀表板專題中,0.91 吋 SSD1306 OLED 顯示模組 是最佳解答。相較於常見的 0.96 吋面板,0.91 吋擁有更窄小的體積,同時保留了 OLED 自發光、高對比、超省電與廣視角 的優異特性。
核心技術與軟體架構
硬體規格: 解析度為長條型的 像素,採用極簡的 I2C 通訊介面(只需 4 根線)。
預設 I2C 位址: 市售 0.91 吋模組預設位址通常為
0x3C。Adafruit 繪圖生態系: 搭配
Adafruit_SSD1306與Adafruit_GFX程式庫,只需在程式碼中指定螢幕高度為32,即可完全相容所有圖形與文字繪製語法。
二、 實驗所需材料與電路接線圖 (Hardware Setup)
請依照下表將 0.91 吋 SSD1306 OLED 模組連接至 Arduino Uno。
⚠️ 注意事項: 接線前請務必仔細確認模組背面的引腳標示(特別是 VCC 與 GND),避免極性接反導致模組燒毀。
🛒 準備材料
Arduino Uno R3 開發板 x 1
USB 傳輸線 x 1
0.91 吋 SSD1306 OLED 模組 (128×32 I2C 介面) x 1
杜邦線 若干
▼ 購買OLED 0.91吋顯示螢幕:
🛍️ 準備好你的硬體工具了嗎? 推薦選購:米羅科技 – Arduino 程式學習爆款套件組(包含豐富驅動專案模組)
材料:
- Arduino Uno R3
- USB 傳輸線
- OLED 0.91吋顯示器
- 杜邦線
⚡ 腳位對接說明 (Pin Mapping)
三、 必備函式庫安裝步驟
編譯程式碼前,請先透過 Arduino IDE 的程式庫管理員安裝以下套件:
安裝 Adafruit SSD1306 程式庫:
點選選單 草稿碼 (Sketch) > 匯入程式庫 (Include Library) > 管理程式庫 (Manage Libraries)。
搜尋 「Adafruit SSD1306」 並點擊安裝。
安裝 Adafruit GFX 程式庫:
在程式庫管理員搜尋 「Adafruit GFX」 並點擊安裝(若提示安裝相依套件請全數安裝)。

安裝 Adafruit SSD1306 程式庫

搜尋 「Adafruit GFX」 並點擊安裝,如跳出安裝相依套件提示,請選擇全數安裝
四、 程式碼實作範例
🔹 程式範例一:多行文字與數據顯示 (Text & Sensor Data Display)
本範例針對 OLED 螢幕 長條型畫面進行排版設計,示範如何在限高 32 像素的空間內漂亮顯示文字與設定字體大小、輸出字串。
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED 寬度像素
#define SCREEN_HEIGHT 32 // OLED 高度像素
// 設定OLED
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void testdrawstyles(void) {
display.clearDisplay();
display.setTextSize(2); // 設定文字大小
display.setTextColor(1); // 1:OLED預設的顏色(這個會依該OLED的顏色來決定)
display.setCursor(5,0); // 設定起始座標
display.print("Hello OLED"); // 要顯示的字串
display.display(); // 要有這行才會把文字顯示出來
delay(1000);
}
void setup() {
Serial.begin(9600);
// 偵測是否安裝好OLED了
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // 一般1306 OLED的位址都是0x3C
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
display.clearDisplay(); // 清除畫面
testdrawstyles(); // 測試文字
delay(1000);
}
void loop() {
}
🔹 程式範例二:圖形繪製與畫面滾動動畫 (Graphics & Text Scrolling)
可直接調用 Adafruit 官方的經典測試程式在 0.91 吋螢幕上繪製邊框、幾何圖案,並啟用 SSD1306 硬體加速的水平文字滾動效果:

圖:開啟Adafruit SSD1306 >> ssd1306_128x32_i2c 範例檔。
五、 常見問題與除錯 (FAQ)
Q1:畫面文字被壓縮拉長,或是下半部一半消失不見?
解答: 這是因為程式碼中的解析度參數錯設為 0.96 吋的 64 像素。請務必確認將
#define SCREEN_HEIGHT設為32,並且傳入Adafruit_SSD1306物件初始化。
Q2:螢幕一片漆黑,完全沒有任何顯示反應?
解答: 請執行 「I2C Scanner」 腳本確認模組位址。雖然多數 0.91 吋模組為
0x3C,但仍有少數副廠批次為0x3D。將display.begin(SSD1306_SWITCHCAPVCC, 位址)替換為實際位址即可解決。
Q3:呼叫繪圖函式後螢幕沒有改變?
解答:
Adafruit_SSD1306採用繪圖緩衝區機制,所有文字與繪圖指令必須在最後補上display.display();才會寫入實體 OLED 顯示。
🔗 延伸閱讀與推薦課程
📟 顯示模組控制: 【Arduino進階教學】LCD 1602 I2C 顯示模組:4線快速接線、位址檢測與程式碼範例
👈 上一篇: 【Arduino進階教學】SSD1306 0.96吋 OLED 顯示器模組:I2C 接線、位址檢測、Adafruit GFX 繪圖與雙程式範例實作
👉 下一篇: 【Arduino進階教學】LCD 2004 I2C 顯示器模組:20×4 大螢幕 4 線接線、LiquidCrystal_I2C 庫與自訂符號繪製實作
📘 總索引: Arduino 新手學習必讀經典 – 快速索引頁面
