Problem Arduino Mega 2560 R3 mit Datenlogger Modul Data Recorder Shield

Hallo zusammen,

ich versuche gerade einen Datenlogger zu bauen. Dazu habe ich mir erstmal ein Arduino 2560 Mega R3 gekauft und das Datenlogger Modul Data Recorder Shield von AZDelivery geholt. Dieses habe ich auf meinen Arduino 2560 R3 Mega gesteckt:

Daraufhin wollte ich erst mal mit einem einfachen Code anfangen und habe den Beispielcode genommen.
Dann habe ich, genau wie in dem E-Book von AZDelivery beschrieben alle Schritte zur ersten Inbetriebnahme gemacht und mich genau an die Anleitung gehalten, die Bibliothek RTClib runtergeladen und installiert und den Beispielcode DS1307 auf das Arduino geladen:

/ Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include "RTClib.h"

RTC_DS1307 rtc;

char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};

void setup () {
  Serial.begin(57600);

#ifndef ESP8266
  while (!Serial); // wait for serial port to connect. Needed for native USB
#endif

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (1) delay(10);
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running, let's set the time!");
    // When time needs to be set on a new device, or after a power loss, the
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }

  // When time needs to be re-set on a previously configured device, the
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop () {
    DateTime now = rtc.now();

    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();

    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");

    // calculate a date which is 7 days, 12 hours, 30 minutes, and 6 seconds into the future
    DateTime future (now + TimeSpan(7,12,30,6));

    Serial.print(" now + 7d + 12h + 30m + 6s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();

    Serial.println();
    delay(3000);
}

Leider konnte ich mit dem Beispielcode DS1307 aber keine Verbindung aufbauen. Mit meinem Code, den ich für den Datenlogger geschrieben habe klappt es auch nicht.
Beide Programme werden jedoch kompiliert und ohne Fehler auf den Arduino geladen.

Der Serielle Monitor zeigt nur an "Couldn´t find RTC", hängt sich also hier schon auf:

if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (1) delay(10);
  }

Ich habe mich wie gesagt genau an die Anleitung gehalten, auch die Baud Rate mit 57600 passt mit der aus dem Code überein. Der Serielle Monitor arbeitet ja auch.

Ich habe auch nochmal die Steckverbindungen geprüft und alle Pins mit einem Multimeter durchgemessen, es liegt überall eine Verbindung vor. Auch die rote Power LED auf dem Shield leuchtet. Ich habe auch nochmal die Verbindung per Draht selber gelötet um sicher zu gehen.
Der Support von AZDelivery hat mir auch ein zweites Data Recorder Shield geschickt, daran liegt es also auch nicht.
Habe auch noch ein neues Arduino Board bestellt, hat auch nicht geholfen...
Ich komme also gar nicht so weit, einen Datenlogger zu bauen, ich bekomme nicht mal die RTC an den Start
Was man im Internet und hier im Forum liest, ist, dass es wahrscheinlich ein Verdrahtungsproblem ist, aber das habe ich ja wie gesagt ausgeschlossen. Ich weiß gerade nicht mehr weiter, wo der Fehler ist, deswegen dieser Forumsbeitrag(Mein erster in einem Forum).
Danke schon mal für die Hilfe
Gruß

Ist denn dein Datenlogger Modul überhaupt für den Arduino Mega geeignet ?
Der I2C Bus liegt beim Mega auf anderen Pins, als die, die vom Datenlogger Modul genutzt werden.
Poste bitte mal einen Link des Moduls.

Hi, sollte kompatibel sein, so sagt es das E-Book und auch die Webseite:

"...Die folgenden sind kompatibel:
ATmega328p Mikrocontroller
Nano V3.0
Mega 2560 R3"
Die Pins passen auch 1:1 auf den Arduino Mega. Wie gesagt hatte ich es ja auch mit hand aufgelötet, um sicher zu gehen, dass die Verbindung da ist. Spätestens dann hätte es funktionieren sollen.
Danke

Aber nur, wenn alles 100% zusammen passt.
Da ich beide (Mega und Logger) nicht verwende, kann ich nur vermuten. Und da wäre der verwendete Sketch bzw. die Library. Da passt evtl. die zuordnung der I2C Leitungen nicht. Daher auch die Meldung, er findet die RTC nicht.
Mit welchem Sketch willst du denn den Data Logger ansprechen ?
Zumindest der sollte die richtigen Pins des Mega ansprechen.

Du könntest mit einem I2C-Scanner prüfen, ob die RTC gefunden wird.

Hi, sollte kompatibel sein,

Sollte hätte könnte...
Is abba nich!

Wenn ich mir den Schaltplan anschaue liegt die RTC auf A4 und A5.
Das ist Unsinn bei einem Mega.

Für SPI wird im Plan, 13, 12 und 11 benutzt.
Auch das tuts nicht auf einem Mega.

Also umlöten.


