■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:SparkFun microSD Transflash BreakoutとArduinoProMini3.3Vの接続例
※ArduinoUNO等の5V出力マイコンと接続する場合は、
レベルシフタか抵抗の分圧で電圧を3.3Vに下げます。
※ArduinoUNO等の5V出力マイコンと接続する場合は、
レベルシフタか抵抗の分圧で電圧を3.3Vに下げます。
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 |
#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:プログラム例
■構文
SD.mkdir(filename)
■パラメータ
filename:作成するディレクトリの名前。
サブディレクトリはスラッシュ( / )で区切ります。
■戻り値
ディレクトリの作成が成功した場合はtrue、失敗した場合はfalse
励みになりますのでよければクリック下さい(^o^)/