今から始める電子工作 ⑬ データを表示する その3 OLEDディスプレイの描画コマンド

  SparkFun Qwiic OLED Adruino Libraryで利用できる描画コマンドなどは、大きく五つの分類があります。

<Graphics Methods>

https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library/blob/main/docs/api_graphics.md

<Arduino Print>

https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library/blob/main/docs/api_arduino.md

<Device Operations>

https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library/blob/main/docs/api_device.md

<Drawing Settings/State>

https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library/blob/main/docs/api_draw.md

<Scrolling>

https://github.com/sparkfun/SparkFun_Qwiic_OLED_Arduino_Library/blob/main/docs/api_scroll.md

 

Graphics Methods

display() 描画の実行

描画されたグラフィックスと消去コマンドをOLED デバイスに送信

erase() 画面の消去

グラフィックを消去し、ディスプレイを空白の状態にする。

pixel() 画面上のピクセルの値を設定

pixel(X座標Y座標色の値。デフォルトは白 (1) ) 

黒色は0

line() 線を描く

line(開始X座標, 開始Y座標, 終点X座標, 終点Y座標, 色の値。デフォルトは白 (1) ) 

黒色は0

rectangle() 長方形を描く

rectangle(開始X座標 - 左上隅, 開始Y座標 - 左上隅, , 高さ, 色の値。デフォルトは白 (1) ) 

黒色は0

rectangleFill() 長方形の塗りつぶし

rectangleFill(開始X座標 - 左上隅, 開始Y座標 - 左上隅, , 高さ色の値。デフォルトは白 (1) ) 

黒色は0

circle() 円を描く

circle(円の中心のX座標, 円の中心のY座標, 半径, 色の値。デフォルトは白 (1) ) 

黒色は0

circleFill() 塗りつぶされた円を描く

circleFill(円の中心のX座標, 円の中心のY座標, 半径, 色の値。デフォルトは白 (1) ) 

黒色は0

bitmap() ビットマップを描画

ビットマップは 8 ビットでエンコードされる必要がある。各ピクセルには 8 つの y 値が含まれる。

bitmap(X座標, Y座標, ビットマップ配列へのポインタ, 幅, 高さ )

bitmap()  ビットマップを描画

ビットマップは 8 ビットでエンコードされる必要がある。各ピクセルには 8 つの y 値が含まれる。

座標 [x1,y1] では、ビットマップの一部のみを描画できる。

bitmap(X0座標, Y0座標, X1座標, Y1座標, ビットマップ配列へのポインタ, 幅, 高さ )

bitmap()  ビットマップを描画

ビットマップ・データ用の Bitmap オブジェクトを使用して、画面上にビットマップを描画

bitmap(X座標, Y座標, ビットマップ・オブジェクト)

text() 現在のフォントを使用して文字列を描画

text(X座標, Y座標, 描画する文字列色の値。デフォルトは白 (1) )

 黒色は0

 文字列は、const char*もしくはString

Arduino Print

setCursor() カーソルを設定

テキスト出力を開始する場所を定義する

setCursor(X座標, Y座標)

setColor() 色の設定

setColor()

 0 = 黒、> 0 = 白

getColor() 色を取得

getColor()

 戻り値;現在の色

Device Operations

begin() 初期化

begin(WireポートI2C アドレス)

 いずれも省略するとデフォルト値が使われる。

reset() 初期状態にリセット

 reset()

getWidth() 幅を取得

 getWidth()

 戻り値;OLEDデバイスのピクセル幅

getHeight() 高さを取得

 getHeight()

 戻り値;OLEDデバイスのピクセル単位の高さ

invert() 反転

 invert(bool bInvert)

 戻り値;true- 画面が反転している。false- 画面が通常に設定されている

flipVertical() 垂直反転

 flipVertical(bool bFlip)

 戻り値;画面が垂直に反転している。false- 画面が通常に設定されている

flipHorizontal() 水平反転

 flipHorizontal(bool bFlip)

 戻り値;画面が水平に反転している。false- 画面が通常に設定されている

displayPower() ディスプレイのオン/オフを切り替え

 displayPower(bool bEnable)

 戻り値;true- OLED ディスプレイの電源がON(デフォルト)。false- 電源がOFF

Drawing Settings/State

setFont() フォントを設定

デフォルトのフォントは5x7。

 setFont(使用するフォント)
 setFont(フォントへのポインタ)

  • 5x7    <res/qw_fnt_5x7.h>    QW_FONT_5X7    5 x 7のフルフォント
  • 31x48    <res/qw_fnt_31x48.h>    QW_FONT_31X48    31 x 48のフルフォント
  • 7セグメント    <res/qw_fnt_7segment.h>    QW_FONT_7SEGMENT    数字のみ
  • 8x16    <res/qw_fnt_8x16.h>    QW_FONT_8X16    8 x 16のフルフォント
  • 大きな数字    <res/qw_fnt_largenum.h>    QW_FONT_LARGENUM    数字のみ

 オブジェクトの属性:

  • width    フォントの幅(ピクセル単位)
  • height    フォントの高さ(ピクセル単位)
  • start    フォント開始文字オフセット
  • n_chars    文字数
  • map_width    フォントマップの幅

 使用例:

#include <res/qw_fnt_31x48.h>
   
int myFontWidth = QW_FONT_31X48.width;

getFont() フォントを取得

QwiicFont * getFont()

戻り値;現在のフォントへのポインタ

getFontName() フォント名を取得

String getFontName()

戻り値;フォントの名前

getStringWidth() 文字列の幅を取得

 unsigned int getStringWidth(String 文章)

 文章;幅を決定するために使用される文字列

戻り値;文字列の幅(ピクセル単位)

getStringHeight() 文字列の高さを取得

 unsigned int getStringHeight(String 文章)

 文章;幅を決定するために使用される文字列

戻り値;文字列の高さ(ピクセル単位)

setDrawMode() 描画モードを設定

void setDrawMode(grRasterOp_t ラスタ操作)

ラスタ操作;

  • grROPCopy    デフォルトで描画されたピクセル値はデバイス画面にコピーされる
  • grROPNotCopy    画面にコピーする前にソース値にNOT演算が適用される
  • grROPNot    宛先(画面)値にNOT演算が適用される
  • grROPXOR    ソース値と宛先値の間でXOR演算が実行される
  • grROPBlack    値が0の場合、つまり黒が目的地に描画される
  • grROPWhite    値が1の場合、つまり黒が目的地に描画される

getDrawMode() 描画モードを取得

grRasterOp_t getDrawMode(void)

戻り値;現在のラスタ操作 (ROP)

Scrolling

scrollStop() スクロール・ストップ

scrollStop()
スクロールが停止し、デバイスは通常の表示操作に戻る

scrollRight() 右スクロール

scrollRight(開始ページ・アドレス(0~7), スクロールの停止/終了ページ・アドレス(0~7), スクロール・ステップ間の時間間隔)

スクロール・ステップ間の時間間隔:

  • SCROLL_INTERVAL_2_FRAMES    2
  • SCROLL_INTERVAL_3_FRAMES    3
  • SCROLL_INTERVAL_4_FRAMES    4
  • SCROLL_INTERVAL_5_FRAMES    5
  • SCROLL_INTERVAL_25_FRAMES    25
  • SCROLL_INTERVAL_64_FRAMES    64
  • SCROLL_INTERVAL_128_FRAMES    128
  • SCROLL_INTERVAL_256_FRAMES    256

scrollVertRight() 垂直方向および右方向にスクロール

void scrolVertlRight(開始ページ・アドレス(0~7), スクロールの停止/終了ページ・アドレス(0~7), スクロール・ステップ間の時間間隔)

スクロール・ステップ間の時間間隔:記載なし

scrollLeft() 左スクロール

void scrolVertlLeft(開始ページ・アドレス(0~7), スクロールの停止/終了ページ・アドレス(0~7), スクロール・ステップ間の時間間隔)

スクロール・ステップ間の時間間隔:記載なし

scrollVertLeft() 垂直方向および左方向にスクロール

void scrolVertlLeft(開始ページ・アドレス(0~7), スクロールの停止/終了ページ・アドレス(0~7), スクロール・ステップ間の時間間隔)

スクロール・ステップ間の時間間隔:記載なし

前へ

今から始める電子工作 ⑫ データを表示する その2 OLEDディスプレイ

次へ

今から始める電子工作 ⑭ I2Cバス その1-1 温湿度センサSHT45 + OLEDグラフィック・ボード