Arduino Mega 2560 + Shield Gsm Efcom sim 900 + Shield w5100

Boa tarde, Pessoal

Estou tentando desenvolver um dispositivo que coleta dados de um banco de dados web e posteriormente dispara um SMS para um usuário especifico, até ai tudo bem eu consegui coletar os dados do servidor, mas a questão é a seguinte:

Como vocês podem observar no "Código exemplo abaixo a Shied GSM inicia normal mas quando eu vou aciono a Shield Ethernet w5100 junto, a Shield GSM Efcom sim 900 para de funcionar, eu li a respeito e vi que pode ser um problema de carga de energia, eu estou utilizado junto um adaptador de energia de 9v e 1000ma, as portas que eu estou utilizando são D2 TX com um jumper ligando ela na porta digital 50 e a D3 RX com um jumper ligando ela na porta digital 53, isso tá certo??

Lembrando a Shiel GSM Efcom sim 900 funciona sozinha mesmo encaixada na Shield Ethernet, o mesmo acontece com a Shield Ethernet w5100, mesmo com a Shield GSM Efcom sim 900 ligada nela, mas quando eu aciono as duas para trabalharem juntas no código ai para tudo. :~

Segue as imagens e posteriormente o código.



//--> Includes Placa de gsm |-----------------------------
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
//--> Includes Placa de rede |-----------------------------
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//--> Conexão webservice |--------------------------------
char servidor[] = "meusite.com.br";
int porta = 80;
//--> Conexão rede local |--------------------------------
IPAddress ip(192, 168, 0, 177);
EthernetClient cliente;
String nomeSMSCliente = "Daniel";
String telCliente = "999999999";
String textoSms = "texto sms  3";
long tempoLoop = 5000;
//--> Conexão rede GSM |-----------------------------------
SMSGSM sms;
//--> Variaveis de controle de sms |-----------------------
boolean started=false;
char smsbuffer[160];
char n[20];
void setup() 
{
     Serial.begin(9600);
     Serial.println("Iniciando app...");     
      if (gsm.begin(2400))
      {
          Serial.println("\nstatus=READY");
          started=true;   
      }
      else Serial.println("\nstatus=Inativo");    
    
    
    if(started)
    {
          //************ ||--> Aqui começa o problema <--||**********************
          Serial.println("Iniciando Ethernet...");     
          if (Ethernet.begin(mac) == 0) 
          {
               Serial.println("Falha ao configurar Ethernet usando DHCP");
               Ethernet.begin(mac, ip);
          }
    }
  
    delay(1000);
    Serial.println("conectando...");
}

void loop() 
{
  if(started)
  {    
          String montaMsg = nomeSMSCliente+" "+textoSms;                   
          char numTel[20];
          telCliente.toCharArray(numTel, 20);                 
          montaMsg.toCharArray(smsbuffer, 160);    
                   
         if(sms.SendSMS(numTel, smsbuffer)) 
         {
               Serial.println("Disparo realizado");
         }
         delay(5000);
     }

}

Valew

Abrs,

Daniel C. Santos