En esta entrada de blog voy a mostrar paso a paso cómo hacer
la comunicación entre dos módulos bluetooth HC-05 y Arduino, para ello he utilizado
dos placas Arduino Uno R3, dos Shield XBee PRO, dos módulos Bluetooth XBee
HC-05 y un adpatador Serie Rs TO TTL.
Lo primero que hay que hacer es configurar los módulos
HC-05, uno tenemos que programarlo como Master y el otro como Slave, hay varias
opciones para acceder a la programación de estos módulos, yo he elegido el
adaptador Serie USB TO RS232 TTL.
Un inconveniente del módulo XBee es la distancia entre sus
pines de 2mm,
la separación estándar de los circuitos integrados es de 2,54mm, esto hace que sea incomodo
conectar el módulo XBee por cableado, por suerte, el propio Shield XBee PRO además
de poder montar el módulo XBee tiene orificios a 2,54mm seriados a los de 2mm,
yo por comodidad he soldado en estos orificios unos pines para poder hacer todas
las pruebas cómodamente.
(separación estándar entre
dos pines consecutivos de un circuito integrado es de 0.1 pulgada (2,54 mm)).
SI QUIERES VER EL VÍDEO HAZ CLIC AQUÍ.
Imagen del shield XBee PRO original. Imagen del shield XBee PRO con
los pines.
Conexión del módulo en la Protoboard mediante cableado.
Para programar el módulo necesitamos hacer una pequeña
instalación muy simple en una Protoboard, empezamos por colocar un pulsador en
la Protoboard, este pulsador servirá para poner posteriormente en estado alto
en pin 20 del XBee, de un punto de 3,3v
de la Protoboard alimentamos un lado del pulsador, en el otro lado del
pulsador conectamos una resistencia de 1kΩ conectada al 0v de la Protoboard,
intercalado entre la resistencia de 1kΩ y el pin del pulsador conectamos un
cable que vaya hasta el pin 20 del XBee
(KEY), la resistencia sirve para asegurar el 0v -3,3v del pin 20. La
alimentación la suministra el propio adaptador USB TO RS232 TTL por lo que
conectaremos los 3,3v y el 0v del USB a la Protoboard, desde la Protoboard
alimentamos el módulo XBee y conectamos los pines TX-RX del USB TO RS232 TTL de
manera cruzada con los pines TX-RX del módulo XBee, la instalación debe quedar
como en la siguiente imagen.
Al conectar los pines TX y RX del módulo hay que recordar que se debe hacer de forma cruzada
con los pines TX y RX del adaptador USB TO RS232 TTL.
CONEXIÓN ENTRE LA PROTOBOARD, EL MODULO XBee Y EL ADAPTADOR USB.
NOTA:
Para facilitar la conexión del módulo XBee, lo he montado en el Shield XBee PRO
y conectado mediante los pines soldados.
Necesitmos
un programa que haga de mediador entre el dispositivo y el PC, podemos
encontrar varios como HyperTerminal, Terminal, SScom32, PuTTy, X-CTU, yo he elegido Terminal v1.9b.
Si eliges Terminal v1.9b se debe
configurar como se muestra en la imagen siguiente.
Nota: En el programa Terminal v1.9b hay la opción para saber que puerto tiene
asignado el adaptador USB mediante el botón COMs. Si no te reconoce el adaptador Serie USB TO RS232 TTL hay que
instalar el driver PL2303_Prolific_DriverInstaller
Una vez cableado el módulo HC-05 y el adaptador USB con la
Protoboard y habiendo configurado Terminal v1.9b como en la imagen anterior, solo queda
conectar el adaptador USB al PC
manteniendo pulsado el pulsador de la Protoboard, cuando el módulo HC-05 está
en modo AT cambia el parpadeo su led, de un parpadeo rápido pasa a un parpadeo
secuencial, mas o menos 2 seg encendido 2 seg apagado, si escribimos el comando
AT en el box inferior del programa, el módulo nos responde con OK, vamos a
seguir introduciendo una serie de comandos para continuar con la programación
de los dos módulos.
Voy hacer que la comunicación solo se establezca entre los
dos módulos, para ello primero tengo que saber la dirección que tiene cada uno, para después asignarles la dirección con la que se deben conectar, empecemos por saber la dirección del Master.
PROCEDIMIENTO.
Montamos el módulo que hará de Master en el Shield
ya anteriormente cableada a la Protoboard y al adaptador USB, conectamos en
adaptador USB al PC mientras mantenemos pulsado el pulsador de la P/rotoboard,
si cambia el parpadeo del led a un modo secuencial ya estamos en el modo
AT, ahora escribimos AT en el box y hacemos click en botón send del programa
Terminal v1.9b , si nos contesta OK estamos en modo AT, ahora tenemos que introducir el comando AT+ADDR?
, nos tiene que mostrar una serie de números con unos valores diferentes a
estos pero con un formato así: 3014:11:50253
nos apuntamos la numeración que nos muestre y retiramos el módulo Master para
introducir el otro módulo que hará de Slave, hay que repetir los mismos pasos
de antes para entrar en los comandos AT, cuando tengamos el módulo preparado
introducimos los siguientes comandos:
MÓDULO SLAVE.
COMANDO REPUESTA
AT OK (Pregunta
si estamos en comandos)
AT+VERSION? 2.0.201000601 (versión
del módulo, solo por curiosidad)
AT+ADDR? 3014:11:30095 (número de MAC del propio módulo)
AT+ROLE? ROLE 0 (Role
0 = el modulo hará Slave)
AT+PSWD? 4321 (Password de acceso, que cada
uno ponga el
Número que quiera)
AT+UART? 9600 (velocidad de comunicación)
AT+CMODE? CMOD 1 (conecta el modulo a una dirección)
AT+BIND? 3014:11:50253 (dirección
del módulo Master con la que se
debe conectar).
Ahora hay que retirar el módulo Slave y volver a montar el
módulo master, siguiendo los pasos para entrar en el modo de comandos AT.
La configuración que se debe programar en el módulo Master
es prácticamente la misma que en el módulo Slave cambiando algún parámetro.
MÓDULO MASTER.
COMANDO REPUESTA
AT OK (Pregunta
si estamos en comandos)
AT+VERSION? 2.0.201000601 (versión
del módulo, solo por curiosidad)
AT+ADDR? 3014:11: 50253 (número de MAC del propio módulo)
AT+ROLE? ROLE
1 (Role = 1,
el modulo hará de Master)
AT+PSWD? 4321 (Password
de acceso, que cada uno ponga el
Número que quiera)
AT+UART? 9600 (velocidad
de comunicación)
AT+CMODE? CMOD 1 (conecta
el modulo a una dirección)
AT+BIND? 3014:11:
30095 (dirección del módulo
Slave con la que se
debe
conectar).
Si montamos los módulos en los Shield XBee y estos en las
placas Arduino, cuando alimentemos la placas Arduino debemos notar como se
comunican automáticamente entre ellos por el parpadeo de sus leds, un led
siempre estará encendido indicando que la comunicación se ha logrado, el otro
led parpadea casi al mismo tiempo en los dos módulos, para comprobar el
funcionamiento he hecho un pequeño programa con Arduino, este programa lo que
hace es que el master al principio envía una señal cada 1000ms al Slave, el Slave
cuando la recibe envía una señal al Master, cada vez que el Master reciba la
señal del Slave reducirá el tiempo de envio hasta que sea 0, entonces reinicia
la secuencia.
CÓDIGO MODULO SLAVE
Nota: para que la comunicación sea efectiva en el shield debemos poner el switch en la posición XBee y cuando enviemos el programa si tenemos el shield en la placa de Arduino el switch debe estar en la posición USB.
SI QUIERES VER EL VÍDEO HAZ CLIC AQUÍ.
Hola, quería saber si se puede usar un cable usb común?
ResponderEliminarcomo este http://www.yoctopuce.com/pubarchive/2012-07/thin_usb_cable_3.jpg
para hacer la configuración de master y slave
HOLA SABES QUE SE CONECTA PERO PERO NO RECIBE LOS DATOS ..O SE NO SE PRENDE Y LAS LUCES
ResponderEliminar