Dopo aver "studiato" un pò di forum/articoli sono riuscito ad utilizzare con
successo lo shield gsm utilizzando il serialsoftware (pin 4 e 5).
Premetto che ad ora sto utilizzando Arduino con sopra solamente lo shield Gsm
Il problema nasce quando nello sketch includo sia le librerie del gsm che
quelle dell'SD, dopo averlo uploadato dal monitor seriale vedo comportamenti anomali (e le funzioni del gsm non vanno).
Ci sono conflitti tra le librerie dell'sd e quelle gsm?
normalmente questi problemi si verificano se la SD utilizza come pin di chip select uno che hai già usato (tipico il pin 4).
Dalla documentazione dello shield di Adafruit vedo però che dovrebbe utilizzare il pin 10, tu hai seguito questa guida per il tuo sketch? http://www.ladyada.net/make/logshield/sd.html
Si si, ho seguito questa guida!
Più avanti nello sketch ho messo a 10 il chip select ma comunque è una parte commentata
perchè il problema è proprio nell'include.
prova comunque a definirlo esplicitamente... guardando la libreria sembra che su Arduino Uno il default sia comunque l'uso del pin 10 ma...
L'hai definito di output come indicato?
Inizialmente sullo sketch ho soltanto incluso la libreria,
senza fare operazioni con essa. Ho comunque provato
a definirlo esplicitamente e come output, ma nessun miglioramento.
Noto però una cosa, se uso solo la prima parte di sketch (solo il setup)
sembra tutto ok, la seriale si comporta in modo corretto.
Mentre se uso l'intero codice, mi da problemi.
Nel loop comunque non c'è assolutamente nulla che richiama la libreria
dell'sd, c'è solo codice per il gsm..
i pin spi non dovrebbero venir utilizzati.
Inoltre pare di capire che lo shield SD non è neppure messo su arduino, c'è solo un include
Magari un'occhiata direttamente alle librerie potrebbe rivelare qualcosa.
EDIT
GSM.h
// pins definition
#define GSM_ON 8 // connect GSM Module turn ON to pin 77
#define GSM_RESET 9 // connect GSM Module RESET to pin 35
//#define DTMF_OUTPUT_ENABLE 71 // connect DTMF Output Enable not used
#define DTMF_DATA_VALID 14 // connect DTMF Data Valid to pin 14
#define DTMF_DATA0 72 // connect DTMF Data0 to pin 72
#define DTMF_DATA1 73 // connect DTMF Data1 to pin 73
#define DTMF_DATA2 74 // connect DTMF Data2 to pin 74
#define DTMF_DATA3 75 // connect DTMF Data3 to pin 75
A me viene da pensare che ci sia un problema su qualche chiamata / funzione.
Avevo pensato anche a problemi di memoria, ma effettivamente la sola inclusione della libreria non ne comporta l'allocamento, quindi lo escluderei a priori
Avevo letto dell'incompatibilità tra i pin, infatti sullo shield
gsm non ho saldato i pin 10,11,12,13.
Comunque io ora sto provando soltanto con lo shield
gsm, senza il datalogger ed il problema si presenta
quando includo solamente la libreria dell'Sd.
Pitusso, stavo pensando anche io ci fosse qualche problema
su delle funzioni della libreria, ma ad ora non
saprei cosa cercare al suo interno.
Ho risolto, era un problema di memoria ram.
La librerie gsm e sd che sto utilizzando richiedono più memoria ram di quella disponibile.
Ora ho risolto tutto con un Arduino Mega perchè con la comunicazione con il pc
ho bisogno di utilizzare molto la seriale e sopratutto perchè è un progetto
per la scuola e ormai dobbiamo consegnarlo.
Pitusso poi ha trovato una libreria sd molto molto più leggera,
quindi più avanti riproverò con la uno.
(poi se non sbaglio si può provare ad utilizzare anche la memoria eeprom)