Arduino Mega con componenti i2c e SPI

Buongiorno a tutti
Dopo tanto tempo ho ancora bisogno del vostro aiuto.
Ho sviluppato tempo fa un sistema composto da un Arduino Mega con collegata una shield ethernet, 5 sonde DS18B20 sui pin 14-19, una RTC DS3231 sui pin 20-21, 4 uscite relais sui pin 8,9,11 e 12, 20 LED sui pin 24-43.
Il sistema funziona senza problemi ma ora devo aggiungere un display OLED SSD1306 SPI (ho i pin D0, D1, RES, DC e CS) e ho paura di creare qualche conflitto.
Qualcuno potrebbe essere così gentile da suggerirmi la giusta libreria da usare e i pin su cui collegare il modulo display?
Ho fatto un po' di ricerche ma credo che la cosa migliore sia un suggerimento mirato alla configurazione del mio sistema.
Grazie di tutto, a presto

https://www.arduino.cc/en/Reference/SPI

Grazie ma in questa pagina non c'è il minimo accenno a qualcosa che possa assomigliare ad una risposta al mio quesito.
Sono contento che la domanda non abbia una risposta banale, mi conforta il fatto che tra tutte le persone che hanno letto non ci sia stato nessuno in grado di rispondere, forse il problema non era di facile soluzione.
Per non sbagliare ho deciso di optare per un display LCD standard, è un po' più grosso ma troverò il modo di farcelo stare nel contenitore.
Buona continuazione a tutti.

Credo che Uwe ti stesse indicando di studiarti come funziona una SPI ... perché sembra che non hai le idee chiare ... ::slight_smile:

La SPI è un BUS e quindi, a parte un pin (il pin SS/CS), tutti gli altri sono in comune con i vari devices.

Per sicurezza comunque metti un link al tuo display (che dichiari essere SPI) e vediamo se lo è veramente ...

Guglielmo

Sono contento che la domanda non abbia una risposta banale

Eppure è una cosa banale

1....GND: Power ground
2....VCC: 3.3V or 5V power supply
3....D0: CLK Clock (pin 52 mega2560 )
4....D1: MOSI data (pin 51 mega2560 )
5....RST: Reset ( un pin a scelta )
6....DC: data / command ( un pin a scelta )
7....CS: Chip select signal ( un pin a scelta )

libreria Adafruit_SSD1306

Grazie ad entrambi per le risposte.
Guglielmo, ho letto e studiato il funzionamento del bus SPI e volevo essere sicuro di non creare conflitti con la shield ethernet in quanto mi sembra di capire che sulla board Mega utilizzi il bus SPI con i pin 4 e 10 per i CS di SD e ethernet rispettivamente… Forse è questo che non mi è chiaro.
Il mio display è questo Oled Display Ssd1306| Components101 , se fosse stato I2C avrei avuto solo i pin SDA e SCL come la DS3231.
Grazie anche a Brunello, forse la domanda giusta da fare era: “quali pin della board Mega2560 devo stare attento a non usare per evitare problemi avendo utilizzato una ethernet shield e una DS3231?”
Non riesco a capire perché usando il bus SPI devo passare alla libreria tutti i pin e non solo i 3 che posso giocarmi.

Buona serata

Perché la libreria u8g (immagino tu stia usando quella) può anche fare SPI software su pin arbitrari, ma non è il caso, per cui NON specificarli.