Warum funktioniert das Az Delivery Datenlogger Modul am Mega nicht?

Hallo,

ich habe ein Problem mit dem AZ Delivery Datenlogger Modul.

Auf dem Uno funktioniert das Modul einwandfrei. Jetzt dachte ich, da die vorderen Pins ja identisch mit dem Uno sind, dass das Modul auch auf dem Mega läuft. Leider ist es nicht so.

Ich hab auch mal nur die SD Karten SPI Pins und die I2C Pins mit einem Kabel angeschlossen, also den Schield nicht draufgesteckt.

Habt Ihr eine Idee, wie ich es doch noch hinbekomme?

Gruß,
Michael

. Jetzt dachte ich, da die vorderen Pins ja identisch mit dem Uno sind, dass das Modul auch auf dem Mega läuft. Leider ist es nicht so.

Genau, dann weißt du ja schon, wo du ansetzen musst!

Was hindert dich?

Mich hindert die Tatsache, dass es nicht so funktioniert wie ich es mir gedacht habe.
Ich bin davon ausgegangen, dass I2C und SPI reichen.

Auf Mega und Uno liegen die Spezialpins an jeweils anderen Stellen. Das zeigt Dir jedes Pinout.
Einzig bei SPI kann es für beide funktionieren, wenn das Shield den ICSP-Connector anstelle der Pins benutzt.

Gruß Tommy

Dieses Shield funktioniert nicht ohne weiteres am Arduino MEGA2560.
Weil am MEGA sowohl die I2C-Pins (für die RTC) als auch die SPI-Pins (für die SD-Karte) ja nicht "am richtigen" Platz sind. Am Uno funktioniert es hingegen wie erwartet.

             UNO    MEGA
I2C: SDA     A4     20
I2C: SCL     A5     21

SPI: MOSI    11     51
SPI: MISO    12     50
SPI: SCK     13     52

Die SPI-Pins wären auch noch am ICSP-Anschluss, das Shield "ignoriert" diesen Anschluss aber.

Du kannst das Shield natürlich "händisch" verkabeln - das führt allerdings die Idee eines Shields ein wenig ad absurdum. :slight_smile:

michaelkies:
Mich hindert die Tatsache, dass es nicht so funktioniert wie ich es mir gedacht habe.
Ich bin davon ausgegangen, dass I2C und SPI reichen.

Ich weiß nicht wie du denkst, aber wenn ich feststelle, das die Bedeutung der Pins anders ist, als ich geglaubt habe.
Und mir ins Hirn getropft ist, dass dem so ist...
Dann schaue ich doch, was anders ist, oder?

z.B. die Pinouts/Schaltpläne der Boards.
Ist doch alles kein Geheimnis.
Liegen alle öffentlich aus.

Also nochmal die Frage:
Was hindert dich daran?

Weil am MEGA sowohl die I2C-Pins (für die RTC) als auch die SPI-Pins (für die SD-Karte) ja nicht "am richtigen" Platz

Zumindest für die R3 Boards haben die I2C Pins den gleichen Ort.

combie:
Zumindest für die R3 Boards haben die I2C Pins den gleichen Ort.

Das gilt für die beiden zusätzlichen SCL/SDA-Pins. Wenn der Hersteller des Shields aber A4/A5 direkt benutzt hat, passt es auch nicht.

Gruß Tommy

combie:
Zumindest für die R3 Boards haben die I2C Pins den gleichen Ort.

Stimmt.

Aber auf diesem Shield sind diese Pins zwar vorhanden, aber nicht beschalten.

Die Pin's an denen der SPI-Bus liegt ist am UNO, Mega aber auch Leonardo verschieden. Andererseits ist der SPI-Bus als ICSP herausgeführt. Darum funktioniert ein Shield das die ICSP Pins (beim UNO die 6 Pins rechts in der Mitte ) verwendet auf allen Arduinos.

Du kannst Das Shield anders verkabeln: Arduino - SPI

https://www.arduino.cc/en/Reference/SPI:
Arduino boards:
Arduino / Genuino Board MOSI MISO SCK SS (slave) SS (master) Level
Uno or Duemilanove 11 or ICSP-4 12 or ICSP-1 13 or ICSP-3 10 - 5V
Mega1280 or Mega2560 51 or ICSP-4 50 or ICSP-1 52 or ICSP-3 53 -5V
Leonardo ICSP-4 ICSP-1 ICSP-3 - - 5V
Due SPI-4 SPI-1 SPI-3 - 4, 10, 52 3,3V
Zero ICSP-4 ICSP-1 ICSP-3 - - 3,3V
101 11 or ICSP-4 12 or ICSP-1 13 or ICSP-3 10 10 3,3V
MKR1000 8 10 9 - - 3,3V

