Arduino Datenlogging mit SD-Karte & DS3231 RTC – Schritt-für-Schritt-Anleitung
In diesem Arduino-Tutorial lernen Sie, wie Sie ein SD-Kartenmodul mit dem Arduino-Board verwenden. In Kombination mit dem DS3231 Real Time Clock Modul erstellen wir ein Datenlogging-Beispiel: Wir speichern Temperatursensordaten auf der SD-Karte und importieren sie in Excel, um ein Diagramm zu erstellen. Sie können das folgende Video ansehen oder die schriftliche Anleitung unten lesen. Sehen wir uns zuerst das SD-Kartenmodul an. Es arbeitet mit Standard-MicroSD-Karten (Betriebsspannung 3,3 V). Daher besitzt das Modul einen Spannungsregler und Level-Shifter, damit es an den 5-V-Pins des Arduino betrieben werden kann. Das Modul hat sechs Pins: zwei für die Stromversorgung (VCC, GND) und vier für die SPI-Kommunikation. Hier der Anschluss an den Arduino: Beachten Sie, dass jedes Arduino-Board andere SPI-Pins hat, die entsprechend verbunden werden müssen. Benötigte Komponenten: Nun programmieren wir den Arduino. Hier ein einfacher Code: Code-Beschreibung: Wir binden die Standardbibliotheken Zuerst starten wir die serielle Kommunikation und definieren den Chip-Select-Pin als Output (muss Low sein für SPI-Kommunikation). Mit Mit Zum Lesen öffnen wir die Datei erneut mit Nach dem Hochladen erscheint bei Erfolg folgendes im Serial Monitor: Die SD-Karte wurde initialisiert, Schreiben und Lesen war erfolgreich. Am Computer findet man die erstellte „test.txt“ mit dem Text. Nun ein interessanteres Beispiel: Temperaturdaten logging. Dafür nutzen wir das DS3231 Real Time Clock Modul, das einen eingebauten Temperatursensor hat. Details zum Anschluss und zur Nutzung finden Sie in meinem vorherigen Tutorial. Nach dem Anschließen beider Module an den Arduino, hier der Code: Code-Beschreibung: Wir binden die Bibliotheken für beide Module ein, erstellen die Objekte und initialisieren sie im Im Dieselben Werte werden in die Datei „test.txt“ geschrieben. Am Ende eine Verzögerung von 3000 ms als Aufzeichnungsintervall. Nach dem Hochladen speichert der Arduino alle 3 Sekunden Temperaturwerte. Nach einer Weile kann man die SD-Karte am Computer auslesen. Für ein Excel-Diagramm importieren wir die Datei: Im Menü „Daten“ → „Aus Text“ → Datei auswählen → „Getrennt“ → Weiter → Komma als Trennzeichen wählen → Fertigstellen. Zeit und Temperatur landen in getrennten Spalten. Beide Spalten markieren → „Einfügen“ → „Liniendiagramm“ → Diagramm mit Temperaturwerten alle 3 Sekunden. Das war dieses Tutorial. Fragen gerne in den Kommentaren!Funktionsweise



Arduino SD-Kartenmodul Code
/*
* Arduino SD Card Tutorial Example
* by Dejan Nedelkovski, www.HowToMechatronics.com
*/
#include <SD.h>
#include <SPI.h>
File myFile;
int pinCS = 53; // Pin 10 bei Arduino Uno
void setup() {
Serial.begin(9600);
pinMode(pinCS, OUTPUT);
// SD-Karten-Initialisierung
if (SD.begin()) {
Serial.println("SD card is ready to use.");
} else {
Serial.println("SD card initialization failed");
return;
}
// Datei erstellen/öffnen
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile) {
Serial.println("Writing to file...");
myFile.println("Testing text 1, 2 ,3...");
myFile.close();
Serial.println("Done.");
} else {
Serial.println("error opening test.txt");
}
// Datei lesen
myFile = SD.open("test.txt");
if (myFile) {
Serial.println("Read:");
while (myFile.available()) {
Serial.write(myFile.read());
}
myFile.close();
} else {
Serial.println("error opening test.txt");
}
}
void loop() { }Code language: Arduino (arduino)SD und SPI ein, erstellen ein File-Objekt und definieren den Chip-Select-Pin des SPI-Bus (Pin 53 beim Arduino Mega, Pin 10 beim Uno). Da der Code nur einmal ausgeführt werden soll, steht alles im setup(), loop() bleibt leer.SD.begin() initialisieren wir die SD-Karte – bei Erfolg wird „SD card is ready to use.“ ausgegeben, sonst Fehlermeldung und Programmende.SD.open("test.txt", FILE_WRITE) erstellen wir eine neue Datei (oder öffnen bestehende). Bei Erfolg schreiben wir per myFile.println() Text hinein und schließen die Datei mit close(), um Daten physisch zu speichern.SD.open("test.txt"), lesen zeichenweise per myFile.read() in einer while-Schleife mit myFile.available() und geben alles auf dem Serial Monitor aus. Am Ende Datei schließen.
Arduino SD-Karten Datenlogging
/*
* Arduino Temperature Data Logging
* by Dejan Nedelkovski, www.HowToMechatronics.com
*/
#include <SD.h>
#include <SPI.h>
#include <DS3231.h>
File myFile;
DS3231 rtc(SDA, SCL);
int pinCS = 53; // Pin 10 bei Arduino Uno
void setup() {
Serial.begin(9600);
pinMode(pinCS, OUTPUT);
if (SD.begin()) {
Serial.println("SD card is ready to use.");
} else {
Serial.println("SD card initialization failed");
return;
}
rtc.begin();
}
void loop() {
Serial.print(rtc.getTimeStr());
Serial.print(",");
Serial.println(int(rtc.getTemp()));
myFile = SD.open("test.txt", FILE_WRITE);
if (myFile) {
myFile.print(rtc.getTimeStr());
myFile.print(",");
myFile.println(int(rtc.getTemp()));
myFile.close();
} else {
Serial.println("error opening test.txt");
}
delay(3000);
}Code language: Arduino (arduino)setup().loop() geben wir per Serial.print() Zeit und Temperatur auf dem Serial Monitor aus, getrennt durch Komma und Zeilenumbruch nach dem Temperaturwert. Dieses Format erleichtert den Import in Excel. Temperaturwerte werden in Integer umgewandelt.

Herstellungsprozess
- IXON Cloud: Maschinendaten-Logging & Dashboards in Minuten meistern
- Sicheres Arduino RFID-Schloss bauen – Schritt-für-Schritt-Anleitung
- Arduino Energiemonitor & Datenlogger (Dr. Wattson, MCP39F521) – Schritt-für-Schritt
- LCD-Animationen & Spiele mit Arduino UNO erstellen
- Arduino Temperatur- & Feuchtelogger mit DHT11 & Ethernet Shield
- Python 3 zu Arduino UNO: Einfache Steuerung & LED-Demo
- Kompaktes FM-Radio mit Arduino Nano und RDA5807M selbst bauen
- Arduino Nano Fingerabdruck-Sensor-Projekt – Schritt-für-Schritt-Tutorial
- Mini-Klavier mit Arduino UNO bauen – Schritt-für-Schritt-Anleitung
- Arduino Einsteiger Tutorial #1: Erstes Projekt (Blink)