Pinbelegung ändern <U8g2lib.h> oder <SD.h>

Hy Leute,
ich stehe mal wieder vor einem Problem, das ich trotz intensives googlen nicht lösen kann.
Und zwar benutze ich das Display 12864B und den micro SD Karten reader beide benutzen am Arduino Mega die gleichen (Pins 51 und 52).
Leider ist es mir nicht möglich die Pinbelegung in der library zu ändern.
Hat jemand erfahrungen oder kann mir helfen?
Grüße

Hallo,

dir ist aber schon bewusst das beide "Geräte" an einem SPI Bus hängen und damit an den gleichen Pins angeklemmt sein müssen. Sofern alle davon benutzt werden müssen alle "Geräte" auf den Pins 50, 51 und 52 angeklemmt sein. Pin 53 muss mindestens auf Ausgang gesetzt sein auch wenn der unbenutzt bleiben sollte. Pin 53 wäre ein Pin für Chip Select. Pin 50 benötigt zum Bsp. deine SD-Karte. Was für alle unterschiedlich sein muss sind die Chip Select Pins.

Mega2560 Pinout.pdf (1,9 MB)

Müssen Sie auch.
der SPI ist ein BUS, der wird an alle Teilnehmer gezogen. MISO/MOSI/SCK Nur SS (bzw. CS) sorgt dafür, das genau der Teilnehmer ausgewählt wird.

In der Initialisierung also nur den entsprechenden CS-Pin angeben.

U8G2_ST7920_128X64_1_HW_SPI u8g2(U8G2_R0, 47, 8); // PIN 47 CS

const byte chipSelect = 48;

und im setup für die SD-Karte:

  if (!SD.begin(chipSelect)) {

Welcher? von dem gibt es Minimum 10 Sorten.
Meiner SD Reader will unbedingt CS auf 48 bei Mega und SPI Display 4, frag nicht warum :wink:
Hängt aber von der Benutzter Lib für SD