Adafruit SSD1306
名称
Adafruit SSD1306 ライブラリ
ヘッダーファイル #include <Adafruit_SSD1306_STM32.h>
/icons/hr.icon
概要
本ライブラリは、Adafruit社が公開している コントローラーSSD1306を利用した モノクロ グラフィックOLEDディスプレイ用のライブラリをSTM32環境に対応させたものです。
SPIおよびI2Cインタフェースに対応しています。
ライブラリリファレンス
Adafruit ILI9341_STMクラス class Adafruit_SSD1306 : public Adafruit_GFX
ヘッダーファイル #include <Adafruit_SSD1306_STM32.h>
本クラスは、Adafruit_GFXクラスの派生クラスです。ライブラリの利用にはAdafruit_GFXクラスも参照して下さい。
また、Adafruit_GFXライブラリはArduino STM32には含まれていません。別途インストールする必要があります。
(注意)
本ライブラリは、モノクロ グラフィックOLEDディスプレイのバリエーションに対応するために、
ヘッダーファイルAdafruit_SSD1306_STM32.hの修正が必要な場合があります。
下記の定数のI2Cアドレス、画面サイズ指定は利用するディスプレイに合わすよう、必要に応じて修正して下さい。
定数
■ 色コード
BLACK 0 黒
WHITE 1 白
INVERSE 2 反転指定
■ I2Cアドレス(必要に応じて修正する)
SSD1306_I2C_ADDRESS 0x3C
■ 画面サイズ指定(下記の定義は排他的にどれか1つを定義する。他はコメントアウトする)
SSD1306_128_64 128x64ドット指定(デフォルト)
SSD1306_128_32 128x32ドット指定
SSD1306_96_16 96x16ドット指定
■ 画面サイズ(定数 画面サイズ指定により、値は変化する)
SSD1306_LCDWIDTH 128(デフォルト)
SSD1306_LCDHEIGHT 64(デフォルト)
■ 供給電圧
SSD1306_EXTERNALVCC 外部からの電源供給
SSD1306_SWITCHCAPVCC 3.3Vレギュレータからの供給
■ 画面表示モード
SSD1306_INVERTDISPLAY 反転
SSD1306_NORMALDISPLAY 通常
メンバー関数(メソッド)
■ コンストラクタ
書式
1) Adafruit_SSD1306(int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS)
2) Adafruit_SSD1306(int8_t DC, int8_t RST, int8_t CS)
3) Adafruit_SSD1306(int8_t RST)
引数
SID :SPI MOSI ピン番号
SCLK :SPI クロック ピン番号
DC :データ/コマンド制御 ピン番号(HIGH:データ、LOW:コマンド )
RST :ディスプレイリセット ピン番号
CS :SPIデバイスセレクト ピン番号
説明
インスタンスを生成します。
モノクロ グラフィックOLEDディスプレイを制御するためのオブジェクト(インスタンス)を生成します。
利用ディスプレイが対応する通信インターフェース(SPI、I2C)に対応する引数のコンストラクタを利用します。
SPI接続の場合は、
1) Adafruit_SSD1306(int8_t SID, int8_t SCLK, int8_t DC, int8_t RST, int8_t CS)
2) Adafruit_SSD1306(int8_t DC, int8_t RST, int8_t CS)
を利用します。
I2C接続の場合は、
3) Adafruit_SSD1306(int8_t RST)
を利用します。スレーブのアドレスは begin()にて指定します。
コンストラクタでは、モノクロ グラフィックOLEDディスプレイの初期化処理は行いません。
初期化は begin()にて行います。
■ 利用開始
書式
void begin(uint8_t switchvcc=SSD1306_SWITCHCAPVCC, uint8_t i2caddr=SSD1306_I2C_ADDRESS, bool reset=true)
引数
switchvcc :ディスプレイ電源の指定、 SSD1306_EXTERNALVCC(デフォルト) or SSD1306_SWITCHCAPVCC
i2caddr :I2Cアドレス(省略可能)、デフォルト値はSSD1306_I2C_ADDRESS
reset :リセット実行指定(省略可能)、true(デフォルト)リセットする、false リセットしない
戻り値
なし
説明
モノクロ グラフィックOLEDディスプレイの初期化処理を以降、利用可能にします。
switchvcc には、ディスプレイに供給している電源の状態を指定します。この設定は画面のコントラスの調整のための情報として利用されます。
i2caddrはI2C接続で利用する場合に指定します。
reset は、モノクロ グラフィックOLEDディスプレイのリセット処理を行うかを指定します。
■ コマンド送信
書式
void ssd1306_command(uint8_t c)
引数
c :送信コマンド
戻り値
なし
説明
コマンドを送信します。
■ データ送信
書式
void ssd1306_data(uint8_t c)
引数
c :送信データ
戻り値
なし
説明
データを送信します。
■ 画面表示用バッファ・クリア
書式
void clearDisplay(void)
引数
なし
戻り値
なし
説明
表示内容をクリアします。
ただし、バッファの内容のみを変更します。表示にすぐには影響しません。
display()への呼び出し、または必要に応じて他のグラフィックコマンドを使ってフォローアップしてください。
■ 表示 反転/通常 設定
書式
void invertDisplay(uint8_t i)
引数
i: 表示モード(SSD1306_INVERTDISPLAY:反転 or SSD1306_NORMALDISPLAY:通常)
戻り値
なし
説明
画面表示の反転/通常表の設定を行います。
この設定は直ちに反映されます。
■ 画面更新表示
書式
void display()
引数
なし
戻り値
なし
説明
表示バッファの内容を画面に反映して表示内容を更新します。
この関数が呼び出されるまで描画操作は見えません。 各グラフィックスコマンドの後、またはグラフィックスコマンドのセット全体の後に、自分のアプリケーションで最も必要に応じて呼び出します。
■ 右スクロール有効設定
書式
void startscrollright(uint8_t start, uint8_t stop)
引数
start :開始の行 0 ~ 15
stop :終了の行 0 ~ 15
戻り値
なし
説明
ディスプレイの全部または一部に対して右スクロールを有効にします。
ディスプレイ全体をスクロールするには、display.startscrollright(0x00、0x0f)を実行します。
スクロールは行単位となります。他のスクロールとの併用は出来ません。
■ 左スクロール有効設定
書式
void startscrollleft(uint8_t start, uint8_t stop)
引数
start :開始の行 0 ~ 15
stop :終了の行 0 ~ 15
戻り値
なし
説明
ディスプレイの全部または一部に対して左スクロールを有効にします。
ディスプレイ全体をスクロールするには、display.startscrollleft(0x00、0x0f)を実行します。
スクロールは行単位となります。他のスクロールとの併用は出来ません。
■ 斜め右スクロール有効設定
書式
void startscrolldiagright(uint8_t start, uint8_t stop)
引数
start :開始の行 0 ~ 15
stop :終了の行 0 ~ 15
戻り値
なし
説明
ディスプレイの全体または一部に対して右斜めスクロールを有効にします。
ディスプレイ全体をスクロールするには、display.startscrolldiagright(0x00、0x0f)を実行します。
スクロールは行単位となります。他のスクロールとの併用は出来ません。
■ 斜め左スクロール有効設定
書式
void startscrolldiagleft(uint8_t start, uint8_t stop)
引数
start :開始の行 0 ~ 15
stop :終了の行 0 ~ 15
戻り値
なし
説明
ディスプレイの全体または一部に対して左斜めスクロールを有効にします。
ディスプレイ全体をスクロールするには、display.startscrolldiagleft(0x00、0x0f)を実行します。
スクロールは行単位となります。他のスクロールとの併用は出来ません。
■ スクロール操作中止
書式
void stopscroll(void)
引数
なし
戻り値
なし
説明
以前に開始したスクロール操作を中止します。
■ ディスプレイ減光設定
書式
void dim(boolean dim)
引数
dim : true 薄暗くする、false 通常表示
戻り値
なし
説明
ディスプレイを暗くします。
これは即座に表示に影響を及ぼします。表示用バッファの内容は変更されません。
■ ピクセル描画
書式
void drawPixel(int16_t x, int16_t y, uint16_t color)
引数
x :横座標 0 ~ SSD1306_LCDWIDTH-1
y :縦座標 0 ~ SSD1306_LCDHEIGHT-1
color :BLACK or 0 黒、WHITE or 1 白、INVERSE or 2 反転指定
戻り値
なし
説明
指定した色のピクセルを指定した座標に描画します。
ただし、バッファの内容のみを変更します。表示にすぐには影響しません。
display()への呼び出し、または必要に応じて他のグラフィックコマンドを使ってフォローアップしてください。
■ 垂直線描画
書式
void drawFastVLine(int16_t x, int16_t y, int16_t h, uint16_t color)
引数
x :横座標 0 ~ SSD1306_LCDWIDTH-1
y :縦座標 0 ~ SSD1306_LCDHEIGHT-1
h :高さ 1 ~ SSD1306_LCDHEIGHT
color :BLACK or 0 黒、WHITE or 1 白、INVERSE or 2 反転指定
戻り値
なし
説明
指定した座標に指定した高さの垂直線を下方向に描画します。
■ 水平線描画
書式
void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color)
引数
x :横座標 0 ~ SSD1306_LCDWIDTH-1
y :縦座標 0 ~ SSD1306_LCDHEIGHT-1
w :幅 1 ~ SSD1306_LCDWIDTH
color :BLACK or 0 黒、WHITE or 1 白、INVERSE or 2 反転指定
戻り値
なし
説明
指定した座標に指定した幅の垂直線を右方向に描画します。
/icons/hr.icon
このドキュメントはたま吉がプログラムソースをもとに作成したものです。