記事一覧へ戻る
Raspberry Pi/初級/8分で読める/

ラズパイでSSD1306 OLEDを表示する配線とPythonコード

SSD1306 OLEDはI2Cで扱える小型ディスプレイです。Raspberry PiではSDAをGPIO2、SCLをGPIO3へ接続し、I2Cを有効化してから表示を確認します。

WIRING ORDER

配線順序プレビュー

レッスン用図解
Tsunagu IoT Learn / Raspberry Pi
  1. 1STEP 1SSD1306 VCC から Raspberry Pi 3.3V(物理ピン1など) へ
    ここから
    SSD1306 VCC
    ここへ
    Raspberry Pi 3.3V(物理ピン1など)

    確認: 3.3V対応モジュールとして扱うのが安全です。

  2. 2STEP 2SSD1306 GND から Raspberry Pi GND(物理ピン6など) へ
    ここから
    SSD1306 GND
    ここへ
    Raspberry Pi GND(物理ピン6など)

    確認: 電源とI2C信号の基準を共通にします。

  3. 3STEP 3SSD1306 SDA から Raspberry Pi GPIO2/SDA1(物理ピン3) へ
    ここから
    SSD1306 SDA
    ここへ
    Raspberry Pi GPIO2/SDA1(物理ピン3)

    確認: I2Cのデータ線です。

  4. 4STEP 4SSD1306 SCL から Raspberry Pi GPIO3/SCL1(物理ピン5) へ
    ここから
    SSD1306 SCL
    ここへ
    Raspberry Pi GPIO3/SCL1(物理ピン5)

    確認: I2Cのクロック線です。

用意するもの

  • Raspberry Pi 4 / 5 などGPIOを使える本体
  • SSD1306 OLEDディスプレイ(I2C)
  • ブレッドボード
  • ジャンパーワイヤー

配線

接続元接続先確認点
SSD1306 VCCRaspberry Pi 3.3V(物理ピン1など)3.3V対応モジュールとして扱うのが安全です。
SSD1306 GNDRaspberry Pi GND(物理ピン6など)電源とI2C信号の基準を共通にします。
SSD1306 SDARaspberry Pi GPIO2/SDA1(物理ピン3)I2Cのデータ線です。
SSD1306 SCLRaspberry Pi GPIO3/SCL1(物理ピン5)I2Cのクロック線です。

配線元、配線先、コードのピン番号を同じ画面で確認できます。

手順

  1. 1Raspberry Piの電源を切った状態でVCC、GND、SDA、SCLを配線します。
  2. 2raspi-configなどでI2Cを有効化します。
  3. 3i2cdetectで0x3Cなどのアドレスが見えるか確認します。
  4. 4必要なPythonライブラリを準備します。
  5. 5Pythonコードを実行し、OLEDに文字が表示されるか確認します。

SSD1306に文字を表示するPythonコード

python
from PIL import Image, ImageDraw
import board
import busio
import adafruit_ssd1306

i2c = busio.I2C(board.SCL, board.SDA)
oled = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3C)

oled.fill(0)
oled.show()

image = Image.new("1", (oled.width, oled.height))
draw = ImageDraw.Draw(image)
draw.text((0, 0), "Hello IoT", fill=255)
draw.text((0, 16), "SSD1306", fill=255)

oled.image(image)
oled.show()

動かないときの確認

  • SDAをGPIO2、SCLをGPIO3へ接続しているか
  • I2Cを有効化しているか
  • OLEDのI2Cアドレスが0x3Cか確認したか
  • VCCとGNDを逆にしていないか

よくあるミス

  • SDAとSCLを逆に接続する
  • I2Cを有効化せずにコードだけ実行する
  • 実際のアドレスが0x3Dなのに0x3Cのままにする

次に試すこと

OLED表示ができたら、BME280やDHT22などのセンサー値を画面に出すと、配線とコードのつながりを実感しやすくなります。

デモで配線を確認する