2013-05-16 10 views
5

Ho lavorato con Seeed Ethernet, SD e uno TFT Scudi per imparare come usare Arduino. Tuttavia, ho scoperto che non posso usare questi scudi insieme perché tutti e tre usano Pin 10 per il loro pin SS.Software per impilare gli scudi Arduino

C'è un modo per cambiare a livello di codice pin SS per qualsiasi scudo Arduino?

So che la libreria SD ha SD.begin(), ma anche quando imposto il pin su un pin inutilizzato, gli scudi non funzionano insieme. So che esiste una libreria SPI che viene fornita con il software Arduino, ma lo SPI.begin(slaveSelectPin) è solo su Arduino Due e io ho uno Arduino Uno.

Ho trovato il Go-Between Shield, ma guardando la guida dell'utente, dovrei ancora cambiare il mio codice per usare altri pin su Arduino (a meno che non lo legga male), quindi perché non saltare tutto e apportare le modifiche sugli scudi che ho già.

Sarebbe meglio in ingegneria elettrica?

+0

Date un'occhiata qui: http://mosquino.googlecode.com/hg-history/5ceb2c9af1bfdc97e702e384bc702810ef9e707f/libraries/sdfatlib-mosquino/readme.txt Non ho provato io stesso, ma dovrebbe funzionare. – FeliceM

risposta

2

C'è un modo per cambiare a livello di codice pin SS per qualsiasi schermo Arduino ?

No. Il pin è cablato sullo schermo. Puoi usare pin diversi sul tuo arduino come pin SS, ma saranno collegati allo "stesso" pin sulle schede. Per questo non sarebbe possibile impilare gli scudi e scrivere il codice SPI nel software.

2

A seconda degli scudi effettivi e della loro revisione, potrebbe essere effettivamente possibile hackerare un pin qua e là per mappare SS su un pin diverso su Arduino.

Dopo questa rimappatura, sarà necessario eseguire una regolazione simile alle librerie che si aspettano che SS si trovi sul pin-10. Spesso è un parametro per un costruttore e quindi abbastanza facile.

Saldatore e pinzette!

+0

Gli scudi collegati sono quelli che ho – calccrypto

+0

Con i primi due sembra certamente fattibile. Ma il display sembra utilizzare quasi tutti i pin disponibili su un piccolo Arduino, non è sicuro se quello possa coesistere con molto. Dal momento che mi stai chiedendo in primo luogo sono fiducioso che dovrei raccomandarti di hackerare i tuoi scudi, c'è la possibilità di rovinarli nel processo. Se hai voglia di farlo, ** riscalda il pin-10 sullo scudo finché non si scioglie dal bardo e dalla plastica, quindi collega un jumper dal foro al tuo nuovo perno SS **. – mogul

2

Sembra che l'interfaccia sullo schermo TFT non sia SPI. È un po 'di confusione dato che il chip del driver supporta SPI, ma questa non è la modalità con cui lo shield è configurato per l'uso.

Vedere la sezione 6.2 in ST7781R driver chip datasheet.

Potrebbe essere possibile modificare lo scudo TFT in modo che utilizzi SPI, ma questo è un progetto in sé.

Provate a usare gli schermi Ethernet e SD, potete farli lavorare insieme, dovrebbero senza alcun problema (una volta risolto il problema SS che è solo un caso di tagliare il pin sullo schermo superiore e saldare un filo della breadboard dal pin desiderato sull'arduino, quindi collegare l'altra estremità nel pin 10 della schermatura superiore).

Non sono sicuro che ci sia una versione SPI dello schermo TFT, potresti essere in grado di tornare al negozio in cambio di quello giusto.

1

No, non c'è modo di cambiare i pin nel software. I pin sono determinati da ciascun hardware di schermature. A meno che non modifichiate l'hardware, non c'è modo di occuparsene.

Tuttavia, se si accumulano così tanti scudi si dovrebbe considerare se l'Arduino è ancora la piattaforma corretta. Esistono molti altri piccoli sistemi (ad es.Raspi) che hanno una potenza di cavallo significativamente maggiore e che offrono un bus USB per i dispositivi di connessione.

IMHO l'Arduino è adatto per il controllo dei pin di basso livello ma non per le periferiche di guida. Suggerirei un design in cui un Raspi o simili fa la maggior parte del lavoro, in particolare guidando i display e la scheda SD e Arduino si occupa del PIN IO di basso livello.

1

Arduino funziona bene per la gestione delle periferiche, ma è necessario essere creativi con la modifica dei pin. C'è un database di scudi che elenca i requisiti dei pin di ogni scudo, e tirando un pin e aggiungendo un ponticello (e rimappando nel codice o nella libreria) funzionerà per eventuali problemi di interferenza. Ho fatto alcuni progetti molto complicati e non vedo la necessità di un RPi.

http://www.shieldlist.org