Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

SD- und microSD Karte zur Datenspeicherung

In der folgenden Übung wird gezeigt, wie eine microSD-Karte über den Arduino UNO angesprochen wird. Eine solche Karte lässt sich hervorragend zur Datenspeicherung bei Langzeitmessungen einsetzen, wie zum Beispiel bei Wetterbeobachtungen (Messung von Temperatur und Luftdruck) oder in der Physik zur Messwertaufnahme von Bewegungsdaten.

Abbildung 1 - Arduino Wireless SD Shield; vorbereitet für die Aufnahme eines XBee-Moduls und einer microSD-Karte.

Die Messdaten werden über einen längeren Zeitraum gesammelt, auf die SD-Karte geschrieben und später am Computer ausgewertet.

SD- und microSD Karte - Teil 1

Kurzinformationen

Eigenschaften

  • SD - Secure-digital - max. 2 GB Speicherkapazität
  • SdHC - Secure-digital High Capacity - 4 GB - 32 GB
  • digitales Speichermedium
  • Formatierung: FAT16 (Sd) oder FAT32 (SdHC)
  • Mit einem SD Lesegerät und einem PC lassen sich SD-Karten formatieren.
  • Das FAT16 Format wird empfohlen.

Daten einer SD Karte auslesen

Steckt man eine beliebige SD-Karte in den Kartenslot des Shields, kann es passieren, dass die Karte nicht gelesen werden kann. Um die Ursachen des fehlerhaften Verhaltens zu finden, wird in dieser Übung ein Programm besprochen, mit dem die Daten einer SD-Karte ausgelesen werden können. Die englischsprachige Originalversion findet man bei arduino.cc.

SD- und microSD Karte - Teil 2

Kurzinformationen

Eigenschaften

  • Die Kommunikation mit SD-Karten erfolgt über den SPI-Bus.
  • Dieser belegt die Pins 11, 12, und 13 auf dem UNO.
  • Der Chipselect Pin (CS) ist abhängig von der benutzen SD-Hardware und muss im Programm separat eingestellt werden.

Übung 1

Material

  • 1x  Arduino Uno
  • 1x  Steckernetzteil
  • 1x  Steckbrett
  • 1x  Arduino Wireless SD Shield
  • 1 microSD Karte
  • div. Steckdrähte

 

Aufgaben

  • Stecke das SD Shield auf den Arduino UNO.
  • Übertrage das Programm sd_karte0.ino in den Editor und speichere es ab.
  • Starte das Programm.
  • Stecke eine microSD Karte in den Kartenslot.
  • Überprüfe die Reaktion des Programms.

 

Das Programm sd_karte0.ino

Ein erster Programmlauf

Bei einem ersten Programmlauf befand sich im SD-Kartenleser noch keine microSD-Karte; deshalb die zu erwartende Fehlerausgabe auf dem Bildschirm.

Nachdem eine microSD-Karte in den Slot gesteckt und das Programm erneut gestartet wurde, erscheinen die erwarteten Informationen im Monitor.

Die bisherigen Erfahrungen mit microSD-Karten und ihrer Lesbarkeit haben gezeigt, dass alle von mir benutzten Karten, ohne Ausnahme, auch vom SD-Shield (getestet mit Arduino SD Shield und Adafruit SD Shield) erkannt worden sind. Die Speicherkapazität der Karten reichte von 2 GB (FAT16) bis 32 GB (FAT32).

Daten auf eine SD Karte schreiben und von ihr lesen

So, wie sich Daten von einer microSD Karte auslesen lassen, lassen sich auch Daten auf sie schreiben und die einmal dort abgelegten Daten später auch wieder auslesen. In der folgenden Übung wird gezeigt, wie man Daten in eine Datei auf einer (micro)SD-Karte ablegt und sie anschließend auch wieder auslesen kann.

Übung 2

Material

  • 1x  Arduino Uno
  • 1x  Steckernetzteil
  • 1x  Steckbrett
  • 1x  Arduino Wireless SD Shield oder Adafruit Arduino Shield mit SD-Kartenhalter
  • 1 microSD/ SD Karte
  • div. Steckdrähte

 

Aufgaben

  • Stecke das SD Shield auf den Arduino UNO.
  • Übertrage das Programm sd_karte1.ino in den Editor und speichere es ab.
  • Starte das Programm.
  • Stecke eine microSD/ SD Karte in den Kartenslot.
  • Überprüfe die Reaktion des Programms.

 

Das Programm sd_karte1.ino

Die Ausgabe im Terminal

Die Ausgabe im Terminal

Bei jedem Start des Programms wird eine Datenzeile mit drei Messwerten (hier: 123.4, 235.6,  843.3) in die Datei Test.txt geschrieben und anschließend im Terminalfenster der Inhalt der Datei ausgegeben. Bei jedem Schreibvorgang werden die neuen Daten an das Ende der Datei angehängt.

Druckversion | Sitemap
© Reinhard Rahner - Gettorf