====== Anleitung: Datenlogger-Shield ====== **mit SD-Karte und RTC auf dem Arduino UNO** Diese Anleitung beschreibt, wie man das Datenlogger-Shield mit SD-Karten-Slot und RTC von Christians Technikshop zusammen mit dem UNO R3 Entwicklerboard verwendet, um Zeitdaten zu erfassen und auf einer SD-Karte zu speichern. ===== Benötigte Komponenten ===== * [[https://www.christians-shop.de/UNO-R3-Entwicklerboard-fuer-Arduino-IDE-ATMEL-ATmega328PB-AVR-Mikrocontroller-CH340-Chip-Christians-Technikshop|UNO R3 Entwicklerboard für Arduino IDE (Christians Technikshop)]] * [[https://www.christians-shop.de/Datenlogger-Modul-Shield-fuer-Arduino-UNO-mit-RTC-und-SD-Card|Datenlogger-Modul Shield mit RTC und SD-Karten-Slot (Christians Technikshop)]] * [[https://www.christians-shop.de/03m-USB-Anschlusskabel-SW-USB-Stecker-Typ-A-zu-B-fuer-Arduino-UNO-MEGA-usw|USB-Anschlusskabel Typ A zu B (Christians Technikshop)]] * SD-Karte (FAT32 formatiert) * Knopfzelle CR1220 für die RTC * Arduino IDE (ab Version 1.8.x) ===== Schritt 1: Shield aufstecken ===== * Stecke das Datenlogger-Shield auf das UNO R3 Entwicklerboard. Achte darauf, dass alle Pins korrekt verbunden sind. * Setze eine passende Knopfzelle (CR1220 oder CR2032) in die RTC-Halterung auf dem Shield ein. ===== Schritt 2: SD-Karte vorbereiten ===== * Formatiere die SD-Karte mit dem Dateisystem FAT16 oder FAT32. * Stecke die SD-Karte in den SD-Karten-Slot auf dem Shield. ===== Schritt 3: Benötigte Bibliotheken installieren ===== Öffne die Arduino IDE und installiere folgende Bibliotheken über den Bibliotheksverwalter: * ''SD'' (Standardmäßig in der Arduino IDE enthalten) * ''RTClib'' (von Adafruit, zur Ansteuerung der RTC) ===== Schritt 4: Beispielcode hochladen ===== ==== Beispiel: RTC-Zeit auslesen und auf SD-Karte speichern ==== #include #include #include #include "RTClib.h" RTC_DS1307 rtc; const int chipSelect = 10; void setup() { Serial.begin(9600); // RTC initialisieren if (!rtc.begin()) { Serial.println("RTC nicht gefunden!"); while (1); } if (!rtc.isrunning()) { Serial.println("RTC läuft nicht. Setze aktuelle Zeit."); rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); } // SD-Karte initialisieren if (!SD.begin(chipSelect)) { Serial.println("SD-Karte konnte nicht initialisiert werden!"); return; } Serial.println("SD-Karte erkannt."); // Log-Datei öffnen und schreiben File dataFile = SD.open("log.txt", FILE_WRITE); if (dataFile) { DateTime now = rtc.now(); dataFile.print(now.timestamp()); dataFile.println(" -> Logeintrag"); dataFile.close(); Serial.println("Logeintrag geschrieben."); } else { Serial.println("Fehler beim Öffnen der Datei."); } } void loop() { // Leerlauf } ===== Hinweise ===== * Achte darauf, dass die SD-Karte eingesteckt ist, bevor du das Programm startest. * Die RTC behält die Zeit auch bei Stromausfall, solange eine Batterie eingesetzt ist. * Beim ersten Start wird die RTC automatisch auf die Kompilierungszeit des Sketches gesetzt. ===== Fehlerbehebung ===== * **SD-Karte wird nicht erkannt:** Überprüfe Formatierung (FAT16 oder FAT32), Steckverbindung und Chip-Select-Pin (normalerweise Pin 10). * **RTC funktioniert nicht:** Stelle sicher, dass eine Batterie eingesetzt ist und dass die RTC im Code korrekt angesprochen wird. ===== Weiterführende Links ===== * [https://www.arduino.cc/en/Reference/SD | Arduino SD Bibliothek] * [https://github.com/adafruit/RTClib | RTClib GitHub Repository]