← Hub に戻る Library 早見表

JC4827 API 早見
GFX・タッチ・SD(ミニ① Step3/4)

ミニ①で実際に触った #include と関数だけをまとめた表です。 全部ではなく、覚えておくと次が楽なものに絞っています。

実機: GUITION JC4827W543 / PIO jc4827_tx_tunerミニ①書庫:ピン配置

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.2
  • SD.hSPI.h は Arduino 標準(追加インストール不要)

2. Arduino 基本(Step2〜4 共通)

関数/書き方意味
Serial.begin(115200)USB 文字通信を始める
Serial.println(...)printfMonitor に出す
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)
printprintln 文字を出す(改行あり/なし) 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_WRITEFILE_APPEND 新規書き/末尾追記
f.printf(...)f.close() 書いて閉じる
必須: カードは FAT32。64GB は Windows だと exFAT になりやすく、そのままだと SD.begin が失敗します。

6. setup のおすすめ順番(Step4)

  1. Serial.begin
  2. バックライト ON(GPIO1 HIGH)
  3. gfx->begininvertDisplay
  4. ts.beginsetRotation
  5. SD.begin(失敗しても止めない)
  6. 画面にステータスを描く

実コード: Step3 Step4