

El Bluetooth nos abre un sin fin de posibilidades a la hora de controlar nuestros proyectos de forma remota. No sólo para accionarlos a distancia sino para recibir información sobre ellos.
De entrada la idea de utilizar una tecnologia relativamente nueva cómo el Bluetooth puede resultar intimidante, pero veremos que comunicarnos con nuestro Arduino via Bluetooth es más sencillo de lo que pensamos.
Podemos encontrar en internet módulos cómo el HC-05 o el HC-06 que cuestan entorno a los 5€ y tienen todo lo necesario para establecer comunicación.
De entrada, el circuito es tan sencillo cómo este:
IMPORTANTE: cada modelo de Bluetooth lleva las patillas localizadas en un lugar distinto. Asegurate de descubrir que patillas de tu módulo corresponden a Vcc, GND, Tx y Rx.

Es MUY importante tener en cuenta que el módulo se alimenta con 3.3V, por lo que deberemos conectarlo a esta salida de nuestro Arduino.
Para establecer comunicación tenenos que cruzar las vias Rx y Tx de arduino y el módulo Bluetooth, es decir, el Rx de Arduino deberá estar conectado al Tx del módulo, y el Rx de este al TX de Arduino.
Ya tenemos nuestro adaptador Bluetooth alimentado y preparado para establecer comunicación, unicamente necesitamos programar Arduino para que sepa cómo enviar la información y cómo recibirla.
Para ello vamos a completar nuestro circuito con algunos componentes que podamos leer o controlar. Para hacer simple el ejemplo utilizaremos tres leds que podremos encender o apagar y un potenciometro que leeremos y enviaremos via bluetooth.
Ahora nos queda hacer la parte del software, si sabemos programar aplicaciones para Android podemos crear una pequeña aplicación para controlar el circuito desde nuestro teléfono o tablet. Sino sabemos o no queremos complicarnos tanto la vida podemos usar un ordenador con Bluetooth y un programa tipo HyperTerminal para mandar comandos por el puerto serial que se configura con nuestro adaptador Bluetooth.
veamos, el código por partes para entenderlo mejor, empezaremos enviando datos por bluetooth:
#include <SoftwareSerial.h> //Creamos un objeto de la libreria SoftwareSerial SoftwareSerial BT(2, 3); int potenciometro=0; void setup(){ //iniciamos la cominucación por serial BT.begin(9600); //Cuando todo este listo, enviamos el mensaje "conectado" para que se muestre en la consola. BT.println("Conectado"); } void loop(){ //leemos el pin conectado al potenciometro y lo almacenamos en la variable potenciometro potenciometro=analogRead(5); //mandamos por serial el valor de la variable potenciometro BT.println(potenciometro); //hacemos una pausa antes de tomar la siguiente lectura. delay(1000); }
Cómo podemos ver, utilizar un Bluetooth con Arduino es exactamente igual de sencillo que conectarse con el cable USB, esto se debe a que en ambos casos estamos utilizando una conexión via serial.
Ahora vamos a ver el código necesario para controlar los leeds dependiendo de la señal que nos mandan:
#include <SoftwareSerial.h> char orden; //Creamos un objeto de la librería SoftwareSerial y enviamos las patillas a las que esta conectado nuestro BT SoftwareSerial BT(0,1); int led1 = 2; int led2 = 3; int led3 = 4; void setup(){ //Configuramos los pines de los leds cómo salidas pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); //iniciamos la comunicación por serial BT.begin(9600); //Cuando todo este preparado enviamos el mensaje "conectado" para que se muestre en el terminal BT.println("Conectado"); } void loop() { //Si la conexión esta disponible if(BT.available()){ //leemos si se nos esta enviando algo por serial (mediante el bluetooth) orden=BT.read(); //hacemos un switch con las posibilidades de la variable switch(orden){ //Si recibimos un 0, encendemos el primer led case '0': digitalWrite(led1,HIGH); delay(500); BT.println("Led 1 on"); break; //Si nos llega un 1, encendemos el segundo case '1': digitalWrite(led2,HIGH); delay(500); BT.println("Led 2 on"); break; //Si nos llega un dos, encendemos el tercer led. case '2': digitalWrite(led3,HIGH); delay(500); BT.println("Led 3 on"); break; //Cualquier otra cosa que recibamos apagará todos los leds. default: delay(500); digitalWrite(led1,LOW); digitalWrite(led2,LOW); digitalWrite(led3,LOW); BT.println("Todo Apagado"); } } }
Para hacer las dos cosas unicamente tenemos que juntar ambos códigos
Ahora que sabemos leer y controlar circuitos via Bluetooth podemos empezar a incorporarlo en nuestros proyectos, por ejemplo podemos controlar motores de CC y cambiar el potenciometro por un sensor, cómo podría ser un sensor de temperatura, o de ultrasonidos para medir la distancia hasta un obstaculo.