NOBのArduino日記!

NOBのArduino日記!

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

Arduino IDE(file.rewindDirectory関数の使い方)

■file.rewindDirectory関数
 SD:FileClassのfile.rewindDirectory関数は、openNextFile関数と一緒に使用されるディレクトリ内の最初のファイルに戻ります。

■使用例
 Arduino IDEで使用するfile.rewindDirectory関数の使い方は以下の通りです。
  試しに図1の様にmicroSDカードとArduino UNOを接続し下記プログラムを実行すると、SD.begin関数でmicroカードが存在するか確認し初期化します。
 setup関数中のroot.rewindDirectory関数によってディレクトリ内の最初のファイルに戻ります。

イメージ 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 <SD.h>
File root;

void setup() {
   Serial.begin(9600);
   pinMode(10, OUTPUT);
   SD.begin(10);
   root = SD.open("/");
   printDirectory(root, 0);
   delay(2000);
   Serial.println();
   Serial.println("Rewinding, and repeating below:" );
   Serial.println();
   delay(2000);
   root.rewindDirectory();
   printDirectory(root, 0);
   root.close();
}

void loop() {} // セットアップが完了しても何も起こらない

void printDirectory(File dir, int numTabs) {
   while (true) {
       File entry = dir.openNextFile();
       if (! entry) {
           if (numTabs == 0)Serial.println("** Done **");
           return;
       }
       for (uint8_t i = 0; i < numTabs; i++)
           Serial.print('\t');
       Serial.print(entry.name());
       if (entry.isDirectory()) {
           Serial.println("/");
           printDirectory(entry, numTabs + 1);
       } else {
           Serial.print("\t\t");
           Serial.println(entry.size(), DEC);
       }
       entry.close();
   }
}
イメージ 1
図1:プログラム例

■構文
 file.rewindDirectory()

■パラメータ
 file:Fileクラスのインスタンス(SD.open関数によって返されます) 

■戻り値
 特に無し。

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

↩【ArduinoIDE reference】目次に戻る