
Arduino入門
CoreS3 microSD カード関連の API およびサンプルプログラム。
#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.png、cores3_test_picture02.png。画像の解像度が 320*240 でない場合、プログラムの既定設定により表示方法が決定され、表示が乱れる可能性があります。
この SD カードを CoreS3 に挿入してください。SD カードの接点が CoreS3 の画面と同じ方向になるよう注意してください。上記のコードを Arduino IDE にコピーし、コンパイルして CoreS3 に書き込みます。
本プログラムは、SD カード内にテキストファイル WriteTest.txt を作成して文字列を書き込み、その後 SD カード内の 2 枚の PNG 画像をループ再生します。
CoreS3 の microSD カード機能では、Arduino 標準の SD ライブラリおよび M5GFX ライブラリの drawPngFile を使用しています。関連する API の詳細については、以下のドキュメントを参照してください。