UNO-SIM900 problemas comunicacion SoftwareSerial

Buen día amigos, ya busque por varias partes y no puedo encontrar la falla, es un código sencillo, que solo revisa que haya comunicación entre UNO y la SIM900 por SoftwareSerial (7, 8) ya que usaré aparte la comunicación por USB, paso el código:

#include <SoftwareSerial.h>

SoftwareSerial SIM900(7, 8);

void setup()
{
  SIM900.begin(19200);
  Serial.begin(19200);
  delay(1000);
}

void loop()
{
  if (Serial.available() > 0)
    SIM900.write(Serial.read());
  if (SIM900.available() > 0)
    Serial.write(SIM900.read());
}

Se supone que debería escribir en la consola: “AT”, se realizaría la comunicación por pins 7 y 8 y me respondería un “ok”, pero me responde lo siguiente:

11:23:27:938 -> ("Símbolo raro como una interrogación cerrada pero en espejo") ??

y si le vuelvo a dar solo me va acumulando el mismo símbolo raro después de los que ya puso, ya probe con velocidades de 9600, aclarando que el monitor lo pongo también en sintonía con los baudios programados en código, el SIM900 tiene fuente aparte de estar alimentado por el USB, los jumpers están para usar los pins 7 y 8, comprobé continuidad entre Arduino y Sim900 en los pins 7 y 8, baje una librería llamada GSMSHIELD y en el archivo GSM.cpp modifique lo siguiente:

…
#define _GSM_TXPIN_ 7
#define _GSM_RXPIN_ 8
...

los eh invertido en la programacion de arduino y tambien en el archivo (de 7 a 8 y de 8 a 7), ya no se que mas intentar la verdad, me vendría bien algo de ayuda. Muchas gracias.

Pusiste 7 y 8 pero no leo que ademas hables de GND. Tienes conectado GND de la SIM900 al UNO?

Ohh, por favor discúlpenme, así es, tengo montada la SIM900 en el Arduino UNO...
De hecho si le cargo el ejemplo de SMS que viene en la SHIELD si me manda el SMS, por lo cual si hay comunicación normal entre UNO y Sim900, el problema es la comunicación virtual por pins 7 y 8...

ahhh y cambiaste los jumpers?

Los jumpers están puestos en configuración D8 RX y D7TX... así deben estar...

Y como alimentas la placa? Si no usas una fuente de al menos 2A olvidate que Arduino lo haga.

La alimentación es por cable USB del Arduino y con una fuente de 9V 1A... quizá debería probar con una de 2 A... En ese caso me estafaron =( donde lo compre me dijeron que con esa fuente servía... les comento un poco más el sistema lo implemente para que me mandara alarmas por SMS en una estación de TV por problemas obtenidos de un sistema de LabView, y ya lo tenia funcionando SI JALABA, me mandaba las alarmas aún cuando solo alimentaba al Arduino/SIM900 por puro puerto USB, pero al cambiar la PC de posición y querer volver a correrlo ya no agarro, identifique el problema en la comunicación entre Arduino y SIM900 y por eso estoy realizando pruebas básicas de comunicación... es lo que me parece más extraño, que servia... buscaré una de 2 Amp y haré pruebas. Gracias.

Bueno ya te digo que 1A no es suficiente para ninguna placa SIMX00. Busca la info de tu placa y verás cuales son los requerimientos de alimentación.

Comienza por ahi.
Como verás en cuanto leí tu comentario fui a dos cosas GND ausente (no todas las placas vienen son shields) y luego el tema de la fuente.
Asi que asegura tener misma tensión y 2A y guarda esa fuente que te servirá para otra cosa.
Tu no creas lo que te dicen los vendedores, consulta acá antes. Lo hemos debatido muchas veces.

Probado con una fuente de 9V a 2A y sigue dando la misma falla, lo raro es que cuando cargo el ejemplo de mandar SMS que viene en la librería GSMSHIELD si manda el mensaje de prueba, pero mediante los comandos AT no lo hace, y si quiero ver la respuesta me manda caracteres extraños y no envía el mensaje, encontré algo de ponerle un AT+IPR=19200 para reconfigurar el SIM900 en caso de que el bad se haya puesto en automático, pero ni así logro hacerlo jalar... Alguna otra idea?

GRACIAS.

Ah bueno bueno ya encontraste algo que si funciona. Asi que hay que revisar tus comandos AT.

lo raro es que cuando cargo el ejemplo de mandar SMS que viene en la librería GSMSHIELD si manda el mensaje de prueba, pero mediante los comandos AT no lo hace

Como crees que la librería envia los SMS? Justamente usando comandos AT lo que indica que TUS comandos AT estan mal.

Asi que por favor publica el código como corresponde y seguimos buscando la falla.

Cual es la razón de no usar algo que FUNCIONA como la libreria GSMSHIELD y pelear con los pasos que pretendes dar? Digo porque si algo funciona úsalo y pasa a lo siguiente no te parece?

Por fin di con el clavo, me puse a revisar la librería GSMSHIELD debido a que su ejemplo tenia "includes" para la configuración y me encontré con una línea de código que configuraba el baudrate en 0 (modo automático), como ultima prueba me conecte a la SIM900 aislada del UNO mediante un convertidor USB-SERIAL y directo a la PC con Tera Term como consola y al principio también me mandaba caracteres extraños, le mande el comando "AT+IPR=19200" y me regreso por fin el anhelado "ok" y a partir de ahí me respondió correctamente, necesitaba un código propio ya que con el ejemplo del GSMSHIELD no podía manipular el mensaje, sucede que tengo un sistema en Labview que baja datos de temperatura, voltaje, corriente, etc... de una base de datos en MYSQL y dependiendo de la falla tengo que manipular el texto del mensaje: "La temperatura subió drásticamente a 50°C", ó el voltaje bajo y así, con el ejemplo del envío del mensaje solo podía mandar un texto ya definido sin cambiarlo, al querer mandar una variable que adquiriera el texto me mandaba errores el IDE de arduino (Dígase de paso que no tengo mucha habilidad con la programación y estaba muy enredado ya que en 1 mes tuve que aprenderlo, junto con Labview, programar en AutoIt, con el Androidkit y en MYSQL), como comentario, el SIM900 me esta funcionando alimentándose solo con el USB del Arduino... Saludos y muchas gracias por su paciencia y ayuda..., seguire leyendo el foro, eh aprendido varias cosas que puedo implementar (y)

Pero todo ahora es asi mi amigo Sinaloense, la curva de aprendizaje para dominar programas complejos como Labview, IDE, etc es muy corta porque asi lo exigen las tareas que nos encomiendan.
Qué decir, sufro el mismo problema!.

Cuando llega mi cumpleaños mi Sra siempre me pregunta que quieres que te regale y yo le respondo: “Conocimiento o la habilidad para aprender mas rápido”.

Seguimos en contacto y no bajes los brazos a veces la tarea es muy frustrante pero hay que ser perseverante.