JC4827 API 早見
GFX・タッチ・SD(ミニ① Step3/4)
ミニ①で実際に触った #include と関数だけをまとめた表です。
全部ではなく、覚えておくと次が楽なものに絞っています。
1. ヘッダ(#include)
| ヘッダ | 役割 | どこで |
|---|---|---|
<Arduino.h> |
Arduino の基本(Serial・pinMode・delay など) | 全部 |
<Arduino_GFX_Library.h> |
液晶描画(NV3041A QSPI) | Step3/4 |
<TAMC_GT911.h> |
タッチ(GT911・I2C) | Step4 |
<SPI.h> |
SPI バス(SD 用 HSPI) | Step4 |
<SD.h> |
microSD の読み書き(FAT32) | Step4 |
PlatformIO(lib_deps)
moononournation/GFX Library for Arduino@1.4.9(1.6系は本環境と非互換)tamctec/TAMC_GT911@^1.0.2SD.h/SPI.hは Arduino 標準(追加インストール不要)
2. Arduino 基本(Step2〜4 共通)
| 関数/書き方 | 意味 |
|---|---|
Serial.begin(115200) | USB 文字通信を始める |
Serial.println(...)/printf | Monitor に出す |
Serial.flush() | 送り切ってから次へ(CDC で見やすい) |
pinMode(pin, OUTPUT) | ピンを出力にする(BL・SD_CS) |
digitalWrite(pin, HIGH/LOW) | ピンを ON/OFF |
delay(ms) | 待つ(ミリ秒) |
millis() | 起動からの経過時間(ms) |
F("文字") | 文字列を Flash に置き、RAM を節約 |
ESP.getFlashChipSize() | Flash 容量の健康診断(本機は 4MB) |
ESP.getPsramSize() | PSRAM 容量の健康診断 |
3. Arduino_GFX(Step3/4 画面)
オブジェクト名は例として gfx。
起こし方(一度だけ)
| 書き方 | 意味 |
|---|---|
Arduino_ESP32QSPI(...) |
QSPI バス(CS/SCK/D0〜D3) |
Arduino_NV3041A(bus, RST, rot, IPS) |
パネル本体。本機 RST 無し・rot=0・IPS=true |
gfx->begin() |
液晶ドライバ起動。失敗したら止める |
gfx->invertDisplay(false) |
色の反転 ON/OFF。本機は false |
gfx->width()/height() |
解像度(480×272) |
描く(よく使う)
| 関数 | 意味 | 例 |
|---|---|---|
fillScreen(c) |
画面全体を色で塗る | fillScreen(BLACK) |
fillRect(x,y,w,h,c) |
四角を塗る(文字の下地消し) | 座標表示の上書き |
fillCircle(x,y,r,c) |
円を塗る(タッチの点) | 半径 8・YELLOW |
setTextColor(c) |
文字色 | 明るい背景なら BLACK |
setTextSize(n) |
文字の大きさ(1=小、2=やや大) | タイトル 2/注釈 1 |
setCursor(x,y) |
次の文字の左上位置 | (16, 40) |
print/println |
文字を出す(改行あり/なし) | println(F("Hello")) |
printf(...) |
数字を混ぜて出す | printf("%d,%d", x, y) |
色の定数(よく使う)
BLACK WHITE RED GREEN BLUE
YELLOW CYAN MAGENTA
明るい背景(WHITE/YELLOW/CYAN)のときは文字を BLACK にすると読みやすい。
4. TAMC_GT911(Step4 タッチ)
オブジェクト名は例として ts。ピンは本機確定: SDA8/SCL4/INT3/RST38。
| 書き方 | 意味 |
|---|---|
TAMC_GT911(sda,scl,int,rst,w,h) |
タッチICを用意(幅高さは 480×272) |
ts.begin() |
I2C 初期化(アドレス既定 0x5D) |
ts.setRotation(...) |
座標の向き。本機は ROTATION_INVERTED |
ts.read() |
いまのタッチ状態を読む(loop で呼ぶ) |
ts.isTouched |
触っているか(true/false) |
ts.touches |
何本指か |
ts.points[0].x/.y |
1本目の座標 |
回転の注意(ライブラリのクセ)
ROTATION_NORMAL… 実は x/y を反転するROTATION_INVERTED… 生の座標のまま(本機はこれで指と点が一致)
5. SPI + SD(Step4 カード)
画面の QSPI とぶつからないよう、別バス HSPI を使う。ピン: CS10/MOSI11/SCLK12/MISO13。
| 書き方 | 意味 |
|---|---|
SPIClass spiSD(HSPI) |
SD 専用の SPI を用意 |
spiSD.begin(sck, miso, mosi, ss) |
ピンを割り当ててバス開始 |
SD.begin(cs, spiSD, 4000000) |
カードをマウント(速度 Hz。遅い方が安定しやすい) |
SD.cardType() |
カード種別。無しなら CARD_NONE |
SD.cardSize() |
容量(バイト) |
SD.open(path, mode) |
ファイルを開く → File |
FILE_WRITE/FILE_APPEND |
新規書き/末尾追記 |
f.printf(...)/f.close() |
書いて閉じる |
必須: カードは FAT32。64GB は Windows だと exFAT になりやすく、そのままだと
SD.begin が失敗します。
6. setup のおすすめ順番(Step4)
Serial.begin- バックライト ON(GPIO1 HIGH)
gfx->begin→invertDisplayts.begin→setRotationSD.begin(失敗しても止めない)- 画面にステータスを描く