[RISOLTO] PIN già utilizzati

Salve a tutti,
sono nuovo del forum ed ho già provveduto a fare un presentazione nell'apposita sezione, Detto questo passo ad esporvi il mio problema:
possiedo un Arduino UNO e devo collegare un lettore RFID (Mifare RC522) e un modulo ENC28J60. Il problema è che entrambi utilizzano i PIN 10, 11, 12, 13. Inizialmente ho pensato di cambiare i PIN utilizzati da un modulo all'interno della libreria ma non so come fare. Qualcuno può indicarmi come procedere?

Utilizzo questi componenti hardware acquistati su Amazon.it (non per fare pubblicità):

Grazie in anticipo :wink:

Non devi cambiare i pin, sono quelli del bus SPI e si possono collegare in parallelo su più device, devi solo prevedere un pin di attivazione per ogni device, quello di default è il 10 però al suo posto puoi usare qualunque altro pin.
Collega i pin 13-12-11 a tutte e due le schede, poi scegli due pin a tuo piacere, p.e. 10 e 9, per il segnale di selezione, solitamente marcato CS sul device, ovviamente il software dovrà di volta in volta attivare tramite l'apposito pin il device con cui vuoi dialogare tramite SPI.
Ti rammento che sul pin 13 c'è il led di Arduino, quando usi la SPI è normale vederlo lampeggiare in modo frenetico.

Quei moduli utilizzano il bus SPI, quindi ... comincia con lo studiare come funziona tale bus, QUI ed anche QUI.

Fatto ciò, avrai capito che tre di quei pin (MISO, MOSI, SCK) sono in comune a TUTTI i devices SPI, mentre uno solo devi sceglierlo differente (SS) per ogni device che colleghi. :slight_smile:

Normalmente, le librerie, permettono di specificare, al momento dell'inizializzazione, quale pin di SS utilizzare.

Tu quali librerie stai utilizzando (metti il link)?

Guglielmo

Edit: Astro mi ha anticipato ... :smiley:

Grazie per avermi risposto :slight_smile:
Le librerie le ho scaricate dai siti ove ho trovato degli articoli:

Basta leggere la documentazione/gli esempi ... :slight_smile:

... nel readme della Ethernet è chiaramente indicato che il CS è normalmente sul pin 10, ma può essere cambiato passandolo alla ether.begin()

... per la RFID basta guardare l'esempio e dare un'occhiata al sorgente della libreria per scoprire che anche li, nel costruttore, si passa il pin che si vuole usare per il CS

Guglielmo

P.S.: Trovi spesso usato sia l'acronimo CS che SS per indicare lo stesso pin.

Il ENC28J60 ha poche risorse percui Arduino deve lavorare tanto. Meglio usare un W5100 che gestisce l'ethernet da solo.
Ciao Uwe

Grazie mille a tutti! :wink: