buenas un saludo 
resulta que me he propuesto hacer un pequeño proyecto el cual consiste en encender y apagar un LED por medio de una aplicación en android y un pic16f628a utilizando el puerto serial , conectado a un modulo bluetooth hc 06 .
la programación del pic la hice en lenguaje C en el programa CCS , luego hice el circuito en proteus para poder simular el modulo bluetooth utilizo el terminal virtual.
bueno el codigo anda bien no hay errores en la programación lo hice de tal manera que al enviar un carácter =a el led encienda y al enviar un carácter=b el led se apague .
en el proteus funciona de maravilla el problema esta en que al implementarlo físicamente no funciona :-[ e utilizado 3 app diferentes :
bluetooth terminal
bluetooth spp
s2 therminal
ninguna me ha funcionado
al parecer el modulo bluetooth se conecta correctamente pero es como si el pic no reconociera el dato que estoy enviando .
en general:
1) el pic lo alimente a 5v , el modulo tiene un regulador interno a 3v por lo cual no hay problema en alimentarlo a 5v igual
2) no es necesario acondicionar señales a excepto la señal RX del bluetooth que use un divisor de tensión para que llegue únicamente 3v , el pic reconoce 3v como estado alto por ello basta con conectar directamente el TX del bluetooth al RX del pic.
3) el pic trabaja perfectamente ya que puse un led en el pin b5 que se prende y apaga al inicio de la rutina luego espera la señal del bluetooth.
bueno y por ultimo aqui el código que es funcional ya lo probé en proteus desde el virtual terminal.
#include <main.h>
#use delay(clock=4M)
#use rs232(baud=9600,bits=8,parity=N,xmit=pin_b2,rcv=pin_b1)
void main()
{
char dato;
delay_ms(500);
output_high(pin_b5);
delay_ms(500);
output_low(pin_b5);
while(TRUE)
{
if (kbhit())
dato=getc ();
if ( dato=='a')
output_high(pin_b5);
if ( dato=='b')
output_low(pin_b5);
}
}
como se dan cuenta el código es muy sencillo solo quiero partir de este punto desde encender y apagar un led via bluetooth para luego implementar mas instrucciones y hacer algo mas complejo.
no se cual sea la razon por la cual el pic no este recibiendo la señal si el circuito lo conecte tal cual lo hice en proteus.
algo en lo que tengo dudas es en la velocidad de transmisión de datos , se supone que en el modulo viene por defecto en 9600 baudios pero quise salir de la duda por que no estaba muy seguro y tantie con algunas que me permite el oscilador que tengo de 4MHZ.
2400
4800
9600
19200
baudios
de hay en adelante me di cuenta que necesitaba un oscilador de mayor frecuencia. :-\\
asi que no pude salir por completo de la duda.
aun asi la aplicación logra conectarse y enviar el carácter pero el pic parece que no reconociera el dato.
si pudieran ayudarme se los agradecería
hasta pronto. ...
resulta que me he propuesto hacer un pequeño proyecto el cual consiste en encender y apagar un LED por medio de una aplicación en android y un pic16f628a utilizando el puerto serial , conectado a un modulo bluetooth hc 06 .
la programación del pic la hice en lenguaje C en el programa CCS , luego hice el circuito en proteus para poder simular el modulo bluetooth utilizo el terminal virtual.
bueno el codigo anda bien no hay errores en la programación lo hice de tal manera que al enviar un carácter =a el led encienda y al enviar un carácter=b el led se apague .
en el proteus funciona de maravilla el problema esta en que al implementarlo físicamente no funciona :-[ e utilizado 3 app diferentes :
bluetooth terminal
bluetooth spp
s2 therminal
ninguna me ha funcionado
al parecer el modulo bluetooth se conecta correctamente pero es como si el pic no reconociera el dato que estoy enviando .
en general:
1) el pic lo alimente a 5v , el modulo tiene un regulador interno a 3v por lo cual no hay problema en alimentarlo a 5v igual
2) no es necesario acondicionar señales a excepto la señal RX del bluetooth que use un divisor de tensión para que llegue únicamente 3v , el pic reconoce 3v como estado alto por ello basta con conectar directamente el TX del bluetooth al RX del pic.
3) el pic trabaja perfectamente ya que puse un led en el pin b5 que se prende y apaga al inicio de la rutina luego espera la señal del bluetooth.
bueno y por ultimo aqui el código que es funcional ya lo probé en proteus desde el virtual terminal.
#include <main.h>
#use delay(clock=4M)
#use rs232(baud=9600,bits=8,parity=N,xmit=pin_b2,rcv=pin_b1)
void main()
{
char dato;
delay_ms(500);
output_high(pin_b5);
delay_ms(500);
output_low(pin_b5);
while(TRUE)
{
if (kbhit())
dato=getc ();
if ( dato=='a')
output_high(pin_b5);
if ( dato=='b')
output_low(pin_b5);
}
}
como se dan cuenta el código es muy sencillo solo quiero partir de este punto desde encender y apagar un led via bluetooth para luego implementar mas instrucciones y hacer algo mas complejo.
no se cual sea la razon por la cual el pic no este recibiendo la señal si el circuito lo conecte tal cual lo hice en proteus.
algo en lo que tengo dudas es en la velocidad de transmisión de datos , se supone que en el modulo viene por defecto en 9600 baudios pero quise salir de la duda por que no estaba muy seguro y tantie con algunas que me permite el oscilador que tengo de 4MHZ.
2400
4800
9600
19200
baudios
de hay en adelante me di cuenta que necesitaba un oscilador de mayor frecuencia. :-\\
asi que no pude salir por completo de la duda.
aun asi la aplicación logra conectarse y enviar el carácter pero el pic parece que no reconociera el dato.
si pudieran ayudarme se los agradecería
hasta pronto. ...
Última edición: