メインコンテンツに移動

メモリカード

メモリカード(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() {}