TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: esteban_pic 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!!! :-/ :-/ :-/ :-/
-
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);
-
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:
char texto[30];
int Temperatura;
sprintf(texto
,"La temperatura actual es= %u grados", Temperatura
); putsusart(texto)
Saludos!
-
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!!!!! :-/ :-/ :-/ :-/