eccomi di nuovo qui con un'altra domanda.
Ho in mente di costruire un lettore di Tag NFC con Arduino utilizzando, appunto, Arduino MEGA2560 R3 + 7" 7 Inch TFT LCD Screen SD Card Slot + TFT Shield For Arduino ed un lettore NFC RFID-RC522.
Materialmente ho già tutto ( ho anche un Arduino DUE ma non so se possa andare bene, la shield è fatta per il Mega).
Ho già fatto dei primissimi esperimenti ( Mega + lettore) e (Mega + Display) .
Mi sono però accorto che accoppiando la shield sopra al Mega, vado ad utilizzare alcuni pin che solitamente vengono usati anche dal lettore RFID-RC522....
Da qualche parte ho letto che il lettore però si possa collegare alla "porta" SPI ( usando però un Arduino DUE) :
Purtroppo l'Inglese non è proprio il mio forte..
Secondo voi è possibile utilizzare in qualche modo sia il Display che il lettore di Tag NFC?
Eventualmente potrei comperare l'adattatore Shield per il DUE nel caso fosse meglio utilizzare il DUE anziché il Mega..
Il progetto finale sarebbe di vedere a display alcune informazioni che variano al variare delle schede NFC che avvicino al lettore.
Non se a voi è mai capitato di utilizzare questi componenti insieme..
Per ora grazie dell'attenzione, buon forum a tutti.
brunello22:
E' un problema fisico o quei pin ( SPI ) il TFT li usa per qualcos'altro ?
Nel primo caso, ti serve qualcosa del genere Link
Nel secondo caso dovresti mettere i link del TFT, Adapter e libreria usata
Ciao, "presumo" ( in quanto non sono molto pratico di elettronica..) che siamo realmente utilizzati in quanto vengono realmente portati dal Arduino verso il Display TFT. l materiale che ho acquistato è questo :
Ciao, io per il modulo RC522 ho usato i collegamenti uguali a quelli indicati su questo sito ( funziona) :
Dove utilizza i pin in questo modo :
MFRC522 Arduino
Reader/PCD Mega
*. Signal Pin
RST/Reset 5
SPI SDA SS 53
SPI MOSI 51
SPI MISO 50
SPI SCK 52
*/
La Shield TFT adapter mi occupa fisicamente i pin digitali dallo 0 al 7, dal 22 al 53 e le alimentazioni sulla "morsettiera " ( modo improprio di definirla ...) POWER.
Quindi avrei in comune utilizzati da entrambi i Pin che già uso su RFID RC 522, tutti e cinque i Pin, a meno che ne possa usare altri ma dubito si possano modificare , in quanto nel programma solo il Pin di Reset e SDA SS vengono definiti, gli altri non compaiono.
Eventualmente si possono usare quelli ICSP ?
SPI SCK 52
Perche' sono il Bus SPI e quindi possono condividere più periferiche
Poi per gli altri due segnali
RST/Reset
SPI SDA SS
Scegli tu altri due pin non usati dal TFT, e poi li dichiari nello sketch
Nota: Quando scrivi lo sketch, nel setup all'inizio, inizializza il CS della SD ( pin 53 ) e il pin * SPI SDA SS ( che sceglierai ) come OUTPUT e di seguito HIGH ( cosi' disabiliti le periferiche SD e RFID)
Non dovrebbe essere necessario perchè dovrebbero farlo le librerie, ma può evitare conflitti iniziali
Ciao, rieccomi qua.
Alla fine quel display era difettato.....
Ne ho preso un altro che non utilizza il Bus SPI ma quella UART ( mi pare di aver capito), GND, Vcc, TX, RX.
Con questo sono riuscito a far convivere il lettore RFID e il Display .
Ora devo fare un altro passo..... E' possibile scrivere più variabili, e poi naturalmente leggerle, all'interno di un file CSV salvato su una SD collegata tramite bus SPI?
Praticamente indicando riga e colonna di un file CSV, scrivere e leggere il numero che c'è all'interno.
Ciao, RiRieccomi..Diciamo che il problema di scrivere su SD al momento lo accantono..
lo accantono perché non riesco a far vedere ad Arduino i due circuiti ( lettore TAG NFC e Shield SD) insieme sullo stesso BUS SPI ( cambiando ovviamente il CS).
Ho collegato Miso, Mosi ed Sck dell'Arduino Mega ( 50, 51, 52) con i rispettivi Miso, Mosi ed Sck dei due circuiti. Poi ho collegato CS del lettore NFC al pin 53 del Mega e il CS della Shield SD al pin 4 della Mega.
Il problema è che nessuno dei due circuiti funziona ( quello NFC prima funzionava senza aver collegato il secondo shield SD).
I due collegamenti possono essere attivi nello stesso momento o ne devo aprire poi chiudere uno alla volta?
Esempio : aprire quello del Tag NFC ( nfc.begin) far le letture dei -tag, chiuderlo , poi aprire quello dell Shield SD (SD.begin) scrivere i valori su e SD e poi richiuderlo ?
I due circuiti, provati separatamente funzionano, quindi le due shield non sono guaste.
Mi vien già male pensare che dopo aver risolto questo ( se ci riesco a risolverlo...), poi ci devo mettere pure lo shield RTC DS3231 per registrare su SD anche Data Ora di quando succedono certi eventi ( letture dei Tag NFC) .
Ciao, proprio come avevo intuito, era una conferma a quanto avevo capito ( in realtà poco ma qualcosina si...)
Grazie per i "link" ma purtroppo, come anticipato nel messaggio iniziale di questo post, il mio "inglese" fa abbastanza pena
Colgo l'occasione per chiedervi se magari esiste qualche documentazione in Italiano sul Bus SPI, nel frattempo mi leggo per bene questa ( magari è già più che più sufficiente per quello che ne capisco io ) :
Grazie ancora, nel frattempo provo a modificare il codice ( se trovo le istruzioni corrette) per aprire e chiudere le varie connessioni alle shield.
Saluti, buona serata.
LongiarDuino
EDIT : Non trovo come chiudere le connessioni... per aprirle ci riesco (nfc.begin ed sd.begin), ma chiuderle no ... ho provato con stop, con close e con end ma mi restituisce errore
longiarduino:
... Grazie ancora, nel frattempo provo a modificare il codice ( se trovo le istruzioni corrette) per aprire e chiudere le varie connessioni alle shield.
Mah ... dovrebbero bastare delle semplici digitalWrite() sui vari pin di CS ...
... HIGH -> Scheda NON selezionata, LOW -> Scheda selezionata.
Guglielmo
*P.S.: Però, se le librerie fossero fatte bene, dovrebbero occuparsi loro della gestione del pin CS ... verifica di non usare male le librerie *
Ciao, nelle librerie non ho trovato istruzioni particolari su come chiudere "le connessioni ".
Il lettore è un PN532 della Sunfounder ,che ha la possibilità di avere altri tipi di collegamento oltre a quello SPI ( ora voi direte "ma allora perché non provi con un altro tipo di collegamento ...".. ma io son crapone e voglio capire come usare SPI perché almeno sono a posto per future implementazioni / modifiche del mio progettino .
Ho provato e non funziona, ho tolto nfc.begin ed al suo posto ho messo digitalWrite(53, LOW) ma il lettore non si abilita.
Farò altre prove.
Ho provato pure abilitandola con nfc.begin e poi tentato di disabilitare con digitalWrite(53, HIGH) ma non si disabilita .. bohh..
Il lettore nfc è questo :