メモリカード(SDクラス)

メモリカードを操作するライブラリです。SPI通信を使用します。

使用する場合は、#include <SD.h>を記述してください。

また、SPIは2チャネルあり、それぞれのチャネルをメモリカードアクセスに使用できます。SPI2(ピン27, 28, 29, 30)によるメモリカードアクセスのときはSD2をオブジェクト名として使用してください。注意として、SD2を使用時はUSB通信用のSerialが使用できなくなります。

begin

概要
初期化します。
文法
SD.begin()
SD.begin(int cspin)
パラメータ
cspin: CSピンのピン番号
戻り値
なし

exists

概要
目的のファイルが存在するか調べます。
文法
bool SD.exists(const char* filename)
パラメータ
filename: 調べたいファイル名
戻り値
ファイルが存在していればtrue、ファイルが存在しないかカードが検出されていなければfalseを返す。

mkdir

概要
ディレクトリを作成します。
文法
bool SD.mkdir(const char* pathname)
パラメータ
pathname: 作成したいディレクトリ名
戻り値
成功したらtrue、失敗したらfalseを返す。

open

概要
指定されたファイルを開きます。
文法
File SD.open(const char* filename, FILE_MODE mode)
パラメータ
filename: 開きたいファイル名
mode: 開くときの属性(FILE_READ: 読み出し用、FILE_WRITE: 書き込み用)
戻り値
成功したらファイルオブジェクトを返す。失敗したらfalseを返す。

remove

概要
指定されたファイルを削除します。
文法
bool SD.remove(const char* filename)
パラメータ
filename: 削除したいファイル名
戻り値
成功したらtrue、失敗したらfalseを返す。

rmdir

概要
ディレクトリを削除します。
文法
bool SD.rmdir(const char* pathname)
パラメータ
pathname: 削除したいディレクトリ名
戻り値
成功したらtrue、失敗したらfalseを返す。

サンプルプログラム

メモリカードにアクセスするサンプルです。


#include <Arduino.h>
#include <SD.h>

File myFile;

void setup()
{
  Serial.begin(9600);

  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");
  }
  else {
    Serial.println("example.txt doesn't exist.");
  }

  // open a new file and immediately close it:
  Serial.println("Creating example.txt...");
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  // Check to see if the file exists: 
  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");
  }
  else {
    Serial.println("example.txt doesn't exist.");  
  }

  // delete the file:
  Serial.println("Removing example.txt...");
  SD.remove("example.txt");

  if (SD.exists("example.txt")){ 
    Serial.println("example.txt exists.");
  }
  else {
    Serial.println("example.txt doesn't exist.");  
  }
}

void loop() {}