NON è possibile, sulla MEGA i pin 11 e 13 NON corrispondono a MOSI e SCK, quindi, o non stai usando la libreria SPI, ma usi un bit-banging (emulazione SPI su qualunque pin), o NON può funzionare!
Non credo, è ampiamente usata ... credo piuttosto nel tuo programma ... fanne una versione minima (per facilitarci la lettura) e mettilo qui che gli diamo un'occhiata (mi raccomandoi tra i tag CODE).
FERMI TUTTI, me ne accorgo ora ... ma tu stai usando questa forma per istanziare la classe?
Ovvio che non ti funziona, quel modo di istanziare la classe è per avere il bit-banging (Software SPI) ovvero il SPI su qualsiasi pin ... la Ethernet funziona con la VERA SPI hardware e non con emulazioni software ... ovvio che, se da una parte i pin 51, 52 e 53 li dichiari collegati al controllore SPI (Ethernet) e dall'altra li dichiari come GPIO (Software SPI), le due cose vanno in conflitto e non funzionerà mai!!!
SEMPRE studiare prima le classi ed i metodi che mettono a disposizione ... se ti fossi guardado come viene istanziata la classe in Adafruit_ST7735.cpp avresti scoperto che ci sono DUE possibilità:
quella che hai usato tu e che è proprio definita come Software SPI:
Grazie Guglielmo
Stavo proprio per inviarti il codice esmepio del TFT in quanto l'ho provato con i pin 11 >>13 e funziona ....cosa anomala in quanto l'hardware del mega prevede in SPI il 51>>53 quindi non dovrebbe mai funzionare tranne se si usa il il bit-banging (la prima volta che lo sentivo e non lo conoscevo...)
quindi è come riporti, adesso provo con il seguente collegamento HW e codfice:
#define TFT_CS 44 // CS #define TFT_DC 50 // DC/MISO #define mosi 51 // MOSI #define sclk 52 // SCLK #define TFT_RST 48 // RST can use any pin
Ricorda di impostare il pin 53 come output, metterlo HIGH e non usarlo.
Consiglio anche, ad inizio del setup() di dichiarare output i pin 4 e 10 e mettere HIGH anche loro, così tutti i CS della Ethernet cominciano con tutto NON selezionato
Il problema è che, per la mia poca esperienza non cosnoscevo il " bit-banging " quindi come riporti , NON poteva mai funzionare.
Poi ho dovuto ritrovare e ricollegare il display i vari acronimi del display con gli acronimi SPI , con la versione precedente andavano bene tutti i pin.
Adesso il progetto funziona con : "SD" + "Ethernet" + TFT ST7735 !!!
Figurati, sono contento che abbiamo individuato il problema e ... mi raccomando, dare sempre un'occhiata ai sorgenti delle librerie che si usano perché ci si trovano dentro tutte le info necessarie