Comunicación entre módulo bluetooth y un microcontrolador PIC

Hola Bertub,
Si puedes conectar todo a 3.3v y listo, ya te evitas los conversores de niveles logicos...En cuanto a lo otro si es compatible solo fijate usar la misma configuracion en la USART tanto del PIC como la del HC06.

Saludos.
 
Interesado en el tema sigo este hilo unos meses despues de comenzado =) tengo una pregunta por no estar muy seguro. estoy basando mi proyecto (hola mundo con un celular) con un HC-06 (3.3v) y un pic 16F628A (2.0 a 5.5v),
1 - ¿puedo alimentar todo con 3.3v y listo?
2 - este pic tiene compatibilidad TX, RX USART con el modulo bluetooth?

gracias

Yo usé la función TX para el módulo bluetooth y el 16F628A y funcionó sin problemas. La función RX no la probé pero supongo que también funcionaría. Tienes que configurar el modo de transmisión y la velocidad tanto en el pic como en el móvil, que coincidan con la que tiene por defecto el módulo bluetooth, o bien cambiarla en el módulo con los comandos AT, pero no vale la pena a menos que quieras más velocidad de puerto. La que viene por defecto te servirá de sobra para pasar en tiempo real datos de unas decenas de bytes al pic y viceversa.
 
Hola de nuevo consultando a los expertos.

mediante divisor de tension consigo los 3.3v a partir de un regulador de voltaje de 5v pero el pic 16f628a no me funciona. la hoja de datos me dice q trabaja desde 2 a 5.5v pero el pic no trabaja sino hasta los 4.2v saben de alguna tecnica o seteo del mismo? gracias
 
pues claro.. revisa la tabla 1.1 del datasheet pag-5 las variantes del 628 (tengo entendido eso,la verdad nunca he puesto mi pic a menos de 5v...)

a que te refieres con tecnica de seteo?
 
no encuentro seteo alguno en el data, pero acabo de conseguirlo, al programar destildo la funcion BODEN no entiendo la diferencia, pero de esa manera funciona, lo he probado con varios pic y con todos funciona. asi q alli esta el meollo gracias, sigo en camino
 
Si no me equivoco el fuse Boden (conocido como BOR en la hoja de datos) hace que el PIC entre en reset si la alimentacion baja, con lo cual obtienes el resultado de que se apaga a los 4.2v, pero si lo desactivas el pic es libre de operar libremente de 2 hasta 5.5. Este fuse se usa en aplicaciones donde un voltaje bajo puede causar estragos.

PD: en algunos pics puedes seleccionar el voltaje al que se reinicia el pic...por ejemplo el 18F2550.
 
Aqui de nuevo un poco mas avanzado y un poco mas trancado =(

he seguido algunos ejemplos basicos de coneccion bluetooth, HC-06 + pic 16F628A + celular programado en app inventor android. Por ahora un hola mundo como dicen, encender un led desde el celular, les comparto el codigo PBP

'
Código:
*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                     
TRISA = %00000000
TRISB = %00000010
'*******************************************************************************
' INICIALIZANDO USART
DEFINE HSER_BAUD 9600
DEFINE HSER_RCSTA 90h
DEFINE HSER_TCSTA 20h
DEFINE HSER_SPBRG 25

led var byte
'*******************************************************************************
PORTA = %00000000
PORTB = %00000000
'******************************************************************************
pause 200

inicio:

Hserin 50,inicio,[led]

if led = 100 then
PORTB.0 = 1
pause 500
goto inicio
endif
if led = 200 then
PORTB.0 = 0
pause 500
goto inicio
endif

END

usando MicroCodeStudio

usando una app android que funciona, se conecta al bluetooth sin problema pero no reacciona el pic, la app envia 100 y 200 en teoria porque en la etiqueta dice 100A y 200A no se de que es la A, por otro lado, en otro post comentaron un error similar (en pbp) y lo solucionaron con comillas pero el compilador no me permite estos son los cambios de

if led = 100 then a if led = "100" then

tal vez no estoy definiendo bien la variable o hay otra nomenclatura en vez de las comillas
intento mandar con un consola de comandos conectada al bluetooth el numero 100 sin la A y tampoco reacciona.

La app funciona, es de un ejemplo igual al mio, solo que no puedo usar el mismo hex (uso otro pic) o el mismo codigo fuente para modificarlo, porque esta en AMICUS

Alguna recomendacion?


gracias
 
Última edición:
nunca he usado microcodestudio..

supongo que "100" es el 100(propiamente dicho) en ascii(1 seguido del 0 y otro 0 todo en ascii)

algun conflicto con comandos de "retorno de carro" o "nueva Linea"?
pero que programa estas utilizando en android?
yo usualmente utilizaba una consola(algo asi como el hyperterminal) el SENABTerm en android
como también desde el hyperterminal o algun otro desde PC(como host) iniciando la comunicación al HC-06

si tienes un PICKIT2 o 3 puedes testear las señales en el Tx y el Rx con el UART Tool..para asegurarte que es lo que esta llegando y enviando tu HC-06.
 
Haber intenta esto a ver que pasa:

Código:
*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                     
TRISA = %00000000
TRISB = %00000010
'*******************************************************************************
' INICIALIZANDO USART
DEFINE HSER_BAUD 9600
DEFINE HSER_RCSTA 90h
DEFINE HSER_TCSTA 20h
DEFINE HSER_SPBRG 25
led var byte
'*******************************************************************************
PORTA = %00000000
PORTB = %00000000
'******************************************************************************
pause 200
inicio:
Hserin 80,continuar,[led]
continuar:
if led = 100 then
PORTB.0 = 1
pause 500
endif
if led = 200 then
PORTB.0 = 0
pause 500
endif
goto inicio
END

A lo que entiendo Hserin esta estructurado asi: Hserin tiempo en ms antes de saltar a, etiqueta del salto, (variable donde se guarda lo recibido)

Y otra cosa en lugar de usar valores, usa las letras cuando envies los datos ya que aveces se envian en ascii y no en decimal lo que provoca que no responda el pic. Si no me equivoco el 100 equivale a una "d" y el 200 a un "È" tambien puedes poner letras en los if, por ejemplo: if led = "A" then....

Saludos, espero haberte ayudado
 
Última edición:
Entendido Justiciero, ahora bien digamos que desde el celular o desde el hiperterminal (pc) envio la letra A y B para encender y apagar el led respectivamente. La variable LED en el codigo debe ser byte? y en el IF como pregunto la igualdad como ascii o decimal o alfanumerico? es decir

if led = 65 then....

if led = "A" then....

if led = DEC 65 then....

gracias
 
Se puede hacer de cualquiera de los dos primeras formas, aunque la segunda es mas clara a la hora de revisar el codigo, en especial despues de un tiempo. ;) Asi es, la variable byte alcanza y sobra pra el proposito.

