Ciao a tutti, avrei proprio bisogno di un piccolo aiutino... sto impazzendo con la mia arduino mega 2560 ed il modulo SIM800L EVB.
Nessun problema di funzionamento con Arduino Uno ma con MEGA non riesco a dialogare.
Ho usato anche la lib GSMSHIELD dal sito ufficiale modificando i files indicati (abilitando #MEGA ecc...)
Non riesco a capire su quali pin collegare RX e TX sulla MEGA (sulla UNO ho usato con successo i pin 2,3)
Usando gli esempi della lib GSMSHIELD ottengo sempre il solito risultato:
GSM Shield testing.
DB:NO RESP
DB:NO RESP
DB:NO RESP
...
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8); // io uso 7 e 8, ma cosi puoi riassegnare
...
verifica con le specifiche della scheda Mega, laddove dice:
"In addition, some pins have specialized functions:
Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX) and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Used to receive (RX) and transmit (TX) TTL serial data. "
e posta un po di info, che mi interessa. Ho ordinato un modulo con sim800 pure io.
ciao
@MatteoTartara97: essendo il tuo primo post, ti chiederei di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ... Grazie.
cyberhs:
Fornisci il link del modulo e come lo hai alimentato e collegato alla MEGA.
ma al momento non si sono viste risposte e, dato che qui nessuno ha la palla di vetro ...
... senza tutti i dettagli richiesti dubito che qualcuno possa aiutarvi ... :
Questo è il modulo gsm che ho acquistato.
Ho provato con arduino Uno e funziona perfettamente, alimentandolo con i 5v di arduino e collegando tx al pin2(arduino) e rx al pin3(arduino).
Con arduino Mega2560 non riesco a farlo comunicare, lo alimento allo stesso modo con i 5v e faccio gli stessi collegamenti, ma nel monitor seriale non risponde al test.
Senza vedere il codice è difficile da dirsi, ma ... se sulla UNO è collegato ai pin 2 e 3 credo che usi per colloquiare la libreria SoftwareSerial che, come puoi leggere QUI, sulla Mega richiede pin ben specifici per funzionare.
Hai due soluzioni, ma entrambe richiedono la tua capacità a modificare/adattare le librerie che usi ...
La Mega ha più porte seriali, quindi ... NON serve la SoftwareSerial, occorre adattare il codice usato per usare una delle altre seriali VERE della Mega.
Se vuoi lasciare la SoftwareSerial, devi trovare DOVE definisce i pin TX e RX e cambiarli con pin che funzionano sulla Mega, esempio 10 RX, 11 TX.
Vedi tu ... :
Guglielmo
P.S.: Sicuro che la libreria che usi per il modulo, da qualche parte, non abbia già una #define per definire su che board funzionare ?
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
void setup()
{
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
if (gsm.begin(2400)){
Serial.println("\nstatus=READY");
started=true;
}
else Serial.println("\nstatus=IDLE");
if(started){
//Send sms to the number.
if (sms.SendSMS("********", "Arduino SMS"))
Serial.println("\nSMS sent OK");
}
};
void loop()
{
if(started){
//Read if there are messages on SIM card and print them.
if(gsm.readSMS(smsbuffer, 160, n, 20))
{
Serial.println(n);
Serial.println(smsbuffer);
}
delay(1000);
}
};
Prima di tutto, In conformità al regolamento (... che dovresti aver letto), punto 7, edita (in basso a destra del post, bottone More -> Modify) il tuo post e racchiudi il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).
Poi .. cosa significa "Questo è lo sketch per la Mega" ... che hai provato e funziona o cosa ? ? ?
... non credo che basti includere la SoftwareSerial e dichiarare la mySerial per sistemare la cosa :
Come ti ho detto, devi andare a vedere come sono fatte le librerie che usi e le devi modificare. E' li dentro che sono codificati i pin con cui parlano e li dentro devi cercare cosa cambiare ... controllando che non ci siano già le #define per definire la board da usare.
Metti un link a dove hai preso le due librerie ...
Ho aperto la certella con scritto doc ed ho eseguito quello che c' era scritto ho commentato e decommentato quello che mi richiedeva per funzionare con arduino mega, ma non funziona uguale....ho collegato i pin che collegavo con arduino uno. Sbaglio nei collegamenti?
Hai verificato la tua scheda quali pin usa ? Al punto 2 c'è chiaramente scritto:
How to switch between the old shield (that uses 4 and 5 pins for SoftwareSerial and the new (that used 2 and 3 pins)
Hai verificato quanto dice al punto 3 ? In particolare:
SIM900 and SIM908 require about 1 A during the hardest tasks.
You should have an external power source that can provide about
1 A at 8-12 V
If the SIM90X blinks (1 Hz) for some seconds and then turn off,
probably it's a communication's problem. Check the switch/jumpers
for Serial communication.
Arduino Uno has 2 KB of RAM. Library takes about 80% (we are working
to reduce it), if you use more than 20% left, Arduino can restart
or print on serial strange strings.
Check the jumper of communication, power source (battery or external) and charge.
@cimo80: non avendolo tu ancora fatto, ti chiedo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il REGOLAMENTO ... Grazie.