Go Down

Topic: Por favor ayuda con Arduino mega 2560 y SM5100B (Read 2826 times) previous topic - next topic

chuchu

Buenas, soy muy nuevo en electronica, pero me gusta mucho y mas cuando conoci Arduino, lo mio es informatica. El problema es que quiero enviar mensajes SMS, tengo un arduino mega 2560,arduino cellular shield y un sm5100B, pero como lo conecto o le doy power al cellular shield, por que hice el sketch, no hay errores de compilacion lo paso al mega 2560 y no hace nada ni mensajes. Que me falta?
Lo que he hecho:
A=Arduino mega 2560
B=Arduino Cellular Shield (Sm5100B)

conecte 2 cables desde A (Rx19 y Tx18)  a B(Rx y Tx), otro desde A (3.3V) a B (3v3) y otro desde A (Gnd) a B(Gnd), el SIM Card esta instalada y no hace nada, no muestra errores.
Disculpen mi ignorancia, sera que no llega corriente a B.

Aqui el Sketch

#include <NewSoftSerial.h>
/*  Example 26.3 GSM shield sending a SMS text message
http://tronixstuff.com/tutorials > chapter 26 */
NewSoftSerial cell(19,18);  // We need to create a serial port on D2/D3 to talk to the GSM module
char mobilenumber[] = "17863998545";  // Replace xxxxxxxx with the recipient's mobile number.  tambien coloque el numero de telef. asi 7863998545
void setup()
{  //Initialize serial ports for communication.
cell.begin(9600);
delay(35000); // give the GSM module time to initialise, locate network etc.
// this delay time varies. Use example 26.1 sketch to measure the amount
// of time from board reset to SIND: 4, then add five seconds just in case
}
void loop()
{
cell.println("AT+CMGF=1"); // set SMS mode to text
cell.print("AT+CMGS=");  // now send message...
cell.print(34,BYTE); // ASCII equivalent of "
cell.print(mobilenumber);
cell.println(34,BYTE);  // ASCII equivalent of "
delay(500); // give the module some thinking time
cell.print("que tal papa Ah ha ha ha");   // our message to send
cell.println(26,BYTE);  // ASCII equivalent of Ctrl-Z
delay(9000); // the SMS module needs time to return to OK status
do // You don't want to send out multiple SMSs.... or do you?
{
delay(1);
}
while (1>0);
}

Gracias y disculpeme por la falta de conocimiento en electronica, pero me encanta

SrDonGato

imagino que has conectado TX de A a RX de B y de RX de A a TX de B

revisa eso

un saludo

fm

Pon rx a tx y tx a rx. Comprueba la velocidad de la línea serie y a funcionar.
   

chuchu

Gracias por responder,  SrDonGato, esta fue la foto que utilize para el trabajo http://tronixstuff.wordpress.com/2011/01/19/tutorial-arduino-and-gsm-cellular-part-one/ pero lo que veo que yo no tengo, es la parte de color negra en el mega 2560, donde se insertan los cables, yo uso cables sueltos, ademas no tengo antena en el sm5100b.Como deben estar los cables los correctamente instalado??, les agredezco la ayuda y paciencia

SrDonGato

segun veo el codigo debes modificarlo.

con arduino UNO usa la libreria de newsoftserial para hacer un puerto serie con las patillas 2 y 3, en MEGA tenemos hasta 4 puertos serie y no hace falta usar esta libreria ya que por hardware lo tenemos.

para escribir en ese puerto se llama de esta manera Serial1.println("loquesea"), y en el codigo pone
Quote
NewSoftSerial cell(2,3);
cell.print(incoming_char);


debes cambiar estas cosas en el codigo, si no no te funcionará.

si no modificas el codigo usa las patillas 2 y 3 como si fuera UNO y deberia funcionarte.

la antena del model es importante .

Un saludo


SrDonGato

del modem queria decir.

he visto tambien que en la parte que habla de mega tienes 4 ejemplo para hacerlo con mega ya hecho

Example 26.1, 26.2, 26.3 and 26.4.

esos ejempos, bajatelos y conectalo como en la foto y a rular

fm

Ten cuidado si no conectas una antena. Es posible que te cargues la etapa de potencia del modem.

Prueba a conectar el modem a rx, tx como viene en la imagen. Después conecta el cable USB al ordenador y abre el terminal serie. Si tu sketch no usa la línea serie, podrás enviar comandos al modem desde el pc. Es una forma de probar que el modem funciona bien. Empieza enviando: AT, el móvil contestara OK.

