pdf-icon

Arduino入門

2. デバイス&サンプル

5. 拡張モジュール&サンプル

アクセサリー

6. アプリケーション

CoreS3 microSD カード

CoreS3 microSD カード関連の API およびサンプルプログラム。

サンプルプログラム

コンパイル要件

  • M5Stack ボードマネージャーバージョン >= 3.2.5
  • 開発ボードオプション = M5CoreS3
  • M5Unified ライブラリバージョン >= 0.2.11
  • M5GFX ライブラリバージョン >= 0.2.18
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
#include <SPI.h>
#include <SD.h>
#include <M5Unified.h>

// ========== CoreS3 SD カード 正しいピン定義 ==========
#define SD_SPI_CS_PIN    4
#define SD_SPI_SCK_PIN  36
#define SD_SPI_MISO_PIN 35
#define SD_SPI_MOSI_PIN 37

void setup() {
  M5.begin();

  M5.Display.setFont(&fonts::FreeMono12pt7b);
  M5.Display.clear();

  // ========== SD カード初期化(正しいピンを使用)==========
  SPI.begin(SD_SPI_SCK_PIN, SD_SPI_MISO_PIN, SD_SPI_MOSI_PIN, SD_SPI_CS_PIN);

  if (!SD.begin(SD_SPI_CS_PIN, SPI, 25000000)) {
    M5.Display.println("SD card not detected");
    while (1);
  } else {
    M5.Display.println("SD card detected");
  }
  delay(1000);

  // ========== 書き込みテスト ==========
  M5.Display.println("SD card write test...");
  auto file = SD.open("/WriteTest.txt", FILE_WRITE, true);
  if (file) {
    file.print("Hello, world! \nSD card write success! \n");
    file.close();
    M5.Display.println("SD card write success");
  } else {
    M5.Display.println("Failed to create TXT file");
  }
  delay(1000);

  // ========== 読み取りテスト ==========
  M5.Display.println("SD card read test...");

  if (SD.exists("/cores3_test_picture01.png")) {
    M5.Display.println("PNG file 01 detected");
  } else {
    M5.Display.println("PNG file 01 not detected");
  }

  if (SD.exists("/cores3_test_picture02.png")) {
    M5.Display.println("PNG file 02 detected");
  } else {
    M5.Display.println("PNG file 02 not detected");
  }
  delay(1000);
}

void loop() {
  M5.Display.drawPngFile(SD, "/cores3_test_picture01.png");
  delay(500);
  M5.Display.drawPngFile(SD, "/cores3_test_picture02.png");
  delay(500);
}

microSD カードを 1 枚用意し、FAT32 形式でフォーマットしてください。ルートディレクトリに、解像度 320 * 240 の PNG 画像を 2 枚配置し、ファイル名を cores3_test_picture01.png、cores3_test_picture02.png としてください。以下から直接ダウンロードすることもできます:cores3_test_picture01.pngcores3_test_picture02.png。画像の解像度が 320*240 でない場合、プログラムの既定設定により表示方法が決定され、表示が乱れる可能性があります。

この SD カードを CoreS3 に挿入してください。SD カードの接点が CoreS3 の画面と同じ方向になるよう注意してください。上記のコードを Arduino IDE にコピーし、コンパイルして CoreS3 に書き込みます。

本プログラムは、SD カード内にテキストファイル WriteTest.txt を作成して文字列を書き込み、その後 SD カード内の 2 枚の PNG 画像をループ再生します。

API

CoreS3 の microSD カード機能では、Arduino 標準の SD ライブラリおよび M5GFX ライブラリの drawPngFile を使用しています。関連する API の詳細については、以下のドキュメントを参照してください。

On This Page