NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(SD.mkdir関数の使い方)

■SD.mkdir関数
 SD.mkdir関数は、SDカードにディレクトリを作成します。
 これにより、まだ存在していない中間ディレクトリも作成されます。
 SD.mkdir( "a / b / c")はa、b、cを作成します。

■使用例
 Arduino IDEで使用するSD.mkdir関数の使い方は以下の通りです。
  試しに図1の様にmicroSDカードとArduino UNOを接続し下記プログラムを実行すると、SD.begin関数でmicroカードが存在するか確認し初期化します。
 次にSD.mkdir関数で中間デレクトリも含めたa、b、cを作成します。

イメージ 1
図1:SparkFun microSD Transflash BreakoutArduinoProMini3.3Vの接続例
ArduinoUNO等の5V出力マイコンと接続する場合は、
レベルシフタか抵抗の分圧で電圧を3.3Vに下げます。
表1:ArduinoUNOへのSDカード接続方法
microSDカード Breakoutボード ArduinoProMini3.3V
DAT0 D0 MISO
VSS GND GND
CLK SCK SCK
VDD Vcc 3.3V
CMD DI MOSI
CD/DAT3 CS CS/S

Breakoutボードに関する詳細はコチラ

#include <SPI.h>
#include <SD.h>

//イーサネットシールドでは、CSはピン4です。CSピンとして使用されていなくても、ハードウェアCSピン(ほとんどのArduinoボードでは10、メガでは53)を出力のままにする必要があります。
const int chipSelect = 8;

void setup() {
   // シリアル通信を開き、ポートが開くのを待ちます
   Serial.begin(9600);
   while (!Serial) {
       ; // シリアルポートが接続するのを待ちます。レオナルドのみに必要
   }

   Serial.print("Initializing SD card...");
   // デフォルトのチップセレクトピンが使用されていない場合でも、それが出力に設定されていることを確認してください。
   pinMode(10, OUTPUT);

   // 使用するchipSelectピンも出力に設定する必要があります。
   pinMode(chipSelect, OUTPUT);

   // カードが存在し、初期化できるかどうか確認してください。
   if (!SD.begin(chipSelect)) {
       Serial.println("Card failed, or not present");
       // 何もしないでください
       return;
   }
   Serial.println("card initialized.");

   //SDカードに中間ディレクトリも含めてa,b,cを作成する
   if (!SD.exists("a/b/c")) {
       if (SD.mkdir("a/b/c")) {
           Serial.print("File directory created: ");
       } else {
           Serial.print("File directory not created");
       }
   } else {
       Serial.print("File directory exists: ");
   }
}

void loop() {}
イメージ 1
図1:プログラム例

■構文
 SD.mkdir(filename)

■パラメータ
 filename:作成するディレクトリの名前。
      サブディレクトリはスラッシュ( / )で区切ります。

■戻り値
 ディレクトリの作成が成功した場合はtrue、失敗した場合はfalse

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る