Ich habe keinen Mega, aber beim Due ist auf SCL1 und SDA1 die zweite I2C Schnittstelle (Wire1).
Ist wohl beim Mega auch so, aber da nicht standardmäßig aktiviert
Edit: Oder die Pins sind auf dem Mega nur für den Due freigehalten ? (Scheinen, laut Schaltplan mit dem normalen SDA und SCL verbunden zu sein. Aber auf dem Board dann anders beschriftet ?)
Braucht man z.B. um den einen Bus mit 100 und den andern mit 400 kHz zu betreiben, wenn es da inkompatible Teilnehmer gibt. Oder um einen Multiplexer einzusparen. Manche Boards haben sogar ein Wire2 und Wire3 ...
combie:
Richtig!
So wird es von der Arduino R3 Spezifikation gefordert.
Nur der Vollständigkeit halber, halten wir fest: Auch auf einem original Due steht R3, da ist es aber nicht so.
Zurück zur Frage:
Beim Fragesteller steht da SDA1 und SCL1. Ist also offenbar kein originaler Mega.
Normalerweise sollte Code der Wire benutzt portabel sein, abgesehen von den unterschiedlichen Pinpositionen, und vorhandenen oder nicht vorhandenen Pull-Up Widerständen auf dem Board und ggf. 3,3 oder 5 V.
Mit dem Code kommt man da wohl bei der Fehlersuche nicht weiter, da würde ich eher messen, ob I2C bei diesem Board, was immer es ist, auch da ist, wo es sein sollte. Hoffentlich kein Due Klon, der mit 5 V beschickt wurde.