Otra cosa que puedes probar es buscar si en PBP existe el comando toggle (invertir estado) y de este modo solo ocupas recibir una letra para ambas acciones, pero no se si se pueda en PBP.

Saludos,
 
tengo una pregunta referente al programa de en Visual Studio..

para yo conectar la pc con el micro-controlador por medio de bluetooth..

en el programa de Visual Studio, tendría que colocar como si fuera "puerto serial"?
(me refiero aque el bluetooth es igual USART, y solo se mostraría como un puerto virtual que para mi lo usaría como si fuera un puerto serie)

o en este caso seria no se, algún otro comando que especifique el bluetooth?
 
Villena, se reconoce como cualquier otro puerto de comunicaciones pero, antes de usarlo necesitas emparejar el dispositivo y en algunos casos activar el servicio según sea necesario por el software controlador del Bluetooth de la computadora, el Visual Studio solo necesita la configuración básica de todo puerto de serie, lo demás viene por parte del controlador ya que este crea el puerto virtual.
 
Hola, dice que el modulo bluetootth crea un puerto serie virtual
Es igual a un conversor USB- serie??
entonces para conectar el modulo al usb de la laptop
tomo un cable usb y los d- y d+ los conecto con rx y tx y la alimentacion del usb directo al modulo
o como se conecta?
 
Hola, dice que el modulo bluetootth crea un puerto serie virtual
Es igual a un conversor USB- serie??
entonces para conectar el modulo al usb de la laptop
tomo un cable usb y los d- y d+ los conecto con rx y tx y la alimentacion del usb directo al modulo
o como se conecta?

Que cosa???? :eek:

Eso no se puede, quemarias el usb de tu pc si usaras esa conexion. La cosa es asi: conectas tu micro al rx y tx del modulo bluetooth y el modulo se conecta a tu de forma inalambrica a tu computadora o smartphone(obviamente por bluetoth) creando el puerto virtual. Investiga sobre el protocolo SPP (serial port profile) en cuanto a bluetooth se refiere.

Saludos,
 
Yo tengo una pregunta relacionada al tema, trabajo con un bluetooth y puerto serial al mismo tiempo, los dos manejados por la misma usart de un microcontrolador, ya tengo un poco avanzado mi proyecto como para cambiar de microcontrolar, entonces a mi solucion pensaba utilizar un multiplexor 2 a 1, para seleccionar el bluetooth o el r232(la seleccion la haria con el microcontrolador), mi pregunta es Cual seria el integrado (multiplexor) adecuado que tenga la capacidad para dejar pasar la carga de los datos de la usart? , Que solucion me recomiendarian en cuanto a hadware para tener conectados los dos al mismo tiempo si necesidad de desconectarlos ? o Se puede tener los dos conectados al mismo tiempo sin que se interfiran en la comunicacion (puenteando los dos a tx,rx)?.

Saludos. Gracias por su atencion.
 
En el Arduino se tienen conectados en el mismo puerto pero usando una resistencia de 1k me parece, yo no recomiendo esto, para ello se necesita que el sistema sepa cuando se esta comunicando con él y cuando no (así se emplea en el RS-485), puedes como dices usar un conmutador como el 4066 o emplear compuertas AND y OR para controlar la comunicación.
 

:LOL: ,ok gracias Tengo el modulo bluetooth hc05 este datasheet

http://www.exp-tech.de/service/datasheet/HC-Serial-Bluetooth-Products.pdf

y no tiene pines soldados le soldare unos pero como son muy pequeños solo le pondre los de rx , tx, 3.3v, y gnd mi duda es si solo con esos basta esque soy muy malo para el ingles
ademas como la alimentacion es de 3.3v no se si los rx y tx del modulo son compatibles compatibles con las salidas del micro
porque pensaba tomar el arduino o talvez un pic y conectar los rxtx asi directo al rxtx del modulo y emparejarlo con mi laptop para iniciar la comunicacion y con una interfaz mandar caracteres para control de un vehiculo
 
Atrás
Arriba