Note that MISO, MOSI, and SCK are available in a consistent physical location on the ICSP header; this is useful, for example, in designing a shield that works on every board.

Dieses Shield von AZ-Delivery hat leider keinen ICSP Anschluss.

michaelkies:
Ich hab auch mal nur die SD Karten SPI Pins und die I2C Pins mit einem Kabel angeschlossen, also den Shield nicht draufgesteckt.

Und die ganz blöde Frage: Spannungsversorgung nicht vergessen?

Ich habe aus dem Link von uxomm mal das Datasheet-rar geholt. Das zweite Dokument scheint ein Shield zu beschreiben. Da es CC 2.5 Attrib/Share-Alike lizensiert ist, darf ich es wohl hier anhängen.
Wenn das Deinem Shield entspricht ist, kannst Du darin alle Informationen für die nötige Verkabelung finden.

Die SD-Karte braucht da - wenn ich es richtig lese - eine 3.3V-Versorgung.

DatenLogger Modul Logging Shield Arduino Schematic 2.pdf (718 KB)

Alle SD-Karten werden mit 3,3V versorgt und haben die Datensignale von 3,3V. Shields für Arduino UNO müßten einen Levelshifter haben.

Grüße Uwe

Ich habe es hinbekommen. Leider habe ich nun Probleme mit dem zusätzlich neu hinzugefügten OLED Display >:(

Und welche Probleme sind das?
Geht es um die eigenartigen Zeichen, die auf dem Foto am OLED zu sehen sind?
Oder ist das nur ein “fotografisches” Problem (gerade belichtet während Bildwechsel)?

Edit:
Karma für original Arduino Mega :slight_smile:

Die Zeichen sind teilweise verschoben, manchmal ganz andere Zeichen, manchmal baut sich nur ein Teil des Bildes auf.

Das Display alleine am Uno oder Mega funktioniert ohne Probleme.

Hast du Pullup-Widerstände an deinem I2C-Bus ?
Evtl. sind schon welche auf den Breakout-Boards, das solltest du nachmessen, aber ohne Spannung an den Boards.
Wenn keine vorhanden sind, dann je I2C-Leitung ein 4k7 gegen +5V.

michaelkies:
Die Zeichen sind teilweise verschoben, manchmal ganz andere Zeichen, manchmal baut sich nur ein Teil des Bildes auf.

Also allein dafür, das es endlich mal jemand geschafft hat Daten und Versorgungsleitungen mit Kabeln zu versorgen, die nicht alle gleichfarbig sind und dann auch noch gelb und grün nicht zwischendurch zu vertauschen.... :slight_smile:

Ok, Spass beiseite.
Führe auf dem Steckbrett die I2C-Leitungen nicht sternförmig weg.
Gehe vom ARDUINO auf den ersten Sensor, dann auf den nächsten etc..
Also vom Mega 20/21 direkt auf Steckbrett 4/5 - von dort direkt nach 14/13 von dort nach 22/23

  • Ohne RTC/Verbindung zum externen Modul -
    Wenn das funktioniert, dann die RTC ran...

Ich habe aber eine Kritik.

Du stellst die Werte mit einer Genauigkeit dar die Du gar nicht hast. Die Kommastellen sind alle erfunden, sogenannte Hausnummern. In meiner Schulzeit hätte eine solche Darstellung alleine bei einer sonst fehlerfreien Arbeit eine negative Benotung nach sich gezogen.

Du mißt weder die Temperatur noch die Luftfeuchtigkeit mit Hunderstel °C bzw Rh. Das währen wahrscheinlich 0,01% Fehler. gleiches gilt für den Luftdruck.

Jetzt weiß ich nicht welche Sensoren Du hast.
Würde aber mal raten daß die Temperatur eine Genauigkeit von 1 bis 0,5% oder bestenfalls 0,5°C
Feuchtigkeit typischerweise 5%. Da sind andere Zahlen als 0 und 5 ( 5 10 15 20 25 ecc) an der Einerstelle nur Erfindung.
Der Luftdruck könnte auch keine Dezimalzahlen messen.

Grüße Uwe

Du stellst die Werte mit einer Genauigkeit dar die Du gar nicht hast.

43,6% aller Leser halten diese Kritik für überzogen. :stuck_out_tongue: :slight_smile:

Das Problem ist das erste sichtbare Zeichen in "B°C", wenn ich das richtig verstanden habe.
Und der größere Mist im Bild vom 3.2. 19:47

michael_x:
Das Problem ist das erste sichtbare Zeichen in "B°C", wenn ich das richtig verstanden habe.
Und der größere Mist im Bild vom 3.2. 19:47

Das Problem mit "B°C" wurde eigentlich hier schon gelöst (siehe #15 und #16).