Skip to content
This repository has been archived by the owner on Aug 1, 2022. It is now read-only.

Latest commit

 

History

History
1387 lines (865 loc) · 28 KB

lcd.md

File metadata and controls

1387 lines (865 loc) · 28 KB

LCD 画面表示

スクリーンの解像度は 横320 x 高さ240 で、左上が原点(0, 0)です。

色コードはあらかじめ定義があり、これらを利用することができます。

色定義 中身 説明 R G B
TFT_BLACK 0x0000 0 0 0
TFT_NAVY 0x000F ネイビー 0 0 128
TFT_DARKGREEN 0x03E0 濃い緑 0 128 0
TFT_MAROON 0x7800 マロン 128 0 0
TFT_PURPLE 0x780F パープル 128 0 128
TFT_OLIVE 0x7BE0 オリーブ 128 128 0
TFT_LIGHTGREY 0xC618 薄い灰色 192 192 192
TFT_DARKGREY 0x7BEF 濃い灰色 128 128 128
TFT_BLUE 0x001F 0 0 255
TFT_GREENYELLOW 0xB7E0 黄緑 180 255 0
TFT_GREEN 0x07E0 0 255 0
TFT_YELLOW 0xFFE0 黄色 255 255 0
TFT_ORANGE 0xFDA0 オレンジ 255 180 0
TFT_PINK 0xFC9F ピンク 255 255 16
TFT_CYAN 0x07FF シアン 0 255 255
TFT_DARKCYAN 0x03EF 濃いシアン 0 128 128
TFT_RED 0xF800 255 0 0
TFT_MAGENTA 0xF81F マゼンダ 255 0 255
TFT_WHITE 0xFFFF 255 255 255

begin()

機能:

使用できるように初期化を行います。

構文:

begin();

引数:

なし

戻り値:

なし

情報:

1)M5.begin( )でLCDの初期化を行わない場合は、ディスプレイを使う前にこの関数を呼んでください。

sleep()

機能:

ディスプレイを省エネモードに移行させます

構文:

sleep();

引数:

なし

戻り値:

なし

情報:

1)スリープを解除するには、wakeup()関数を呼んでください。

2)M5StackのLCDバックライトは別に制御しているため、必要に応じてsetBrightness( )関数で調整してください。

使用例:

#include <M5Stack.h>

M5.Lcd.sleep();
M5.Lcd.setBrightness(0);

wakeup()

機能:

ディスプレイを省エネモードから復帰させます

構文:

wakeup();

引数:

なし

戻り値:

なし

情報:

1)M5StackのLCDバックライトは別に制御しているため、必要に応じてsetBrightness( )関数で調整してください。

使用例:

#include <M5Stack.h>

M5.Lcd.wakeup();
M5.Lcd.setBrightness(200);

setBrightness()

機能:

ディスプレイのバックライトを調整します。

構文:

setBrightness(uint8_t brightness);

引数:

引数 説明
brightness uint8_t 明るさ(0:消灯~255:全灯)

戻り値:

なし

情報:

1)バックライトはPWM(44.1KHz)で制御されています。

2)バックライトを多用するとバッテリー消費に直接的な影響があります。

使用例:

#include <M5Stack.h>

M5.Lcd.setBrightness(200);

progressBar()

機能:

進捗を表すバーを表示します。

構文:

progressBar(int x, int y, int w, int h, uint8_t val);

引数:

引数 説明
x int 座標X(左上)
y int 座標Y(左上)
w int 幅 (px)
h int 高さ(px)
val uint8_t 進捗(0-100%)

戻り値:

なし

情報:

1)色は青色(0x09F1)で表現されます。

2)追加分しか描画しないため、あらかじめ背景を消しておいてください。

使用例:

#include <M5Stack.h>

  M5.Lcd.fillRect(0,0,240,20,0);
  M5.Lcd.progressBar(0,0,240,20, 20);

qrcode()

機能:

QRコードを生成します。

構文:

qrcode(const char *string, uint16_t x, uint16_t y, uint8_t width, uint8_t version);

qrcode(const String &string, uint16_t x, uint16_t y, uint8_t width, uint8_t version);

引数:

引数 説明
val string / String& QRに埋め込む文字列
x uint16_t 座標X(左上)
y uint16_t 座標Y(左上)
width uint8_t 幅 (px)
version uint8_t QRコードバージョン

戻り値:

なし

情報:

1)文字数に合わせて適切なQRコードバージョンを指示してください。

使用例:

#include <M5Stack.h>

  M5.Lcd.qrcode("http://www.m5stack.com",50,10,220,6);

drawBitmap()

機能:

ビットマップを描画します。

構文:

drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data);

drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint16_t *data);

drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint16_t *data, uint16_t transparent);

drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, const uint8_t *data);

drawBitmap(int16_t x0, int16_t y0, int16_t w, int16_t h, uint8_t *data);

引数:

引数 説明
x0 int16_t 座標X(左上)
y0 int16_t 座標Y(左上)
w int16_t 幅 (px)
h int16_t 高さ(px)
data uint16_t* / uint8_t* 画像データ
transparent uint16_t 透明色コード

戻り値:

なし

情報:

1)カラーコードは上位より赤5ビット、緑6ビット、青5ビットの計16ビットであらわされます。

使用例:

サンプルスケッチを参照:M5Stack->Advanced->drawXBitmap

drawBmpFile()

機能:

ファイルからビットマップを読み込み、描画します。

構文:

drawBmpFile(fs::FS &fs, const char *path, uint16_t x, uint16_t y);

引数:

引数 説明
fs fs::FS ファイルデバイス
path const char * ファイル名
x int16_t 座標X(左上)
y int16_t 座標Y(左上)

戻り値:

なし

情報:

1)サイズ、ビット数によっては展開できないことがあります。

使用例:

#include <M5Stack.h>
  M5.Lcd.drawBmpFile(SD, "/p2.bmp",0,0);

drawJpg()

機能:

メモリからJPEGデータを読み込み、描画します。

構文:

void drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE);

引数:

引数 説明
jpg_data uint8_t * 格納場所の先頭
jpg_len size_t データ長
x uint16_t 座標X(左上)
y uint16_t 座標Y(左上)
maxWidth uint16_t 最大幅 (px)
maxHeight uint16_t 最大高さ (px)
offX uint16_t オフセットX (px)
offY uint16_t オフセットY (px)
scale jpeg_div_t 座標Y(左上)

スケール(jpeg_div_t)引数:

名前 説明
JPEG_DIV_NONE 等倍
JPEG_DIV_2 1/2
JPEG_DIV_4 1/4
JPEG_DIV_8 1/8
JPEG_DIV_MAX 最大

戻り値:

なし

情報:

1)サイズ、ビット数、フォーマット(プログレッシブ等)によっては展開できないことがあります。

drawJpgFile()

機能:

ファイルからJPEGデータを読み込み、描画します。

構文:

void drawJpgFile(fs::FS &fs, const char *path, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE);

引数:

引数 説明
fs fs::FS & ファイルデバイス
path const char * ファイルがある場所
x uint16_t 座標X(左上)
y uint16_t 座標Y(左上)
maxWidth uint16_t 最大幅 (px)
maxHeight uint16_t 最大高さ (px)
offX uint16_t オフセットX (px)
offY uint16_t オフセットY (px)
scale jpeg_div_t スケール

スケール(jpeg_div_t)引数:

名前 説明
JPEG_DIV_NONE 等倍
JPEG_DIV_2 1/2
JPEG_DIV_4 1/4
JPEG_DIV_8 1/8
JPEG_DIV_MAX 最大

戻り値:

なし

情報:

1)サイズ、フォーマット(プログレッシブ等)によっては展開できないことがあります。

fillScreen()

機能:

引数で指定した色で画面を塗りつぶします。

構文:

fillScreen(uint16_t color);

引数:

引数 説明
color 塗りつぶしの色 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.fillScreen(RED);

setTextColor()

機能:

文字の色や文字の背景色を引数で指定した色に変更します。

構文:

setTextColor(uint16_t color, [uint16_t backgroundcolor]);

引数:

引数 説明
color テキストの色 uint16_t
backgroundcolor テキストの背景色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.setTextColor(RED);

setCursor()

機能:

カーソルの位置を設定します。

構文:

setCursor(uint16_t x, uint16_t y);

引数 説明
x x位置 uint16_t
y y位置 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.setCursor(100, 100);
M5.Lcd.print("Hello");

setTextSize()

機能:

描画する文字サイズを指定します

構文:

setTextSize(uint8_t size);

引数 説明
| size | 文字のサイズ(1-7) | uint8_t |

drawPixel()

機能:

指定した位置に指定色のピクセルを描画します。

構文:

drawPixel(int16_t x, int16_t y, [uint16_t color]);

引数:

引数 説明
x x位置 int16_t
y y位置 int16_t
color ピクセルの色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.drawPixel(22, 22, RED);

drawChar()

機能:

指定した始点から終点まで指定色の直線を描画します。

構文:

drawChar(int32_t x, int32_t y, uint16_t c, uint32_t color, uint32_t bg, uint8_t size);

引数:

引数 説明
x int32_t 座標X(左上)
y int32_t 座標Y(左上)
c uint16_t 文字コード
color uint32_t 描画色
bg uint32_t 背景色
size uint8_t 文字サイズ

