
Raspberry Pi Pico W と 0.96インチOLED(SSD1306)を使って、表示+アニメーションまで動かしました。
環境
- Raspberry Pi Pico W
- OLED(SSD1306 / 128×64 / I2C)
- Arduino IDE
1. Pico Wはそのままでは使えない
最初にハマるのがここ。
Arduino IDEには、最初Pico Wが出てきません。
追加するURL
手順
- ファイル → 環境設定
- 「追加のボードマネージャのURL」に貼る
- ボードマネージャで「pico」を検索
- Raspberry Pi Pico / RP2040 をインストール
👉 これで Pico W が選べるようになる
2. OLED用ライブラリ
これもハマりポイント。
必要なライブラリ
- Adafruit GFX Library
- Adafruit SSD1306
👉 セットで必要
3. 配線(最大の落とし穴)
I2C接続
- VCC → 3.3V
- GND → GND
- SDA → GP4(Pin6)
- SCL → GP5(Pin7)
Picoのピン対応(重要)
Pin1 GP0
Pin2 GP1
Pin3 GND
Pin4 GP2
Pin5 GP3
Pin6 GP4 ← SDA
Pin7 GP5 ← SCL
👉 GPIO番号とPin番号を混同すると終わる
4. I2Cが認識しない問題
スキャナを回しても何も出ない。
I2C scan start
Scan done
👉 完全に詰む
5. 原因特定(ここが一番重要)
配線は合っているように見える。
そこで発想を変えた。
👉 「そのピン、本当にそこか?」
LEDでピン確認
GPIOを順番に光らせるプログラムを作成。
さらに
👉 シリアルモニタに出しながら確認
void testPin(int pin) {
Serial.print("Testing GP");
Serial.println(pin); pinMode(pin, OUTPUT); digitalWrite(pin, HIGH);
delay(300);
digitalWrite(pin, LOW);
delay(300);
}void setup() {
Serial.begin(115200);
delay(2000);
}void loop() {
for (int i = 0; i < 10; i++) {
testPin(i);
}
}
何が起きたか
Testing GP3 → 光る
Testing GP4 → 光る
👉 つまり接続はここ
Pin5(GP3)
Pin6(GP4)
本来の位置
SDA → GP4(Pin6)
SCL → GP5(Pin7)
👉 SCLが1本ズレていた
6. 修正後
配線を1つ下にずらす
結果
I2C scan start
Found device at 0x3C
Scan done
👉 一発で認識
7. 表示コード
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define SCREEN_ADDRESS 0x3CAdafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);void setup() {
Wire.setSDA(4);
Wire.setSCL(5);
Wire.begin(); display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS); display.clearDisplay();
display.setTextSize(2);
display.setCursor(0,0);
display.println("Hello");
display.display(); // ←重要
}void loop() {}
👉 display.display() を忘れると何も出ない
8. アニメーション
unsigned long lastTime = 0;
int x = 10;
int vx = 1;void loop() {
if (millis() - lastTime >= 50) {
lastTime = millis(); display.clearDisplay(); x += vx;
display.drawCircle(x, 20, 3, SSD1306_WHITE); display.display(); if (x > 124) vx = -1;
if (x < 3) vx = 1;
}
}
👉 端で跳ね返る
9. できること
ここまで来ると、
- ドット絵キャラ
- UIメニュー
- ミニゲーム
👉 たまごっち的なものが作れる
10. 教訓
今回一番重要だったのはこれ👇
👉 「見た目で合っている」は信用しない
最強の切り分け方法
👉 GPIO単体で確認する
👉 シリアルで可視化する
これで一気に解決した。
まとめ
- Pico Wは最初にボード設定が必要
- OLEDはライブラリが必要
- I2Cは配線がすべて
- 詰まったらGPIOで検証

