listfiles

Bu örnek, SD kartın dizininde bulunan dosyaların nasıl listelendiğini gösterir. SD kütüphanesi hakkında daha fazla bilgi için lütfen buraya tıklayın .

Gerekli Donanım

  • Arduino veya Genuino kartı
  • Ethernet Kalkanı (veya SD yuvalı başka bir kart)
  • Biçimlendirilmiş SD kart

Devre

Arduino veya Genuino kartı Ethernet Kalkanına bağlı olmalı ve ayrıca bilgisayara bağlı bir USB kablosu olmalıdır.

Şemalar

Kod

Aşağıdaki kod, yerleşik SD yuvasına sahip bir Ethernet kalkanı ile kullanım için yapılandırılmıştır. SD.begin() setup() , SD.begin() PIN 4'ü CS pin olarak adlandırır. Bu pim, kullandığınız kalkanın veya kartın markasına bağlı olarak değişir.

Ana loop() hiçbir şey yapmaz, çünkü SD kartın "/" dosya dizinini yazdıran işlev setup() çağrılır. Çünkü sadece bir kez görmemiz gerekiyor.

printDirectory işlevi, girişler listesini tarar ve var olan her dosya ve dizinin üzerine seri olarak yazdırır. Dosyalar için de boyut yazdırılır.

/*
  Listfiles

  This example shows how print out the files in a
  directory on a SD card

  The circuit:
   SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

  created   Nov 2010
  by David A. Mellis
  modified 9 Apr 2012
  by Tom Igoe
  modified 2 Feb 2014
  by Scott Fitzgerald

  This example code is in the public domain.

*/

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

File root;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }

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

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

  root = SD.open("/");

  printDirectory(root, 0);

  Serial.println("done!");
}

void loop() {
  // nothing happens after setup finishes.
}

void printDirectory(File dir, int numTabs) {
  while (true) {

    File entry =  dir.openNextFile();
    if (! entry) {
      // no more files
      break;
    }
    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 {
      // files have sizes, directories do not
      Serial.print("\t\t");
      Serial.println(entry.size(), DEC);
    }
    entry.close();
  }
}
[Kodu Al]

See Also


  • CardInfo- SD kartınız hakkında bilgi alın.
  • Datalogger- Üç analog sensörden bir SD karta veri nasıl kaydedilir.
  • DumpFile- SD karttan bir dosya nasıl okunur.
  • Files- Nasıl bir SD kart dosyası oluşturmak ve yok etmek.
  • ReadWrite- Bir SD karta ve SD karttan veri okuma ve yazma.