"...Die folgenden sind kompatibel:
ATmega328p Mikrocontroller
Nano V3.0
Mega 2560 R3"

Auch das ist Unsinn!
Oder zeige mir, wie man das Ding auf einen Nano steckt....
Geht nicht? Ach...

Es steht da nicht, dass die Dinger PIN-kompatibel sind. Und schon gar nicht, das die aufsteckbar sind.

So sehr ich AZ vermeide, so ist die Aussage korrekt.

Und schon gar nicht, das die aufsteckbar sind.

Du lügst.

Shield, Mega und Anleitung passen nicht zusammen!
Was von den dreien falsch ist kannst du dir aussuchen.
Aber falsch bleibt falsch und AZ-Delivery ist inkompetent in der Sache.

Und genau das funktioniert nicht.
Da steht eindeutig: "Auf einen Nano stecken"
Auf einem Mega funktionierts wegen der Belegung nicht.

Klar kann man das umlöten, aber davon sagt die Anleitung auch nichts,

Das sind zwei Sätze.
Das hat seinen Grund.
Aber Du hast Recht.

Ach - jetzt kommt mit dem 2ten Edit die Schiene.

Wo?

Wo?

Wenn du das aus meinem geposteten Bild nicht herauslesen kannst, ist dir nicht mehr zu helfen.
Da bleibt mir nur Mitleid.

Deine Interpretation teile ich, nur steht es dort nicht.

ist Hassrede.

ist Hassrede.

Nee,,,
Unwahrheit erkannt, Unwahrheit benannt.
Wenn das bei dir Hass ist....

Mach mall Foto der Rückseite, normall solte A4, A5 verbunden sein mit SCL, SDA.
Mit SPI wird kritischer, aber machbar.
Du kanst A4 mit SDA und A5 mit SCL verbinden dan solte die RTC funktionieren.
Warnung voraus die RTC 1307 ist sehr ungenau,je nach dem was man will muss die jeden Tag gestellt werden, eine RTC DS3231 geht fast ein Jahr ohne Korrektur.

Hi alle,
danke schon mal für die Tipps. Das stimmt der Schaltplan bei AZdelivery ist eine Katastrophe, sehen ich jetzt erst, der ist für ein ganz anderes Bauteil...
Das richtige Board hat aber eine Pin Beschriftung auf der PCB und die ist 1:1 wie auf dem Arduino Mega. Ich kann es also so aufstecken und die Pins liegen auf der gleichen Stelle. Hier mal ein Foto. Unten ist der Arduino, darüber liegt das Shield:


Falls man es nicht sieht, hier nochmal einzeln, das Datenlogger Shield:

Und das Arduino:

Also die I2C(SCL, SDA) sind auch da, nur ob die sind verbunden mit der RTC?
Deshalb soltest du Foto der Rückseite zeigen.
Noch was ich habe eim Mega gehabt wo die SCL, SDA waren nicht verbunden mit D20, D21.
Das alles mus geprüft werden am besten mit Multimeter.

Das richtige Board hat aber eine Pin Beschriftung auf der PCB und die ist 1:1 wie auf dem Arduino Mega. Ich kann es also so aufstecken und die Pins liegen auf der gleichen Stelle.

Das Problem ist nicht die Beschriftung, sondern die Belegung.
Und die ist eben passend für einen UNO und nicht für einen Mega.

du sollst bitte ganz genau lesen was man dir schreibt und den Ersuchen von Informationen nachkommen. Ansonsten ziehst du die Lösung deines Problems unnötig in die Länge.

Du wurdest ersucht

  • mit dem I2C Scanner zu prüfen ob der RTC überhaupt erkannt wird. Wie war das Ergebnis? Poste die Ausgabe von der Seriellen Schnittstelle.
  • Poste Bilder der Rückseite des Shields. Da gibt es eventuell vorbereitete Lötbrücken. Wir müssen sehen können ob diese Lötbrücken geschlossen sind oder offen sind. Mach also sehr scharfe Fotos! Wir sehen nur das was du uns postest!

Das stimmt der Schaltplan bei AZdelivery ist eine Katastrophe, sehen ich jetzt erst, der ist für ein ganz anderes Bauteil...

Ja, der ist kaum zu lesen.
Stimmt aber mit den Fotos auf der Website überein.

Zumindest, soweit ich das erkennen kann.

Hi,
hier Fotos der Rückseite. SCL hat mit D21 und SDA mit D20 kontakt


hier Fotos der Rückseite. SCL hat mit D21 und SDA mit D20
kontakt

Auf dem Mega.
Aber auf deinem AZ Board gehen RTC-SLC und RTC-SDA auf A4 und A5.
Und damit tuts das nicht auf dem Mega.

Sorry, hier die Bilder:


I²C Scanner habe ich ausgeführt, er sagt nur "keine Addresse erkannt", scheint also wirklich ein Hardware Fehler zu sein.
Danke