使用例:

#include <M5Stack.h>

	M5.begin();
	M5.Lcd.drawChar(0,0,'A',TFT_GREEN,TFT_BLACK,3);

drawFastVLine()

機能:

XからYまで垂直に線を引きます。

構文:

drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color);

引数:

引数 説明
x int16_t 始点のx位置
y int16_t 始点のy位置
h int16_t 線の長さ
color uint32_t 線の色(省略可能)

使用例:

#include <M5Stack.h>

M5.Lcd.drawFastHLine(0, 0, 12, TFT_GREEN);

drawFastVLine()

機能:

XからYまで水平に線を引きます。

構文:

drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color);

引数:

引数 説明
x int16_t 始点のx位置
y int16_t 始点のy位置
w int16_t 線の長さ
color uint32_t 線の色(省略可能)

使用例:

#include <M5Stack.h>

M5.Lcd.drawFastHLine(0, 0, 12, TFT_GREEN);

drawLine()

機能:

指定した始点から終点まで指定色の直線を描画します。

構文:

drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, [uint16_t color]);

引数:

引数 説明
x0 int16_t 始点のx位置
y0 int16_t 始点のy位置
x1 int16_t 終点のx位置
y1 int16_t 終点のy位置
color uint16_t 線の色(省略可能)

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.drawLine(0, 0, 12, 12, WHITE);

drawTriangle()

機能:

指定した3点を結ぶ三角形を指定色で描画します。

構文:

drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, [uint16_t color]);

引数:

引数 説明
x0 点0のx位置 int16_t
y0 点0のy位置 int16_t
x1 点1のx位置 int16_t
y1 点1のy位置 int16_t
x2 点2のx位置 int16_t
y2 点2のy位置 int16_t
color 線の色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.drawTriangle(22, 22, 69, 98, 51, 22, RED);

fillTriangle()

機能:

指定した3点を結ぶ三角形を指定色で塗りつぶして描画します。

構文:

fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, [uint16_t color]);

引数:

引数 説明
x0 点0のx位置 int16_t
y0 点0のy位置 int16_t
x1 点1のx位置 int16_t
y1 点1のy位置 int16_t
x2 点2のx位置 int16_t
y2 点2のy位置 int16_t
color 塗りつぶしの色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.fillTriangle(22, 22, 69, 98, 51, 22, RED);

drawRect()

機能:

指定の点から指定の幅と高さの四角形を指定色で描画します。

構文:

drawRect(int16_t x, int16_t y, int16_t w, int16_t h, [uint16_t color]);

引数:

引数 説明
x 点のx位置 int16_t
y 点のy位置 int16_t
w 四角形の幅 int16_t
h 四角形の高さ int16_t
color 線の色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.drawRect(180, 12, 122, 10, BLUE);

fillRect()

機能:

指定の左上の点(x,y)と幅と高さの四角形を指定色で塗りつぶして描画します。

構文:

fillRect(int16_t x, int16_t y, int16_t w, int16_t h, [uint16_t color]);

引数:

引数 説明
x 点のx位置 int16_t
y 点のy位置 int16_t
w 四角形の幅 int16_t
h 四角形の高さ int16_t
color 塗りつぶしの色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.fillRect(180, 12, 122, 10, BLUE);

drawRoundRect()

機能:

左上の点(x,y)と幅と高さを指定して、かど丸の四角形を描画します。

構文:

drawRoundRect(int16_t x, int16_t y, int16_t w, int16_t h, int16_t r, [uint16_t color]);

引数:

引数 説明
x 四角形の左上の頂点のx座標 int16_t
y 四角形の左上の頂点のy座標 int16_t
w 四角形の幅 int16_t
h 四角形の高さ int16_t
r コーナー半径 int16_t
color 四角形の線の色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.fillRoundRect(180, 70, 122, 10, 4, BLUE);

fillRoundRect()

機能:

左上の点(x,y)と幅と高さを指定して、塗りつぶされた かど丸の四角形を描画します。

構文:

fillRoundRect(int16_t x, int16_t y, int16_t w, int16_t h, int16_t r, [uint16_t color]);

引数:

引数 説明
x 四角形の左上の頂点のx座標 int16_t
y 四角形の左上の頂点のy座標 int16_t
w 四角形の幅 int16_t
h 四角形の高さ int16_t
r コーナー半径 int16_t
color 四角形の線の色。省略可能。 uint16_t

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.fillRoundRect(180, 70, 122, 10, 4, BLUE);

drawEllipse()

機能:

左上の点(x,y)と幅と高さを指定して、楕円を描画します。

構文:

drawEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color);

引数:

