LoginSignup
3
3

More than 3 years have passed since last update.

ArduinoだけでOLED SSD1331に画像を表示する方法

Posted at

初のフルカラーディスプレイ

アマゾンで「HiLetgo 0.95インチ SPI OLEDディスプレイモジュールフルカラー65KカラーSSD1331 7ピンArduinoに対応」を購入したので、画像を表示させてみる。

実行環境

・Arduino UNO マルツ版
・0.95インチ OLEDディスプレイ SSD1331

ライブラリ
・Adafruit_GFX.h
・Adafruit_SSD1331.h
・SPI.h

Arduinoに接続

ピンの接続

Arduino SSD1331
5V VCC
GND GND
8 DC
9 RES
10 CS
11 SDA
13 SCL

画像の用意

画像の表示には、画像を「16ビットの符号なし整数型」に変換する必要がある。
変換のために、「lcd-image-converter」を使用した。
■設定
Optionsタブ→Conversion内
Preset: Color R5G6B5
Prepare→ Type:Color,Main Scan Direction:Top to Bottom
Image→ Block type:16Bit
に設定した。
画像は事前に「96×64ピクセル」に変換しておく。
書き出すと96×64個の16bitデータが得られるので、それを画像データの配列に代入する。

プログラム

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>

#define sclk 13
#define mosi 11
#define cs   10
#define rst  9
#define dc   8
#define  BLACK 0x0000

//画像データ
const uint16_t Img_data [] PROGMEM = {
    0x0000, 0x0000,...,
};

Adafruit_SSD1331 display = Adafruit_SSD1331(&SPI, cs, dc, rst);

void setup() {
  display.begin();
  display.fillScreen(BLACK);
  display.drawRGBBitmap(0, 0,Img_data, 96, 64);
//display.drawRGBBitmap(最初のx座標,y座標,画像配列名,画像の幅,画像の高さ)
}

void loop() {
}

結果

DSC01227.JPG
試しにドクターイエローの画像を表示させてみた。画像の変換にとても苦戦したが、思っていたよりも簡単に表示することができた。しかしArduinoの容量不足で画像を切り替えたりできないのが難点。SDカードモジュールを使えば解決できるそうだ。

参考文献

Arduinoでカラーディスプレイの制御
小型カラー液晶SSD1331とAdafruit GFX ライブラリを使用してbitmapを表示する
OLED Displays: A Beginner’s Guide to Display Text, Image & Animation Using Arduino

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3