Hola a todos , estuve buscando informacion sobre modulos GSM para programarlo en Basic , eh llegado hasta unos post de unos años anteriores y me eh topado con el codigo de un amigo , lo eh probado pero no me funciona , es decir, al inicio de prenden los 4 leds , se apagan como esta en la programacion y solo veo en el hyperterminal que solo se envia AT , CADA 5 SEGUNDOS , es decir , el modulo GSM no me responde con un OK como deberia ser . Cuento con un modulo GSM SIM900 , estoy buscando informacion para poder presentar mi proyecto de titulacion , quiero un programa donde pueda establecer la comunicacion entre el PIC y el Modulo GSM mediante sus comandos AT , en otras palabras quiero q me responda y transmita del PIC a Movil y viceversa , un programa para encender un led desde el celular y que me mande mensaje cuando este se encienda , luego añadire sensores con salidas analogicas y otras cosas mas que son mas sencillas, quisiera q me orientes por favor , entiendo el lenguaje basic pero estoy en proceso de poder desarrollarme x completo en este lenguaje , espero que alguien pueda orientarme y disculpen las molestias . Adjunto el codigo .
DEFINE OSC 4
'DEFINE OSC 8
DEFINE HSER_TXSTA 20h
DEFINE HSER_RCSTA 90h
DEFINE HSER_BAUD 2400
'DEFINE HSER_BAUD 4800
'DEFINE HSER_BAUD 9600
DEFINE HSER_SPBRG 25
DEFINE HSER_CLROERR 1
i var byte
TRISB=%00000000
PORTB=%00000000
TRISD=%00001111
PORTD=%00000000
FIRSTCHECK:
HIGH PORTB.7
PAUSE 500
HIGH PORTB.6
PAUSE 500
HIGH PORTB.5
PAUSE 500
HIGH PORTB.4
PAUSE 500
PORTB=%00000000
GSM_CHECK:
HSEROUT ["AT",13] 'Enviar AT al módem seguido por un retorno de carro
HSERIN
5000, GSM_CHECK
, [WAIT("OK")]'Comprobar respuesta OK, espere 5 segundos max.HIGH PORTB.7
PAUSE 1000
HSEROUT ["AT+GMM",13] 'Pregunte el nombre del modelo
HSERIN
5000, GSM_CHECK
, [WAIT("T610 series")] 'Comprobar nombre del modeloHIGH PORTB.6
PAUSE 1000
HSEROUT ["AT+IPR=2400",13] 'Establece la velocidad de transferencia
HSERIN
5000, GSM_CHECK
, [WAIT("OK")]'Comprobar respuesta OK, espere 5 segundos maxHIGH PORTB.5
PAUSE 1000
HSEROUT ["AT+CMGF=1",13] ''envía AT al módem seguido por un retorno de carro y salto de línea
HSERIN
5000, GSM_CHECK
, [WAIT("OK")]''Comprobar respuesta OK, espere 5 segundos max.HIGH PORTB.4
PAUSE 1000
PORTB=%00000000
BEGIN:
IF PORTB.5=1 THEN ERROR_CALL
IF PORTB.6=1 THEN ERROR_SMS
HIGH PORTB.7
pause 1000
LOW PORTB.7
IF PORTD.2 = 0 THEN SEND_SMS
IF PORTD.3 = 0 THEN CALL_PHONE
PAUSE 1000
GOTO BEGIN
SEND_SMS:
HIGH PORTB.6
HSEROUT ["at+cmgs=",34,"xxxxxxxxx",34,13]
PAUSE 1000
HSEROUT ["este es un mensaje de prueba",26] 'ENVIAR MENSAJE
HSERIN
10000, BEGIN
, [WAIT("OK")]''Comprobar respuesta OK, espere 5 segundos max.LOW PORTB.6
GOTO BEGIN
CALL_PHONE:
HIGH PORTB.5
HSEROUT ["atd[0xxxxxxxxx];",13]
HSERIN
5000, BEGIN
, [WAIT("OK")]'Comprobar respuesta OK, espere 5 segundos max.PAUSE 2000
LOW PORTB.5
GOTO BEGIN
ERROR_CALL:
FOR i = 1 TO 5
HIGH PORTB.4
PAUSE 500
LOW PORTB.4
PAUSE 500
NEXT i
PORTB=%00000000
GOTO BEGIN
ERROR_SMS:
FOR i = 1 TO 5
HIGH PORTB.4
PAUSE 500
LOW PORTB.4
PAUSE 500
NEXT i
PORTB=%00000000
GOTO BEGIN