SD-Karten-Modul

Lesezeit: 8 Minuten

SD-Karten-Modul

Das Mod­ul wird über den ⇒SPI-Bus angeschlossen.

Statt des SD-Karten-Moduls kannst du auch ein ⇒Eth­er­net-Shield oder ein Daten­log­ger-Shield ver­wen­den.

Benö­tig­te Bibliothek:

Sketch ⇒ Biblio­thek ein­bin­den ⇒ Biblio­the­ken ver­wal­ten

Achte auf die Pin-Bele­gung des SD-Karten-Moduls!
Die SD-Karte muss mit FAT32 for­matiert sein!

Funktionen der Bibliothek SdFat

Schlüs­sel­wortPara­me­terAktion
begin(Datenpin)Mod­ul starten

int DatenPin = 4;
begin(DatenPin);
exists(Dateiname)Vorhan­den­sein ein­er Datei prüfen

exits("Lottozahlen.txt");
remove(Dateiname)Datei ent­fer­nen

remove("Lottozahlen.txt");
close()Datei schließen

Datei.close();
open(Dateiname, Para­me­ter)
print()
print­ln()
O_CREAT -> Datei erstellen, wenn sie nicht existiert
O_WRITE -> in die Date schreiben
O_AT_END -> Start­po­si­tion zum Schreiben an das Ende der Datei set­zen
Dat­en in Datei schreiben

open("Lottozahlen.txt", O_CREAT | O_WRITE | O_AT_END);

println("1 15 8 21 37 16 34");
open(Dateiname)
avail­able()
read()
readStringUntil(Zeichen)
O_RDONLY nur lesenDatei öff­nen und Dat­en lesen

Datei = SD.open("Lottozahlen.txt", O_RDONLY);
// solange sich Zeilen in der Datei befinden ...
while (Datei.available())
{
  // ... werden sie gelesen und im Seriellen Monitor ausgegeben
  Serial.write(Datei.read());
}
mkdir(Verzeichnisname)Verze­ich­nis erstellen

mkdir("Zahlen");
rmdir(Verzeichnisname)Verze­ich­nis löschen

rmdir("Zahlen");
ls(Parameter)LS_R Inhalt rekur­siv anzeigen
LS_SIZE Dateien mit Größe anzeigen
LS_DATE Datei mit Datum anzeigen
Die Para­me­ter kön­nen auch kom­biniert wer­den:
ls(LS_DATE | LS_SIZE | LS_R);
Inhalt der SD-Karte anzeigen

openNext(Dateiname, Größe)isDir() -> auf Vorhan­den­sein eines Verze­ich­niss­es prüfen
get­Name() -> Dateiname und ‑größe ermit­teln
file­Size() -> Größe der Datei in Bytes
File Verzeichnis;
File Datei;
char Dateiname[20];

Verzeichnis.open("/");

while (Datei.openNext(&Verzeichnis, O_READ))
{
  Datei.getName(Dateiname, sizeof(Dateiname));
  Serial.print(Dateiname);

  if (Datei.isDir())
  {
    Serial.println("/");
  }
  else
  {
    Serial.print('\t');
    Serial.print(Datei.fileSize());
    Serial.println(" Bytes");
  }
  Datei.close();
}

Arduino UNO

Verzeichnis lesen mit ls

Verzeichnis lesen mit OpenNext

Datei lesen

Lege auf der SD-Karte eine Datei Zahlen.txt an und fülle sie mit eini­gen Zahlen.

Daten in Datei schreiben und lesen

ESP32

Verzeichnis lesen mit ls

Verzeichnis lesen mit OpenNext

Datei lesen mit read

Datei lesen mit readStringUntil

Daten in Datei schrei­ben und lesen


Letzte Aktualisierung: Nov. 17, 2025 @ 10:15