Estoy en un móvil, por eso puedo parecer un poco seco. No es fácil escribir mucho con estos chismes...
   

chuchu

Gracias a todos por responder, pero alguien tiene una o unas foto(s) donde se pueda ver toda la coneccion del arduino al moden o como se ensambla todo. Recuerden que los principiantes a veces no entendemos algo, pero con una foto es mas facil entender
Gracias

chuchu

Gracias por constestar, SrDonGato, lo hice de esta forma y tampoco funciona, podrias darme una ayudita, donde esta la parte que no trabaja.

/*
This version - example 26.1a - for Arduino Mega
Run jumpers from GSM shield pin 2 to Mega 19, and shield 3 to Mega 18
Ensure that there is NOT a connection from shield pins RX and TX to anywhere.
*/

#include <string.h>         //Used for string manipulations
char incoming_char=0;      //Will hold the incoming character from the Serial Port.

void setup()
{
  //Initialize serial ports for communication.
  Serial.begin(9600); // for terminal communication
  Serial1.begin(9600); //  for GSM module communication
  Serial.println("Starting SM5100B Communication...");
}

void loop() {
  //If a character comes in from the cellular module...
  if(Serial1.available() >0)
  {
    incoming_char=Serial1.read();    //Get the character from the cellular serial port.
    Serial.print(incoming_char);  //Print the incoming character to the terminal.
  }
  //If a character is coming from the terminal to the Arduino...
  if(Serial.available() >0)
  {
    incoming_char=Serial.read();  //Get the character coming from the terminal
    Serial1.print(incoming_char);    //Send the character to the cellular module.
  }
}


solo me muestra "Starting SM5100B Communication..."

Agradezco de antemano la ayuda, gracias

SrDonGato

normal

lo que hace es comunicar un terminal con otro , para que tu pongas los comandos manualmente y veas si el modem te responde.

abres el viros del COM

te pondra eso que pones

Starting SM5100B Communication...

bien ahora escribes tu
debes poner la opcion abajo de "cariage return" al lado de la velocidad del puerto que debes poner en 9600

escribe AT y le das a intro

el modem debe responderte con un

OK

si pasa eso es que tenes el montaje bien hecho, ya solo te queda programarlo para que haga lo que tu quieras

un saludo



chuchu

Gracias por responder.
Creo que el montaje esta malo, por que hice lo que me indicaste y el comando AT y NO da OK, ahora pregunto y disculpa mi ignorancia, en el Cellular Shield with SM5100B debe estar un led prendido? por que si es asi, no lo esta, yo le doy power (5V) desde el mega 2560 y no hay led prendido en Cellular Shield.Tengo un cable desde el mega 2560 a un puerto USB de mi laptop. Donde estara el tremendo ERROR. Si hay alguna foto o esquema como debe ser el montaje te lo agradezco.
Sera por que no tengo los Stackable Header??, solo hago las conecciones con cables sueltos
Gracias

SrDonGato

yo no tengo ese shield pero pienso que debe coger la alimentacion nada mas conectarlo encima pues los pines de alimentacion de UNO y MEGA son compatibles.
algo debes tener mal si ...

tiene algun interruptor ?


chuchu

gracias, no tengo interruptor, pero pasara con este codigo,siempre me muestra donde dice "Es AAA" y "Es BBB", esta todo conectado, tengo en sim card instalado, donde esta el error, gracias por adelantado

#include <string.h>         //Used for string manipulations
char incoming_char=0;      //Will hold the incoming character from the Serial Port.

void setup()
{
  //Initialize serial ports for communication.
  Serial.begin(9600); // for terminal communication
  Serial1.begin(9600); //  for GSM module communication
  Serial.println("Starting SM5100B Communication...");
}

void loop() {
  //If a character comes in from the cellular module...
  if(Serial1.available() >0)
  {
    incoming_char=Serial1.read();    //Get the character from the cellular serial port.
    Serial.print(incoming_char);  //Print the incoming character to the terminal.
  }
  else
  {
   Serial.println("Es AAA");
  }
  //If a character is coming from the terminal to the Arduino...
  if(Serial.available() >0)
  {
    incoming_char=Serial.read();  //Get the character coming from the terminal
    Serial1.print(incoming_char);    //Send the character to the cellular module.
  }
  else
  {
   Serial.println("Es BBB");
  }
}

andresin

SABES COMO CONECTAR EL ARDUINO UNO CON EL MODULO SM5100B ????

POR FAVOR!!

Go Up