Problema con Arduino Mega e SIM800L EVB

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

Sono accettati tutti i suggerimenti...

PS. aiuto.... grazie.... vi prego... :confused:

Fornisci il link del modulo e come lo hai alimentato e collegato alla MEGA.

uhm.

utilizzi le librerie?

hai provato con

...
#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

Anche io ho lo stesso identico problemi. Può aiutarmi qualcuno?

@MatteoTartara97: essendo il tuo primo post, ti chiederei di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il REGOLAMENTO ... Grazie.

Guglielmo

Salve anche io ho lo stesso problema, ma non trovo la soluzione.

E' stato chiesto questo ...

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 ... ::slight_smile:

Guglielmo

http://www.ebay.it/itm/SIM-800L-GPRS-GSM-MODULO-MICRO-SIM-CORE-BOARD-QUAD-BAND-PORTA-TTL-PER-ARDUINO-/291631422607?hash=item43e6965c8f:g:BjYAAOSwv-NWYaw-

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.

GSM Shield testing.
DB:NO RESP
DB:NO RESP
DB:NO RESP

Questa è la libreria che ho usato sia con arduino Uno e Mega ---- GSM-GPRS-GPS-Shield-GSMSHIELD----

Quando collego il modulo ad arduino Mega il modulo sim800l si connette correttamente alla rete, ho verificato chimando la sim nel modulo.

Mi chiedo se sbaglio a collegare i pin del modulo con arduino Mega oppure sbaglio la libreria?
Grazie in anticipo.....

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 ...

  1. 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.

  2. 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 ... ::slight_smile:

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 ?

Questo è lo sketch per la Mega:

#include "SIM900.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial (10, 11); //RX , TX
#include "sms.h"
SMSGSM sms;

//Simple sketch to send and receive SMS.

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 ? ? ?

Guglielmo

#include "SIM900.h"
#include <SoftwareSerial.h>
SoftwareSerial mySerial (10, 11); //RX , TX
#include "sms.h"
SMSGSM sms;

//Simple sketch to send and receive SMS.

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);
  }
};

Questo lo uso con arduino Mega, ma il modulo non comunica.

... non credo che basti includere la SoftwareSerial e dichiarare la mySerial per sistemare la cosa ::slight_smile:

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 ...

Guglielmo

Ho usato questa libreria:

Se tra le cartelle della libreria c'e' una che si chiama DOC è facile che li ci siano informazioni utili:

infatti c'e' il paragrafo "How to switch between Arduino Mega and Arduino Uno?" e spiega come fare

nid69ita:
infatti c'e' il paragrafo "How to switch between Arduino Mega and Arduino Uno?" e spiega come fare

... e, come supponevo e dicevo, guarda caso che un #define MEGA :smiling_imp: :smiling_imp: :smiling_imp:

@MatteoTartara97 : Impara SEMPRE a leggere la documentazione o avrai sempre problemi !

Guglielmo

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:

  1. 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

  2. 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.

  3. 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.

  4. Check the jumper of communication, power source (battery or external) and charge.

Guglielmo

Innanzitutto mi presento. Mi chiamo Simone.
Ho lo stesso problema di Rapix58 con uno SIM800L (acquistato qui : http://it.aliexpress.com/item/Quad-Band-Quad-Band-SIM800L-GPRS-Module-Bomb-Slot-Automatic-MicroSIM-Card-FZ1036/1992534325.html ) che non ne vuole sapere di dialogare col mio MEGA 2560.
Premetto che ho già sistemato i vari GSM.h e GSM.cpp
Ho alimentato il modulo SIM800L con uno step down che mi porta la tensione nel range 3.7-4.2 richiesti e che tiene anche fino a 3A.
Ho collegato il SIM800L ai pin 16(TX2) e 17 (RX2) dell'arduino ma nulla.
Sul serial monitor, provando uno degli sketch d'esempio della libreria (che ho scaricato qui GitHub - MarcoMartines/GSM-GPRS-GPS-Shield: GSM/GPRS & GPS Shield Library for modules using SIM900/SIM908 ) mi dice la solita tiritera : DB: NO RESP e ERROR: SIM900 doesn't answer. Check power and serial pins in GSM.cpp

Il moduletto funziona perchè se lo chiamo col mio cellulare, squilla.
Mi sfugge qualcosa? Sembra proprio non vogliano comunicare.
Grazie.

@cimo80: non avendolo tu ancora fatto, ti chiedo cortesemente di presentarti QUI (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.

Guglielmo