Autor Tema: Enviar mensajes con PIC y SIM900 en CCS C Compiler  (Leído 21485 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Enviar mensajes con PIC y SIM900 en CCS C Compiler
« en: 17 de Junio de 2015, 19:29:57 »
hola, arme un circuito en el protoboard, con una fuente de pc vieja, el mismo con un 16F877a, y le arme un max232, el que conecte un kit sim900, el tema es que arme un código sencillo, para lograr ver si puedo mandar mensajes de texto, pero de momento no me manda mensajes, la tarjeta sim, es de la misma empresa que el receptor, y tiene crédito, el kit sim900 funciona bien, y el max232 también, lo se, porque lo probe con el hyperterminal de win, y logre recepción, el pic también funciona, hice el código en CCS, y acá en el código le erre en algo, pero no se en que, les paso el código para ver si alguien le ve la falla, o sugerencia, también comento que al compilarlo, lo hace bien en el CCS, pero al armar el circuito, prenden los leds en el pic, pero el mensaje no llega al otro celular. Abrazos

En la linea 35, puse el numero de celular que recibe el mensaje:
código de área + número celular = 299 + 4223888
« Última modificación: 17 de Junio de 2015, 19:36:26 por juanjuan19 »

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #1 en: 17 de Junio de 2015, 19:32:20 »
Código: CSS
  1. #include <16F877a.h>
  2. #use delay(clock = 4000000)
  3. #fuses XT,NOWDT,NOLVP
  4. #use fast_IO(B)  
  5. #use RS232(BAUD=9600,BITS=8,PARITY=N,XMIT=PIN_C6,RCV=PIN_C7)
  6.  
  7. void main ()
  8. {
  9.        set_tris_B(0b11111100) ;
  10.        
  11.        output_low(PIN_B0);
  12.        output_low(PIN_B1);
  13.        delay_ms(2000);
  14.        
  15.        output_high(PIN_B1);
  16.        delay_ms(2000);
  17.        
  18.        output_low(PIN_B1);
  19.        delay_ms(2000);
  20.        
  21.        output_high(PIN_B1);
  22.        delay_ms(2000);
  23.        
  24.        output_low(PIN_B1);
  25.        delay_ms(2000);
  26.        while(true)       // aca prendo el otro led para darme cuenta de que
  27.                              //al entrar aqui, ya empieza a mandar mensaje
  28.          {
  29.                 output_high(PIN_B0);
  30.                 delay_ms(5000);
  31.        
  32.                
  33.                  printf("AT+CMGF=1\r\n");     // Seleccionor modo texto
  34.                  delay_ms(500);                
  35.                                                            // Enviar SMS al numero
  36.                  printf("AT+CMGS=\"2994223888\"\r\n");                
  37.                  delay_ms(500);
  38.                                                    // Con el texto
  39.                  printf("alarma.\r\n");                
  40.                  delay_ms(500);
  41.                                                  // Se envia el SMS
  42.                  putchar(0x1a);
  43.                  delay_ms(500);
  44.                  printf("\r\n");
  45.                          
  46.                 output_low(pin_B0);
  47.                 output_low(pin_B1);
  48.                 delay_ms(2000);
  49.            
  50.                 output_high(PIN_B0);
  51.                 output_high(PIN_B1);
  52.                 delay_ms(2000);
  53.                 output_low(PIN_B0);
  54.                 output_low(PIN_B1);
  55.                 delay_ms(2000);
  56.                      
  57.          }
  58. }

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #2 en: 17 de Junio de 2015, 21:04:59 »
estoy mirando este link, http://www.todopic.com.ar/foros/index.php?topic=44341.0     lo que rescato de aca, es volver a probar con el "AT", pero las terminaciones las tengo bien,

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #3 en: 17 de Junio de 2015, 21:35:01 »
como no se que cosa mas hacer, voy a probar con alguna devolucion del sim, como "AT", que se yo, por lo menos con el hyperterminal de win me daba respuesta, pero aqui desde el pic, no obtengo el sms

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #4 en: 17 de Junio de 2015, 21:55:13 »


Puedes hacer un Debug, es lo ideal para averiguar porqué un programa no hace lo que se supone que debe de hacer. También puedes conectar el PIC al PC con un MAX232, y mirar en el hiperterminal que está mandando tu programa.

Yo no me encabezonaría en mirar y remirar el fuente, comprueba con el debug que hace el programa y con el hiperterminal que envía tu PIC, si es que envía algo.

« Última modificación: 17 de Junio de 2015, 21:58:05 por planeta9999 »

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #5 en: 18 de Junio de 2015, 01:19:07 »


Puedes hacer un Debug, es lo ideal para averiguar porqué un programa no hace lo que se supone que debe de hacer. También puedes conectar el PIC al PC con un MAX232, y mirar en el hiperterminal que está mandando tu programa.

Yo no me encabezonaría en mirar y remirar el fuente, comprueba con el debug que hace el programa y con el hiperterminal que envía tu PIC, si es que envía algo.




Hola Planeta, gracias por comentar, me conecte con el hyperterminal de win, y le mande los comandos AT desde el teclado de la pc al hyperterminal de win , y el modulo me llamo (el kit sim900) al celular receptor, con eso comprobe que no lo tengo dañado (al modulo), pero no entiendo que eso del DEBUG que comentas, vi que hay una db9 al lado del db9 MAIN, hay alguna nota por ahi para seguir lo que comentas, gracias por comentar, abrazo

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #6 en: 18 de Junio de 2015, 01:35:51 »


Lo que he dicho es que conectes el PIC al PC con un MAX232, para comprobar que es lo que está mandando tu programa, que seguramente es erroneo.

El Debug te permite, desde MPLAB o MPLABX, ver lo que está haciendo el programa, ver el contenido de variables, poner puntos de ruptura para parar el programa en un punto determinado, etc... Debes de tener un dispositivo adecuado como un Pickit3 o un ICD3.

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #7 en: 18 de Junio de 2015, 01:43:53 »


Lo que he dicho es que conectes el PIC al PC con un MAX232, para comprobar que es lo que está mandando tu programa, que seguramente es erroneo.

El Debug te permite, desde MPLAB o MPLABX, ver lo que está haciendo el programa, ver el contenido de variables, poner puntos de ruptura para parar el programa en un punto determinado, etc... Debes de tener un dispositivo adecuado como un Pickit3 o un ICD3.

ahhhhhh, ahora entiendo, gracias por aclararlo, en 5 horas me voy a trabajar, asi que me voy a dormir, cuando llegue del trabajo voy a hacer lo que propusiste, gracias por responder, abrazo!!! me parece que me quede corto de hard, mi grabador de pic, es de esos medio pelo, ni cerca de un pickit,
« Última modificación: 18 de Junio de 2015, 01:46:35 por juanjuan19 »

Desconectado AG1

  • PIC16
  • ***
  • Mensajes: 105
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #8 en: 18 de Junio de 2015, 07:22:45 »
Hola juanjuan19:

   No he tenido la ocasión de trabajar con ningún módulo Simcom, pero sí con muchos modem GSM de diversas marcas conectados a PIC 16F84A y 16F628.

   Antes de enviar el texto del SMS debas esperar a que el modem te responda el caracter ">" y uno o dos espacios en blanco (el número depende del modem en cuestión). El tiempo en responder el modem no es fijo, ni siquiera en un mismo ejemplar de modem:

                 printf("AT+CMGS=\"2994223888\"\r\n");                 
                 /////////delay_ms(500);


                 //////////////// delay_ms(500);
                 // se espera la recepción de ">"
                 // se espera la recepción de " "
                 // y en algunos modem  se espera la recepción de  otro " "


                                                    // Con el texto
                 printf("alarma.\r\n");                 
                 //  .............

Salu2.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #9 en: 18 de Junio de 2015, 19:00:36 »
efectivamente cuando le envías el numero móvil el modem devuelve un ">", en tu programa hay una espera, seguramente ahí llega ese caracter, en los modem de quectel es imprescindible enviarle el caracter equivalente a CTRL+Z ,  asi que pienso que deberías verificar si estas enviando bien ese 0x1A, con PUTC por ejemplo
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #10 en: 18 de Junio de 2015, 20:01:07 »
efectivamente cuando le envías el numero móvil el modem devuelve un ">", en tu programa hay una espera, seguramente ahí llega ese caracter, en los modem de quectel es imprescindible enviarle el caracter equivalente a CTRL+Z ,  asi que pienso que deberías verificar si estas enviando bien ese 0x1A, con PUTC por ejemplo

Hola hozate y AG1, hace un rato nomas que llegue y me prepare unos mates, verifique, y no esta enviando nada, le puse el terminal virtual de proteus, y no me aparece nada, tampoco simbolos, nada, en la pantallita negra,  asi que voy a verificar en que esta el problema, tambien voy a ver eso del putc con el simbolo 0x1A, y a ver si se despierta esto

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #11 en: 18 de Junio de 2015, 22:10:13 »
voy a buscar, que el pic detecte el "ok" del modem, a empezar de nuevo

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #12 en: 19 de Junio de 2015, 18:43:39 »
hola de nuevo, ahi hice un codigo muy sencillo en CCS, y configure el hyperterminal, arme en el protoboard el circuito, pero hay un problema, si del hyperterminal de win, mando una orden a traves del MAX232, el pic obedece, por ejemplo, apreto el 1 en el teclado numerico de la pc, y el pic prende y apaga un led (por ejemplo), pero puse unos printf en el codigo del pic, con la intencion de que al encender el pic, el pic me escribiera la pantalla del hyperterminal, pero en el hyperterminal los mensajes no aparecen, y cuando simulo en proteus, y agrego el terminal virtual a las patas TX y RX, si aparecen los cartelitos que escribi en el codigo en CCS dentro del pic, alguien, me puede decir que habra pasado, hice esto para checar si veo el codigo AT, y tambien lo que va y viene del pic al pc, y del pc al pic, y luego pasarme al sim900
« Última modificación: 19 de Junio de 2015, 18:50:06 por juanjuan19 »

Desconectado dogflu66

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #13 en: 21 de Junio de 2015, 09:48:14 »
Parece que tienes mal configurado el puerto "C", añade la directiva #use standard_io(c), que lo configura de forma automática y pruebas a ver que tal va.
Saludos desde Granada, España.

Desconectado juanjuan19

  • PIC16
  • ***
  • Mensajes: 120
Re: Enviar mensajes con PIC y SIM900 en CCS C Compiler
« Respuesta #14 en: 24 de Junio de 2015, 19:05:34 »
Parece que tienes mal configurado el puerto "C", añade la directiva #use standard_io(c), que lo configura de forma automática y pruebas a ver que tal va.

Hola dogflu66, recien acabo de ver tu mensaje, no habia entrado al foro, ingrese ahora, un poco desanimado porque no puedo hacer andar esto, voy a probar con tu directiva a ver que sale, te comento que conecte el pic por rs232 al hyperterminal de la pc,  y nada, sin embargo en proteus, el terminal virtual (la pantallita negra) me muestra lo que el pic escribe en el puerto, bueno como te dije antes, voy a probar la directiva comentada, y vuelvo a comentar que paso, gracias por el comentario