Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
Por lo menos las "lecturas" las realizamos de manera correcta, no se y espero que el termino plural "están mal" no se refiera a algo de lo que he comentado ya que si lees bien lo que tengo escrito en la "cita" podrás darte cuenta que es lo mismo que comentas al final.De antemano este diagrama no me convence, tu puedes conectar directo las terminales sin problema al PIC y al tel sin este armatoste.
Si del voltaje dependiera te comento que el MAX232 saca 5V a la salida en el TX y ya habría ocasionado algún problema en el Cel.
Prueba directo a ver que sucede, debe trabajar correctamente.
Igual sería bueno implementar una rutina "getc()" para que leas el "OK" del Cel y saber que estás transmitiendo correctamente.
Saludos.
Como comentario adicional observo que para el delay y el usart tienes puesto clock=400000, pero en el comentario mencionas a uno de 20Mhz, esta bien?
Moyano Jonathan dijo:Funcionooooooooooooooooooooooo ! El celular ya me acepta los comandos AT y los probé por hyperterminal. Ahora mi próximo paso es poder llamar y mandar SMS desde el teléfono celular usando los comandos AT.
hola moyano fijate q despues de buscar por todos lados un t237 por fin lo consegui y estoy probando conectarlo con el hyperterminal pero fiajte q no logro la comunicacion disculpa la molestia podes subir el diagrama de la pc al cel yo estoy utilizando la configuracion de un max232 donde los capacitores son 10 micros, aparte de eso no se si me podes decir con que parametros configuras el hyperterminal ya que a mi me deja escribir solo cuando pongo el control de flujo en xon xoff o en ninguno pero no me retorna el ok el cel me deja escribir pero cuando le doy enter me escribe en la misma linea entonces no estoy seguro si es una mala conexion del max232 o del hyperteminal porque ya e probado cambiarle todos los parametros al hyperterminal.
gracias!
De antemano este diagrama no me convence, tu puedes conectar directo las terminales sin problema al PIC y al tel sin este armatoste.
Si del voltaje dependiera te comento que el MAX232 saca 5V a la salida en el TX y ya habría ocasionado algún problema en el Cel.
Prueba directo a ver que sucede, debe trabajar correctamente.
Igual sería bueno implementar una rutina "getc()" para que leas el "OK" del Cel y saber que estás transmitiendo correctamente.
Saludos.
Como comentario adicional observo que para el delay y el usart tienes puesto clock=400000, pero en el comentario mencionas a uno de 20Mhz, esta bien?
hola moyano muy bien te felicito estas avanzando muy rapido primero CPMS: 0,70,19,20,0,70 es la direccion de la memoria a la que accedes si te fijas al poner en vez de me sm veras que esta cambia pero bueno esto no nos sirve
ahora la trama al momento de leer el mensaje es toda la que observas ademas de otros caracteres basura que se cuelgan en la comunicacion serial y scomo vez te envia fecha hora numero de quien lo manda etc, y al final esta el texto que necesitas y eso de rele1 on es un buen ejemplo de comando crea tus comandos a tus necesidades pero te recomiendo que sean palabras juntas por ejemplo rele1on por que esos espacios en la decodificacion del comando te va a provocar eventos es mucho mejor que siempre en los comandos tengas dos partes una de acceso y otra de orden ejm
en mi tesis mi codigo de acceso es KM y un comando es IR1 asi que el comando completo es KMIR1 esta forma de crear un comando te ayudara para desechar los mensajes que sean incorrectos y para tener un mejor control del mismo.
ahora antes de empezar a leer un mensaje debemos seguir los pasos el siguiente es que consigas una buena comunicacion serial con el pic antes de entrar a comunicar con el cell crea un programa en el cual tengas una comunicacion entre el hiper y el cell y que te prenda un led cuando envies un letra por el hiper verifica el buen funcionamiento de la comunicacion serial para que te familiarices y asi poder decartar errores futuros.
entonces arma ese programa y verifica la comjunicacio: te doy unos tips.
siempre en comunicacin seerial utiliza un osc de 20mhz si usas mas alto o mas bajo que este te puede generar muchos problemas utiliza buenos cables en la conexion de rx y tx del pic pues tambien te pueden producir errores, continua y seguimos en contacto
con respecto a lo de comparar dos tramas esta bien pero en esta aplicacion no sirve no podemos comparar dos tramas ya que el cell envia muchos caracteres basura que nos se pueden reconocer pero que igual ocupan espacio en la trama y no se puede comparar.
a lo te refieres esta correcto siempre y cuando sepas que la trama de datos enviados no lleban caracteres basura esos siempre se cuelgan en la trama por estas razones es las que digo que los mensajes posteados estan mal no por ofender a nadie sino por aclarar las cosas saludos
// Programa de control de dispositivos mediante SMS Prueba N°1. //
// Programador: Moyano Jonathan. //
// Fecha: 29/07/09 //
//////////////////////////////////////////////////////////////////
// Encabezado del programa:
#include <18F2550.h> // Definición de registros internos del PIC18F2550.
#fuses NOMCLR // Pin MCLR como entrada digital RE3.
#fuses XT // Cristal XT.
#fuses NOWDT // No activamos el WatchDog.
#fuses NOPROTECT // No activamos la protección contra lecturas.
#fuses NOLVP // No activamos el modo de programación a bajo voltaje.
#fuses NODEBUG // No incluimos código para debug.
#fuses USBDIV // 96Mhz del PLL/2 = 48Mhz para USB en Full speed.
#fuses PLL1 // Factor de división de la entrada del PLL = 1 para 4mhz.
#fuses CPUDIV1 // El PLL postscaler decide la división en 2 de la frecuencia de salida del PLL de 96MHZ.
#fuses NOVREGEN // Desactivamos el regulador de 3.3v del puerto USB.
#fuses NOPBADEN // Puerto B como I/O digital.
#use delay(clock=4000000) // Frecuencia de trabajo = 4Mhz.
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) // Configura la USART.
void main()
{
// Configuraciones varias:
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_low_volt_detect(FALSE);
while(true){
printf("AT\r\n"); // Le llama la atención al teléfono.
delay_ms(2000); //espera 5 segundos
printf("AT+CMGF=1\r\n"); //configura modo texto
delay_ms(1000);
printf("AT+CMGS=\"02616943559\"\r\n"); //0123456789 es el nro del destinatario.
delay_ms(1000); //del celular al que se envia el sms
printf("Esto es una prueba");
putc(26); //ascii(26)=(ctrl+z) envia el mensaje
printf("\r\n");
delay_ms(1000);
}
}
no se porque utilizas reloj de 4 mhz no es recomendable utilizar un reloj de 4 mhz en comunicacion serial utiliza uno de 20mhz con el de cuatro no te sirve, otra cosa trata primero de enviar un mensaje con el pic es mas facil hasta que logres una buena comunicacion y sepas muy bien de como esta funcionando todo trata primero eso despues lo de la trama de comunicacion yo le doy otro trato y es mas facil y tienes un mejor control y te da mejores resultados que solo compararar dos tramas ya lo dije en otro mensaje eso de comparar esta bien pero para esta aplicacion no funciona muy bien yo ya la he probado y es mejor utilizar otra forma de manejo de la trama lo unico que te puedo adelantar es que el manejo se lo hace de caracter en caracter.
sigue avanzando no te estanques concentrate en la buena comunicacion serial y tratar de enviar un mensaje primero.
suerte
Hola Moyano, una vía rápida para que te saques de dudas si es el PIC, es conectarlo al puerto COM tal y como lo conectarias al Cel. De esta forma verías los caracteres que envíe el PIC y te quitas de la duda que es lo que está fallando. Lo único es considerar que la salida TX del PIC debe ir conectada al RX del Cel y el RX del PIC al TX del Cel. Y para la conexión del PIC al COM se conecta como si fuera el Cel idéntico.
Que valiente de intentarlo con la familia 18, a mi siempre me han dado mucha lata en las configuraciones. Ni queriendo a la primera me sale el programa.
Saludos