Autor Tema: problemas en string c18 para modulo sim900d, comandos AT  (Leído 1670 veces)

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

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
problemas en string c18 para modulo sim900d, comandos AT
« en: 16 de Diciembre de 2012, 01:10:07 »
Hola a todos!!! tengo el siguiente problema, tengo un pic 18f14k50 conectado a un modulo gsm sim900d, via comandos AT logro que el modulo gsm llame y que envie mensajes de texto "sms", mi problema es que tengo conectado al ADC un sensor de temperatura, y yo quiero que envie el siguiente mensaje de texto, por ejemplo:

             La temperatura actual es= 32 grados


yo logro enviar via sms la frace  "La temperatura actual es=" pero no logro adosarle el valor tomado por el ADC.

intente por ejemplo hacerlo via una cadena de caracteres:

char texto[20];


texto[1]='l';

texto[2]='a';

texto[3]=' ';

texto[4]='t';

.....

texto[15]=valor_adc[1];
texto[16]=valor_adc[2];
texto[17]=valor_adc[3];

luego mando el string para el sms


putrsusart((const far rom char *) "AT+CMGS=\"NUM TELEFONO\"\r");


putrsusart((const far rom char *) texto)  o   putrsusart((const far rom char *) texto)


luego el caracter final.


pero no logro recibir el sms, a lo sumo envía una letra "f"

espero que alguien pueda ayudarme, ya me gaste bastante crédito probando!!!! jaja!!!

                                                       saludos esteban!!!   :-/   :-/    :-/    :-/


Desconectado willynovi

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 546
Re: problemas en string c18 para modulo sim900d, comandos AT
« Respuesta #1 en: 16 de Diciembre de 2012, 09:08:36 »
Respondo un poco desde lo general y para darte una idea para que pruebes, nunca he trabajado con cadenas de caracteres ni similar.

En la variable valor_adc que tienes guardado?
Si trabajas con el 18f14k50 no son solo 2 bytes?
Quizas en el momento de asignar estos valores a texto tienes que convertirlos antes.

Es decir,
si tienes el valor 32 en el ADC, supongo que es de 10 bits, entonces
valor_adc[1] = 0
valor_adc[2] = 32

NOTA: pongo 32 por decir algo, porque no conozco la aplicación, no haciendo referencia al valor que debes mostrar ni el valor de temperatura.

lo que debes hacer es convertir a string ese valor
itoa(valor_adc[2], String)

luego a continuacion de tu texto "La temperatura actual es=" usas
putsUSART(String);
Intento enseñarte a pescar, si solo quieres pescados, espera que un pescador te regale los suyos.

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: problemas en string c18 para modulo sim900d, comandos AT
« Respuesta #2 en: 16 de Diciembre de 2012, 14:13:36 »
Porque pones (const far rom char *) texto si texto en un arreglo en RAM? Solo usa putsusart(texto) y debería de funcionar.

Ahora si quieres hacer que se envie: La temperatura actual es= 32 grados, la forma más simple de hacerlo es:


Código: C
  1. char texto[30];
  2. int Temperatura;
  3. sprintf(texto,"La temperatura actual es= %u grados", Temperatura);
  4. putsusart(texto)


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado esteban_pic

  • PIC10
  • *
  • Mensajes: 21
Re: problemas en string c18 para modulo sim900d, comandos AT
« Respuesta #3 en: 17 de Diciembre de 2012, 16:24:34 »
Gracias a ambos!!!! logre realizar el envio de datos, antes de ver sus respuestas, pero sus contestaciones me hicieron pensar y medieron nuevas ideas.

                                                                              gracias!!!!!    :-/  :-/  :-/  :-/


 

anything