一、 實驗說明:為什麼選擇 SSD1306 0.96 吋 OLED 顯示器?
在體積受限或需要高對比顯示的 Arduino 專題中,SSD1306 0.96 吋 OLED 顯示模組 是最熱門的首選。相較於傳統 LCD 螢幕,OLED 具備自發光特性,無需背光板,因此功耗極低、視角極廣且字體對比清晰鮮明。
核心技術與軟體架構
硬體規格: 解析度為 像素,採用極簡的 I2C 通訊介面(僅需 4 根線)。
預設 I2C 位址: 市售模組預設位址通常為
0x3C或0x3D。Adafruit 繪圖生態系: 結合
Adafruit_SSD1306驅動庫與Adafruit_GFX圖形庫,能輕鬆完成文字、動態數據顯示與幾何點陣圖形繪製。
二、 實驗所需材料與電路接線圖 (Hardware Setup)
請依照下表將 0.96 吋 SSD1306 OLED 模組連接至 Arduino Uno。
⚠️ 注意事項: 市售 OLED 模組的 VCC 與 GND 引腳順序可能有所不同,接線前請務必確認模組上的標示,避免電源接反燒毀晶片。
🛒 準備材料
Arduino Uno R3 開發板 x 1
USB 傳輸線 x 1
0.96 吋 SSD1306 OLED 模組 (I2C 介面) x 1
杜邦線 若干
🛍️ 準備好你的硬體工具了嗎? 推薦選購:米羅科技 – Arduino 程式學習爆款套件組(包含豐富驅動專案模組)
▼ 購買OLED 0.96吋顯示螢幕:
⚡ 腳位對接說明 (Pin Mapping)
三、 必備函式庫安裝步驟
編譯程式碼前,請先開啟 Arduino IDE 的程式庫管理員安裝以下套件:
安裝 Adafruit SSD1306 程式庫:
點選選單 草稿碼 (Sketch) > 匯入程式庫 (Include Library) > 管理程式庫 (Manage Libraries)。
搜尋 「Adafruit SSD1306」 並點擊安裝。
安裝 Adafruit GFX 程式庫:
在程式庫管理員搜尋 「Adafruit GFX」 並點擊安裝(如跳出安裝相依套件提示,請選擇全數安裝)。

安裝 Adafruit SSD1306 程式庫

搜尋 「Adafruit GFX」 並點擊安裝,如跳出安裝相依套件提示,請選擇全數安裝
四、 程式碼實作範例
🔹 程式範例一:自訂文字與動態數字顯示 (Basic Text & Numerical Display)
本範例示範如何在 OLED 螢幕上設定字體大小、輸出字串。
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED 寬度像素
#define SCREEN_HEIGHT 64 // 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.setCursor(26,40); // 設定起始座標
display.print("MiroTek"); // 要顯示的字串
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() {
}
🔹 程式範例二:Adafruit 內建全圖形展示範例 (Adafruit GFX Test Demo)
若想測試 OLED 的極限效能、點陣繪圖、反白效果與幾何動畫,可直接調用 Adafruit 官方的經典測試程式:

圖:開啟Adafruit SSD1306 >> ssd1306_128x64_i2c 範例檔。

圖:一般1306 OLED的位址通常都是0x3C,請將定義的位址 #define SSD1306_I2C_ADDRESS 0x3D 修改成 0x3C。修改程式完成後,即可上傳燒錄
五、 常見問題與除錯 (FAQ)
Q1:螢幕完全沒有顯示,傳輸區域一片黑暗?
解答: 請確認 I2C 位址是否正確。市售模組常見位址為
0x3C或0x3D。可先執行 「I2C Scanner」 程式來掃描裝置位址,並將display.begin(SSD1306_SWITCHCAPVCC, 0x3C)中的位址替換成實際掃描結果。
Q2:為什麼寫了繪圖語法(如
drawRect),螢幕卻沒有任何變化?
解答:
Adafruit_SSD1306採用記憶體緩衝區機制。所有的繪圖與文字指令只會先寫入 RAM,必須在程式最後呼叫display.display();才會將畫面一次性刷至 OLED 實體面板。
Q3:畫面出現雜訊、雪花畫面或顯示內容嚴重偏移?
解答: 請檢查面板解析度設定是否正確。常見 0.96 吋面板為 ,若購買到 0.91 吋面板(通常為 ),請將
SCREEN_HEIGHT更改為32即可恢復正常。
🔗 延伸閱讀與推薦課程
📟 顯示模組控制: 【Arduino進階教學】LCD 1602 I2C 顯示模組:4線快速接線、位址檢測與程式碼範例
👈 上一篇: 【Arduino進階教學課程】驅動ILI9486 TFT 全彩3.5吋LCD顯示螢幕
👉 下一篇: 【Arduino進階教學】SSD1306 0.91吋 OLED 顯示器模組:128×32 I2C 接線、Adafruit 繪圖庫與文字動畫實作
📘 總索引: Arduino 新手學習必讀經典 – 快速索引頁面