引数 説明
x0 楕円の中心X座標 int16_t
y0 楕円の中心Y座標 int16_t
rx 円の横幅 int16_t
ry 円の縦幅 int16_t
color 円の色 uint16_t

使用例:

#include <M5Stack.h>

M5.Lcd.drawEllipse(100,100,20,30, TFT_GREEN);

fillEllipse()

機能:

左上の点(x,y)と幅と高さを指定して、塗りつぶされた楕円を描画します。

構文:

fillEllipse(int16_t x0, int16_t y0, int32_t rx, int32_t ry, uint16_t color);

引数:

引数 説明
x0 楕円の中心X座標 int16_t
y0 楕円の中心Y座標 int16_t
rx 円の横幅 int16_t
ry 円の縦幅 int16_t
color 円の色 uint16_t

使用例:

#include <M5Stack.h>

M5.Lcd.drawEllipse(100,100,20,30, TFT_GREEN);

color565()

機能:

関数で使用する色コード(rgb565)に変更します。

構文:

color565(uint8_t red, uint8_t green, uint8_t blue);

引数:

引数 説明
red int8_t
green int8_t
blue int8_t

戻り値:

なし

使用例:

#include <M5Stack.h>

    uint16_t colorvalue=0;
    colorvalue=color565(255,255,255);

setRotation()

機能:

画面を回転させます。

構文:

setRotation(uint8_t r);

引数:

引数 説明
r uint8_t 回転角 r (x 90°)

使用例:

#include <M5Stack.h>

	M5.begin();
	M5.Lcd.setRotation(1);

情報:

1)M5Stackのディスプレイ制御は90°回転された制御になっており、M5.Lcd.begin()の中で setRotation(1)が実行されています。

2)0~3 は回転、4~7 は画面反転し、回転します。

invertDisplay()

機能:

画面をネガポジ反転させます。

構文:

invertDisplay(boolean i);

引数:

引数 説明
i boolean 反転するなら true

使用例:

#include <M5Stack.h>

	M5.begin();
	M5.Lcd.invertDisplay(true);

loadFont()

機能:

独自のフォントを読み込みます

構文:

loadFont(String fontName, fs::FS &ffs);

引数:

| 引数 | 型 || 説明 | --- | --- | -- | | fontName | String | フォントファイル名 | | ffs | fs::FS | ファイルデバイス |

使用例:

#include <M5Stack.h>

M5.Lcd.loadFont("filename", SD);

unloadFont()

機能:

独自のフォントの使用を終えます

構文:

unloadFont();

引数:

なし

使用例:

#include <M5Stack.h>

M5.Lcd.unloadFont();

fontsLoaded()

機能:

独自のフォントを読み込んでいるかを返します

構文:

fontsLoaded();

引数:

なし

戻り値:

説明
true 読み込み済み
false 未読み込み

使用例:

#include <M5Stack.h>

if(M5.Lcd.unloadFont()){
	M5.Lcd.unloadFont();
}

drawString()

機能:

文字を描画します。

構文:

drawString(const char *string, int32_t poX, int32_t poY, uint8_t font);

drawString(const char *string, int32_t poX, int32_t poY);

drawString(const String& string, int32_t poX, int32_t poY, uint8_t font);

drawString(const String& string, int32_t poX, int32_t poY);

引数:

引数 説明
poX int32_t 座標X(左上)
poY int32_t 座標Y(左上)
string const char * / String & 文字列
font uint8_t 読み込んだフォントを使うなら 1

戻り値:

なし

printf()

機能:

指定の文字列を描画します。

構文:

printf("書式指定",arg1...);

情報:

書式指定は通常のC言語フォーマットに沿った指定ができます。

使用例:

#include <M5Stack.h>

int a=1;
M5.begin();
M5.Lcd.printf("A=%d",a);

print()

機能:

指定の文字列を描画します。

構文:

print("表示する文字列");

使用例:

#include <M5Stack.h>

M5.begin();
M5.Lcd.print("this is a print text function");

使用例 {docsify-ignore}

#include <M5Stack.h>

M5.begin();

M5.Lcd.fillScreen(BLACK) #set the default background color
M5.Lcd.drawLine(0, 0, WHITE);
M5.Lcd.drawTriangle(22, 22, 69, 98, 51, 22, RED);
M5.Lcd.fillTriangle(122, 122, 169, 198, 151, 182, RED);
M5.Lcd.drawRect(180, 12, 122, 10, BLUE);
M5.Lcd.fillRect(180, 30, 122, 10, BLUE);
M5.Lcd.drawRoundRect(180, 50, 122, 10, 4, BLUE);
M5.Lcd.fillRoundRect(180, 70, 122, 10, 4, BLUE);
M5.Lcd.print("this is a print text function");