Académique Documents
Professionnel Documents
Culture Documents
Comunicación serial
Configuración de bluetooth
1. Objetivos
Controlar el encendido y apagado de un foco con una aplicación Android instalada en un teléfono
móvil conectado por bluetooth.
Aprender a configurar el módulo Bluetooth HC-05.
Manejar sensores con salidas analógicas y digitales.
2. Marco teórico
Módulo bluetooth HC-05 visto por Forma de conectar los fines del módulo HC-05 con la placa
adelante y por detrás Arduino UNO
El módulo bluetooth HC-05 viene configurado de fábrica para trabajar como maestro o esclavo. En
el modo maestro puede conectarse con otros módulos bluetooth, mientras que en el modo esclavo
queda a la escucha de peticiones de conexión. Agregando este módulo a un proyecto, se puede
controlar a distancia desde un celular o una laptop todas las funcionalidades que se deseen.
El modulo BlueTooth HC-05 utiliza el protocolo UART RS 232 serial. Es ideal para aplicaciones
inalámbricas, fácil de implementar con PC, microcontrolador o módulos Arduinos. La tarjeta incluye
un adaptador con 6 pines de fácil acceso para uso en protoboard.
Bluetooth es una especificación industrial para Redes Inalámbricas de Área Personal (WPAN -
Wireless Personal Area Network) que posibilita la transmisión de voz y datos entre diferentes
dispositivos mediante un enlace por radiofrecuencia en la banda ISM de los 2.4 GHz. Los principales
objetivos que se pretenden conseguir con esta norma son:
Un puerto Serial es un módulo de comunicación digital para un sistema embebido. Es decir, permite
la comunicación entre dos dispositivos digitales. Cuenta con dos conexiones, RX y TX. Lo que indica
los modos de comunicación que puede manejar, Full/full-duplex, Full-duplex, Half dúplex o duplex.
Además, su principal ventaja es la sencillez de su protocolo de comunicación, sin embargo, también
tiene desventajas como que sólo se puede comunicar a un puerto dos dispositivos.
Full/full dúplex: Transmisión y envío simultáneamente y con varios dispositivos.
Full duplex. Significa que puede recibir y enviar información digital simultáneamente con un
solo dispositivo.
Half-duplex. Es cuando sólo se puede transmitir o recibir información, una cosa a la vez.
Simplex. Cuando sólo se puede recibir o transmitir, comunicación en un solo sentido.
UART – Universal Asyncronos Receiver and Transmitter que en español se traduciría como
Transceptor Asíncrono.
USART – Universal Syncronos and Asyncronos Receiver and Transmitter, que significa en
español Transceptor Síncrono y Asíncrono.
EUART – Enhanced Universal Asyncronos Receiver and Transmitter ó Transceptor
Asíncrono Universal Mejorado.
2
Nota. Otros puertos seriales incluyen al puerto I2C, puerto spi, puerto USB, puerto CAN en un
microcontrolador.
Para configurar al módulo se requiere indicar la velocidad de operación. Los baudios, que es una
medida de cuantos bits por segundo se van a transmitir, se configuran mediante un registro de
propósito específico. Dependiendo del lenguaje de programación la configuración puede ser
relativamente sencilla. En el caso de Arduino se haría con la instrucción Serial.begin(9600). También
es necesario configurar cuantos bits de parada y si habrá o no bit de paridad. Una de las
configuraciones más usadas para un puerto serial es:
3
Trama de comunicación serial con la siguiente configuración: 1 bit de parada, 1 bit de
inicio, 8 bits de datos a 9600 BAUDs.
Trama con 6 bits de datos, dos bits de parada y sin bit de paridad a 115200 BAUD,
solo se envían 6 bits de datos y con dos bits de parada sin bit de paridad. Esta
configuración se podría utilizar para cuando el byte a enviar no utilice los últimos dos
y permite velocidades más altas de transferencia de bytes, en este coso sería 115200/9
= 12800Bytes/s. Cada byte sólo teniendo 6-bits reales.
3. Material y equipos
4. Circuitos y esquemas
4
4.1. Esquema para la conexión del circuito de control de encendido y apagado de un foco a través
de una aplicación Android
Arduino
Mega
2560
5
El circuito antes mostrado, corresponde al circuito de control del encendido y apagado de un foco de
220 V mediante una aplicación Android instalada en un teléfono inteligente. El teléfono se conecta
con el modulo bluetooth, se reconoce el dispositivo a través de su nombre asignado y se ingresa la
contraseña correspondiente para establecer la conexión. Desde el celular se enviaban solamente dos
caracteres designados en el código, “e” para encendido y “a” para apagado.
4.3. Circuito de control con un sensor de GLP (utilizando la salida digital del sensor)
5. Marco práctico
- Antes de iniciar con el circuito del laboratorio correspondiente al tema de comunicación serial, se
procedió a configurar el módulo HC-05. Los pines TX y RX deben estar conectados a los pines 10
6
y 11 de la placa Arduino, respectivamente. La configuración de este módulo, requiere del siguiente
código escrito en el IDE de Arduino.
Estado Desconectado:
Entra a este estado tan pronto alimentas el modulo, y cuando no se ha establecido una conexión
bluetooth con ningún otro dispositivo
EL LED del módulo en este estado parpadea rápidamente
En este estado a diferencia del HC-06, el HC-05 no puede interpretar los comandos AT
Estado Conectado o de comunicación
Entra a este estado cuando se establece una conexión con otro dispositivo bluetooth.
El LED hace un doble parpadeo.
Todos los datos que se ingresen al HC-05 por el Pin RX se trasmiten por bluetooth al dispositivo
conectado, y los datos recibidos se devuelven por el pin TX. La comunicación es transparente
Modo AT 1
Para entrar a este estado después de conectar y alimentar el modulo es necesario presionar el botón
del HC-05.
En este estado, podemos enviar comandos AT, pero a la misma velocidad con el que está configurado.
EL LED del módulo en este estado parpadea rápidamente igual que en el estado desconectado.
Modo AT 2
Para entrar a este estado es necesario tener presionado el botón al momento de alimentar el modulo,
es decir el modulo debe encender con el botón presionado, después de haber encendido se puede
soltar y permanecerá en este estado.
En este estado, para enviar comandos AT es necesario hacerlo a la velocidad de 38400 baudios, esto
es muy útil cuando nos olvidamos la velocidad con la que hemos dejado configurado nuestro modulo.
EL LED del módulo en este estado parpadea lentamente.
7
Inmediatamente después de alimentar la placa Arduino conectada al módulo HC-05, se presionó el
botón de éste durante unos segundos y se observó que el led empezó a parpadear lentamente, esto
indica que esta en modo AT y se puede configurar. Una vez en modo AT1, se ingresó al IDE de
Arduino y se abrió el monitor serial; ya con el monitor abiarto, había que seleccionar la opción
“Ambos NL & CR” y se empiezan a escribir los comandos AT para probar la conexión y para cambiar
las configuraciones de fábrica.
COMANDOS AT
- Una vez configurado el módulo bluetooth, se procedió a armar el circuito de control de carga en
el programa Proteus versión 7 entorno ISIS.
- Después, se armó el circuito mostrado en la simulación cuidando siempre de colocar los pines en
la posición designada en el código escrito.
- Una vez armado el circuito, se cargó el programa a la placa de desarrollo Arduino Mega 2560 y se
procedió a verificar el funcionamiento que se observó en la simulación y se pudo verificar que se
cumple la secuencia del código cargado.
- Para probar el funcionamiento del circuito y la comunicación con el modulo bluetooth, se descargó
una aplicación para Android del AppStore de Google, la aplicación se llamaba Bluetooth terminal
y era de descarga gratuita. Se instaló la aplicación en un teléfono móvil y se realizó la conexión
8
con el mismo usando la contraseña asignada en la configuración. Se probó el circuito ingresando
un carácter a la vez y luego ingresando una cadena de caracteres consecutivos. Se verificó el
correcto funcionamiento del circuito.
- Ya para finalizar el laboratorio, se distribuyeron diferentes sensores al azar entre los grupos
conformados en clase. Nuestro grupo recibió un sensor detector de GLP, el cual se muestra en la
siguiente figura.
Se nos asignó el sensor MQ – 6, este sensor de gas detecta la presencia de GLP, isobutano y propano
en concentraciones de 300 a 10.000 ppm. La interfaz de voltaje analógico simple del sensor requiere
sólo un pin de entrada analógica de su microcontrolador. Este sensor tiene una alta sensibilidad y un
tiempo de respuesta rápido. La salida del sensor es una resistencia análoga. El circuito de interfaz es
muy simple, todo lo que se necesita hacer es alimentarlo con 5V, añadir una resistencia de carga y
conectar la salida al conversor análogo – digital. Cuenta con un amplificador LM393 con un
potenciómetro para modificar la ganancia del sensor.
Características:
Alimentación 5V DC ó AC
Temperatura de funcionamiento: -10 a 50 °C
Consumo de potencia: menos de 750 mW
Pines
VCC ↔ 2.5V ~ 5.0V
GND ↔ tierra
AOUT ↔ MCU.IO (salida analógica)
DOUT ↔ MCU.IO (salida digital)
- Se simuló el circuito en Proteus versión 7, solamente que, en vez de poner el sensor, del cual
no disponíamos en las librerías del programa, se utilizó un pulsador. Se codificó en el IDE
Arduino, se compiló el programa y se cargó a la placa Arduino Mega 2560. Se utilizó
prácticamente el mismo circuito utilizado en el control de la carga, solamente se quitó el
modulo bluetooth y se conectó el sensor.
6.1. Esquema para la conexión del circuito de control de encendido y apagado de un foco a través
de una aplicación Android
9
6.2. Código para el control del sensor de GLP
7. Conclusiones
8. Bibliografía
https://hetpro-store.com/TUTORIALES/arduino-serial-read/
https://hetpro-store.com/TUTORIALES/puerto-serial/
10