Arduino + Bluetooth

ARDUINO + BLUETOOTH

(03/02/14)

En este tutorial vamos a dotar al Arduino de comunicación Bluetooth usando un módulo Bluetooth, veremos cómo configurarlo y cómo enviar y recibir datos desde un dispositivo Android.

 

Material

-Arduino Uno Rev 3

-Módulo Bluetooth JY-MCU

-Dispositivo Android con Bluetooth

-Leds rojo, amarillo y verde

-Resistencias 220 ohms x 3, 5K6, 10K

 

Módulo Bluetooth

El Bluetooth es un estándar de comunicación inalámbrica que permite la transmisión de datos a través de radiofrecuencia en la banda de 2,4 GHz. Existen muchos módulos Bluetooth para usarlos en nuestros proyectos de electrónica, pero los más utilizados son los módulos de JY-MCU, ya que son muy económicos y fáciles de encontrar en el mercado. Son módulos pequeños y con un consumo muy bajo que nos permitirán agregar funcionalidades Bluetooth a nuestro Arduino. Estos módulos contienen el chip con una placa de desarrollo con los pins necesarios para la comunicación serie.

Existen dos modelos de módulos Bluetooth: el HC-05 que puede ser maestro/esclavo (master/slave), y el HC-06 que solo puede actuar como esclavo (slave). La diferencia entre maestro y esclavo es que en modo esclavo es el dispositivo quien se conecta al módulo, mientras que en modo maestro es el módulo quien se conecta con un dispositivo.

Físicamente, los dos módulos son muy parecidos, solo varían algunas conexiones. Los pins que encontraremos son los siguientes:

-Vcc: Alimentación del módulo entre 3,6V y 6V.

-GND: La masa del módulo.

-TXD: Transmisión de datos.

-RXD: Recepción de datos a un voltaje de 3,3V.

-KEY: Poner a nivel alto para entrar en modo configuración del módulo (solo el modelo HC-05)

-STATE: Para conectar un led de salida para visualizar cuando se comuniquen datos.

 

Comandos AT

Los comandos AT son un tipo de comandos que sirven para configurar el módulo Bluetooth a través de un microcontrolador, un ordenador o con cualquier dispositivo que posea una comunicación serie (Tx/Rx). Son unas instrucciones que nos permiten cambiar los baudios del módulo, el PIN, el nombre, etc. Para usar los comandos AT el módulo Bluetooth no debe estar vinculado a ningún dispositivo (led rojo del módulo parpadeando). Según las especificaciones del módulo, el tiempo que se tiene que respetar entre el envío de un comando AT  y otro tiene que ser de 1 segundo. Si se envía un comando AT y en menos de un segundo se envía otro, el módulo no devuelve respuesta.

Ahora vamos a configurar el módulo Bluetooth a través de comandos AT enviados desde el Monitor Serial del Arduino. El código del Arduino necesario tanto por el módulo HC-05 como el HC-06 es el siguiente:

#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins

//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(10,11); //10 RX, 11 TX.

void setup()
{
  BT.begin(9600); //Velocidad del puerto del módulo Bluetooth
  Serial.begin(9600); //Abrimos la comunicación serie con el PC y establecemos velocidad
}

void loop()
{
  if(BT.available())
  {
    Serial.write(BT.read());
  }

  if(Serial.available())
  {
     BT.write(Serial.read());
  }
}

Entre los dos modelos de módulo Bluetooth existen diferencias a la hora de enviar los comandos AT:

HC-06

En el HC-06 solo se necesitan cuatro pins: Vcc, GND, TXD y RXD. El pin KEY no es necesario.

Al enviar un comando AT no se debe enviar ningún carácter de LF (nueva línea) ni CR (retorno de carro) al final del comando.  En el Monitor Serial del Arduino tenemos que poner No hay fin de líena.

 

Los comandos AT que se pueden enviar en este módulo son los siguientes:

Comando AT

Descripción

Respuesta

AT

Test de comunicación.

Responde con un OK

AT+VERSION

Retorna la versión del Modulo

OKlinvorV1.8

AT+BAUDx

Configura la velocidad de trasmisión del modulo según el valor de “x”1 = 1200 bps

2 = 2400 bps

3 = 4800 bps

4 = 9600 bps (por defecto)

5 = 19200 bps

6 = 38400 bps

7 = 57600 bps

8 = 115200 bps

9 = 230400 bps

A = 460800 bps

B = 921600 bps

C = 1382400 bps

AT+BAUD4 Configura la velocidad a 9600 baud rate Responde con OK9600

AT+NAMEx

Configura el nombre con el que se visualizara el modulo, soporta hasta 20 caracteres AT+NAMEDIYMakers Configura el nombre del modulo a DIYMakers Responde con OKsetname

AT+PINxxxx

Configura el Pin de acceso al modulo (password).1234 por defecto. AT+PIN1122 Configura el pin a 1122 Responde con OKsetPIN

Una vez compilado el código en el Arduino, abrimos el Monitor Serial y enviamos el comando AT, vemos que el módulo Bluetooth nos responde con un OK.

HC-05

El HC-05 es necesario poner el pin KEY del módulo a nivel alto (5V) para enviar comandos AT. Además, al enviar un comando AT hay que enviar un carácter de LF (nueva línea) y de CR (retorno de carro) al final del comando. Por lo tanto, en el Monitor Serial de Arduino pondremos Ambos NL & CR.

En el HC-05 se pueden enviar muchos más comandos AT que en el HC-06. Aquí os dejamos un archivo pdf con todos los comandos AT.

 

Recibir datos de un dispositivo Android

Ahora que ya sabemos cómo conectar y configurar un módulo Bluetooth en nuestro Arduino, vamos a vincularlo a un dispositivo Android con Bluetooth y enviar datos al Arduino mediante la aplicación BlueTerm, que es un emulador de terminal que permite comunicarse con un dispositivo Bluetooth para enviar y recibir información vía serie. La app es gratuita y se puede descargar desde este enlace.

Conectaremos tres leds de diferentes colores al Arduino y mediante unos comandos que ingresaremos en la app BlueTerm los encenderemos y apagaremos. En este ejemplo hemos usado un módulo HC-06 pero se puede usar también un HC-05 ya que no hay diferencia en este caso.

 

 

 

Código Arduino

/*
  www.diymakers.es
  by A.García
  Arduino + Bluetooth
  Tutorial en: http://diymakers.es/arduino-bluetooth/
*/

#include <SoftwareSerial.h> //Librería que permite establecer comunicación serie en otros pins

//Aquí conectamos los pins RXD,TDX del módulo Bluetooth.
SoftwareSerial BT(10,11); //10 RX, 11 TX.

int green=4;
int yellow=5;
int red=6;
char cadena[255]; //Creamos un array de caracteres de 256 cposiciones
int i=0; //Tamaño actual del array

void setup()
{
  BT.begin(9600);
  Serial.begin(9600);
  pinMode(green,OUTPUT);
  pinMode(yellow,OUTPUT);
  pinMode(red,OUTPUT);
}

void loop()
{
  //Cuando haya datos disponibles
  if(BT.available())
  {
    char dato=BT.read(); //Guarda los datos carácter a carácter en la variable "dato"

    cadena[i++]=dato; //Vamos colocando cada carácter recibido en el array "cadena"

    //Cuando reciba una nueva línea (al pulsar enter en la app) entra en la función
    if(dato=='\n')
    {
      Serial.print(cadena); //Visualizamos el comando recibido en el Monitor Serial

      //GREEN LED
      if(strstr(cadena,"green on")!=0)
      {
        digitalWrite(green,HIGH);
      }
      if(strstr(cadena,"green off")!=0)
      {
        digitalWrite(green,LOW);
      }
      //YELLOW LED
      if(strstr(cadena,"yellow on")!=0)
      {
        digitalWrite(yellow,HIGH);
      }
      if(strstr(cadena,"yellow off")!=0)
      {
        digitalWrite(yellow,LOW);
      }
      //RED LED
      if(strstr(cadena,"red on")!=0)
      {
        digitalWrite(red,HIGH);
      }
      if(strstr(cadena,"red off")!=0)
      {
        digitalWrite(red,LOW);
      }
      //ALL ON
      if(strstr(cadena,"on all")!=0)
      {
        digitalWrite(green,HIGH);
        digitalWrite(yellow,HIGH);
        digitalWrite(red,HIGH);
      }
      //ALL OFF
      if(strstr(cadena,"off all")!=0)
      {
        digitalWrite(green,LOW);
        digitalWrite(yellow,LOW);
        digitalWrite(red,LOW);
      }

      BT.write("\r"); //Enviamos un retorno de carro de la app. La app ya crea una línea nueva
      clean(); //Ejecutamos la función clean() para limpiar el array
    }
  }
}

//Limpia el array
void clean()
{
  for (int cl=0; cl<=i; cl++)
  {
    cadena[cl]=0;
  }
  i=0;
}

El código es bastante simple. Primero creamos un array de 256 posiciones tipo char llamado cadena para almacenar los caracteres que recibiremos de la app. Cuando haya datos disponibles los vamos guardando uno por uno en forma de carácter en la variable dato. Después ponemos estos caracteres por orden en el array cadena. Cuando reciba un carácter de fin de línea (\n), se compara el texto almacenado en el array con el texto que deseamos. Para hacer la comparación se usa la función strstr() que procede de C++ y que permite encontrar partes de texto en un String. Después de esto, se limpia el array poniendo a 0 todas las posiciones usadas para recibir el siguiente comando.

Configurar app Android

Una vez descargada la app la abrimos y en ajustes ponemos Conectarse a un dispositivo.

Pulsamos Buscar dispositivos y escogemos nuestro módulo Bluetooth que en nuestro caso le hemos puesto el nombre DIYMakers. Si no lo habéis cambiado pondrá por defecto LINVOR o HC-06.

Ponemos el PIN del módulo. Si no lo habéis modificado será 1234.

Después de esto, arriba a la derecha pondrá conectado:<nombre> Significa que tenemos asociado nuestro dispositivo Android con nuestro módulo Bluetooth y el led de este deja de parpadear y se queda fijo.

Luego solo hay que poner los comandos para encender y apagar los leds. Cuando se escribe un comando tenemos que pulsar Enter del teclado para enviarlos al Arduino. En el terminal no se pueden borrar caracteres, por lo que si nos equivocamos pulsamos Enter y lo volvemos a escribir.

Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn2Email this to someone

92 thoughts on “Arduino + Bluetooth

  • Willian

    Super sensillo, porfavor, me ayudas, diciendo cómo puedo hacer lo mismo pero con un módulo BlueSmirf Silver, por favor, de urgencia ya he provado muchas cosas y no me sale, ayudame plis…..

    Reply
    • DIYMakers

      DIYMakers Post author

      Hola William. Lo sentimos, pero no hemos probado el módulo BlueSmirf Silver y no podemos darte explicaciones, aunque no creo que sea muy distinto al funcionamiento de los módulos JY-MCU. Prueba a conectarlo como el HC-06, sin pin KEY, solo usando cuatro pins.

      Reply
  • Pingback: LOGSHOCK | Pearltrees

      • Pablo

        A mi me pasa igual. No me escribe caracteres y si se conecta el dispositivo con el bloothooth. Que es necesario hacer?

        Reply
        • Kpk

          Deben de configurar la parte del echo local, lo habilitan y le permiten el salto de linea eso es en Caracter CR (0x0D) le dan en la opcion de Reemplazar por CRLF (0x0D0A)

          Reply
          • marioso24

            A mi me pasaba exactamente lo mismo. Qué pasaba? simple. No estaba utilizando el teclado stock del telefono porque tengo SWIFTKEY instalado. Así que lo único que deben hacer es irse a la configuración de su móvil y activar el teclado STOCK (el de fábrica). Funcionando!

  • 1719abcd

    a mi me pasa igual, no me escribe caracteres, si lo pude conectar al modulo bloothooth pero al escribir no pasa nada, no sera algo del clean que me limpie el caracter justo cuando lo escribo.¿?

    Reply
    • DIYMakers

      DIYMakers Post author

      El clean () no puede ser porque solo se ejecuta después de enviar una nueva línia desde la app. Debe de ser un problema de la app o del terminal móvil. Nosotros lo hemos probado con varios smartphones y funciona perfectamente.

      Reply
      • 1719abcd

        Oye amigo no es posible usar el bloothooth en las entradas digitales (0,1) RX,TX ¿? lo que pasa es que mi programa ocupa demasiadas entradas y apenas me ajusta si uso del 0 al 13.

        Reply
      • andrey

        yo tengo un sony xpiria m2 y se conecta al bluetooth pero no escribe caracteres y tiene la configuracion de fabrica

        Reply
    • DIYMakers

      DIYMakers Post author

      No Ivan, el tutorial esta bien. Software Serial BT (10,11) quiere decir que el pin 10 del Arduino es RX del Arduino, y el pin 11 es TX del Arduino. El RX y TX se tienen que intercalar entre el Arduino y el módulo Bluetooth. Por lo tanto, el RX del Arduino (pin 10) se conecta al TX del módulo, i el TX del Arduino (pin 11) se conecta a RX del modulo Bluetooth tal como se indica en la imagen.

      Reply
  • Ohz Dan

    Hola, crees que se podría hacer un proyecto en el cual se mandará un archivo mp3 a los dispositivos que estén en rango del Bluetooth ?? Es decir programar la arduino para que automáticamente mande un archivo vía Bluetooth. Gracias

    Reply
    • DIYMakers

      DIYMakers Post author

      El Arduino en principio no puede con archivos mp3. Tendrías que usar una shield mp3 para reproducir los archivos de musica. Si los quieres mandar a través de Bluetooth pues creo que no se puede, aunque esto no lo hemos probado, aún.

      Reply
  • eliaz

    buenas tardes, gracias por la info, mi duda es la siguiente: tengo un módulo bluetooth hc-05 configurado como MASTER y un arduino UNO, quiero mandar CARACTERES, (letras) de manera inalámbrica hacia una laptop con bluetooth interno, y que esos caracteres se escriban por ejemplo en el BLOC DE NOTAS, de la laptop,¿COMO SERÍA LA CONFIGURACIÓN? es decir, SIN usar un arduino y bluetooth slave pegados a la laptop, ya que mi laptop tiene un bluetooth interno
    Saludos.

    Reply
  • Augusto

    Hola, excelente tuto. Estoy tratando de leer distancias con un sensor de Ultrasonido y enviar estas lecturas por bluetooth al Celular, no sé si necesito otra librería o con lo puedo hacer, vi por allí el comando “blue.print(…, …); ” ¿Podrías darme una mano por favor?

    Reply
  • Rafael

    Hola….
    estoy tratando de compilar el código tal cual y me da los siguientes errores
    error: ‘class SoftwareSerial’ has no member named ‘write’
    error: ‘class SoftwareSerial’ has no member named ‘available’

    ¿Me faltaría configurar algo en el compilador????? o la clase ‘SoftwareSerial’ no la tengo actualizada?????

    Reply
  • Isra

    Hola. Lo primero genial el tutorial! Lo he probado y todo perfecto

    Tengo un problema con la configuración del nombre y pin del HC05. Lo intento configurar, pero nunca me devuelve el OK cuando escribo AT. Sabes a que se puede deber?

    Gracias!

    Reply
  • VanDerMoe

    Hola, buen tuto. Despues de leer el pdf de los comandos AT del nmodulo 05. Mi pregunta es si se puede saber la intensidad de la señal de los dispositivos bluetooth que se encuentren al alcance del arduino. En el pdf hace una vaga referencia a esto, pero no termino de entenderlo. Mi intencion es estimar la posicion del arduino por triangulacion. Es muy posible que haya algo mas especifico para esto, pero ando bastante perdido en el tema. Gracias

    Reply
  • Onuba

    Primero enhobuena por este tutorial. A mi se me conecta Arduino con el módlo, me escribe la app…pero no se enciende nada!!. Tengo el módulo HC-06. Gracias

    Reply
  • Eréndira Covix

    Oye una pregunta, en tu tutorial muestras cómo comunicar el teléfono para que este prenda o apague los leds en la Arduino, yo busco hacer lo contrario, tengo un sensor de temperatura conectado a la arduino y quiero que me mande las mediciones al teléfono ¿Se podría hacer o qué modificaciones son pertinentes?

    Reply
  • Boned

    Hola, me gustaría saber si cabe la posibilidad de que en lugar que el dispositivo android envié datos o instrucciones, sea el quien reciba un dato enviado desde el arduino, en este caso una cadena de caracteres… Gracias

    Reply
  • eduardo Navarro

    muy bueno, muchas gracias, es mi 2 circuito
    hubo algun problema conla configuracion pero al final todo bien
    ENHORABUENA Y GRACIAS

    Reply
  • Agustin

    Hola,

    tengo un HC05 y no siempre logro conectar con la App, a veces me conecta sin problemas, pero otras veces se queda parpadeando y la App nunca me conecta.

    He cambiado de terminal móvil y el problema se mantiene. No tengo claro cuál puede ser el motivo por el que hay veces que no le da la gana. ¿alguien puede saber por donde van los tiros?

    Agustín

    Reply
  • DiegoFS

    El circuito funciona excelente…. Muchas gracias. estuve investigando bastante y este Tutorial fue el que mas me ayudó lejooooosssss !!!

    Yo pruebo con mi HC05 y pongo el cable de Enable, pero la verdad no entiendo cual es la diferencia entre ponerlo y no ponerlo.. si lo saco sigo teniéndo comunicación en los dos sentidos.

    Por otro lado no utilicé las resistencias para bajar los 5v a los 3v3 porque no las veo en otras implementaciones… Es por un tema de seguridad y de Buena conservación del circuito o tiene alguna finalidad mas allá de esto.

    Me podrían aclarar estas dos cositas???

    Nuevamente gracias !!!

    Reply
  • Angel Avalos

    hace tiempo hice una practica similar con un HC-06 sin necesidad de configurar nada del BT…. lo puedo hacer con el 05 sin necesidad de configurar??
    no sé si me expliqué…

    Reply
  • Arturo González

    Una duda, eso es para recibir caracteres ‘char’ existe alguna manera de recibir datos ‘int’ o ‘float’? agradeceria la ayuda

    Reply
  • Jeffry M. Rivera

    Hola si quiero cambiar o modificar la app android para agregarle mas cosas?
    de casualidad no tienes un código android que sirva ?

    Reply
  • José Ismael

    NO ME SALE ESTA PRACTICA…
    POR MAS QUE INTENTO NO SALE…
    MI MODULO NO ES UN JY-MCU…
    ES UN FC-114, Y SE MANEJA A 38400 BAUDIOS, PERO CONFIGURO Y NADA…

    Reply
  • José Ismael

    Ademas BlueTerm no me escribe nada…
    por mas que presiono las letras, blueterm no escribe ni manda nada…

    Reply
  • Pilar Nuñez

    Hola.
    Alguien podría explicarme como es que el arduino lee los datos que recibe del bt? Necesito enviar un color, pero la app que he creado en android me los muestra como elementos de una lista (R G B A) A: Atenuacion. Como puedo enviar esto al bt y que el arduino no lea?

    Reply
    • Diego Quimbert

      Hola Pilar, bueno hiciste esto??? para la recepcion de datos?? y una pregunta tu imagen RGBA las envias desde tu android a tu arduino y tu arduino las enviara a donde?? bueno adjunto un codigo.

      if(Serial1.available()>0) //Comprobamos si en el buffer hay datos
      {
      int dato=Serial1.read(); //Lee cada carácter uno por uno y se almacena en una variable
      Serial.write(dato); //Imprimimos en la consola el carácter recibido

      Reply
      • Pilar Nuñez

        Hola que tal Diego? 🙂
        Pues la app ya la he modificado un poco después de tanto investigar. Lo que hace es tomar el color del pixel que toco en la pantalla (en este caso de una imagen de una rueda de colores), luego con un bloque que se llama “split color” el expresa en la misma app en forma texto, el color seleccionado de esta manera “(R G B A)”. Ahora bien, este texto es lo que envía hacia el bt para luego ser leído por arduino. En arduino lo que he tratado de hacer es leer esa cadena de texto para lograr la modulación PWM y conectar un modulo de leds rgb y variar su color.

        Aun no he logrado hacerlo 🙁

        Reply
  • Josevi

    Hola buenas, mira yo estoy estudiando electronica en un GS y bueno voy hacer un pequeño equipo de musica, haciendo yo el aplificador etc. Pero yo quiero ir mas haya y poder desde mi smarphone a traves de bluetoohn reproducir mi musica. Es decir que el ampli tenga un dispositivo bluetoo y pueda conectarme con mi movil y reproduzca mi musica. Tipo cascos inalambricos que venden. Y estado mirando y queria saber si con esto de arduino podria valerme y en su caso como hacerlo. Gracias.

    Reply
    • Pablo

      Los HC-05 y HC-06 son bluetoohs digitales. Necesitas un bluetooth que te permita pasar datos de forma analógica.

      Reply
  • Pingback: BlueTooth Ballet a Dos - David Albiol Pedregal

  • Jose Tarazona

    amigos una pregunta en que programa puedo hacer esos diagramas de la protoboard conectada con el arduino y el modulo bluettoh ? muchas gracias

    Reply
  • Carlos Ruiz

    Hola buenas muy buena información, gracias, estoy haciendo un dispositivo arduino + bluetooth + android para medir la distancia entre mi android y el arduino pero solo logro comunicar con el bluetooth y controlar leds o pequeños motores pero no he logrado medir la distancia entre el movil y el arduino, en las APP de android hay varias apps que miden los dBm de la señal y de esa forma se puede calcular, pero no se como hacer para medir los dBm con mi arduino nano, si me puedes ayudar te lo agradecería muchisimo

    Reply
  • Marco Monreal

    llevo bastante tiempo buscando un ejemplo, y aun no lo encuentro, el ejemplo que quiero es del codigo android

    Reply
  • Pingback: Movilidad Urbana 2da Parte. | Equipo Ozono

  • jesus gilabert

    buenas tardes , tengo un problema con el bluetooth consigo emparejarlo con el movil y consigo tambien entrar en los AT no consigo con ningun steck poner alguna de las salidas digitales a uno y he probado dos modulos hc06 y hc05 me hace exactamente lo mismo me podria ayudar gracias

    Reply
  • rafael tigrero

    Buenas tardes tengo un problema con el modulo hc05 fc 144 he seguido los pasos pero nisiquiera enciende..no hay mucha informacion pero si lo conecto a vcc ha 5v hay si enciende pero nolo puedo conectar..

    Reply
  • rafael tigrero

    Como hago para conectar el modulo hc05 fc144 es diferente tiene un boton y no consigo que encienda aunque conectando a vcc a 5v si enciende pero no puedo configurar la at

    Reply
  • Pingback: BlueTooth Ballet : Un prueba Simple - David Albiol Pedregal

  • joc

    Buen dia…Me podria colaborar ..requiero hacer un karaoke a traves de arduino. y con la interfaz processing. y que la cancion de puntajes

    Reply
  • lucas

    necesito ayuda, tengo un zs-040 no tiene pin key sino un botón con el cual entrar en modo AT, el problema esta que cuando envió a AT o AT+ no recibo ninguna respuesta, ya probe con varios códigos de la red y no logro que funcione, agradecería la ayuda, si saben cual es el problema por favor díganme como solucionarlo.
    Gracias de antemano

    Reply
  • Jorge

    Hola. Tengo un modulo de ese fabricante, el HM10. ¿se puede configurar para que sea reconocido como MIDI BLE Device por un dispositivo IOS? ¿mediante comandos AT?

    Reply
  • Pingback: ARDUINO + BLUETOOTH - GOLEM ELECTRONICS

  • Moisés Armando

    Muy buen tutorial, en mi caso, me gustaría que cuando un led se prenda, me llegue una notificación. ¿Cómo podría hacer eso utilizando un HC-05?

    Reply
  • alex

    muy buen tutorial amigo solo una pregunta no tendras el tuto para que la comunicacion sea mandar datos del arduino a la Aplicacion?

    Reply
  • javier gómez

    Enhorabuena por el tutorial, soy novato en este mundillo de arduino y me ha surgido un proyecto y necesito de vuestra ayuda y consejo.
    Mi proyecto es el siguiente: tengo una maquina de construcción con la cual me comunico con su controlador electrónico a través de un comunicador y éste conectándolo al PC a través del puerto rs232. Mi intención es hacerlo de forma inalámbrica, lo he intentado con dos xbee s2 que una vez configurados se comunican perfectamente y los convierto a rs232 pero no consigo que funcionen.

    También he probado con dos HC-05 y consigo que conecten entre ellos pero no que transmitan la señal.
    En los dos casos los he intentado con los comunicadores xbee y hc-05 sólos, he pensado que a lo mejor conectándolos con arduino podría funcionar.
    Por favor darme vuestra opinión de como podría conseguir que funcionase.

    Estas son las señales que he medido con el osciloscopio en Rx y Tx de los cables que llegan al r232 del pc.
    Me tienen un poco despistado porque no cumplen el protocolo de señal de rs232, creo lo mismo estoy equivocado lo digo porque la señal debería ser entre +/- 15 v. con una zona muerta de +/- 3v.

    https://s2.resellty.com:2078/public_html/sites/default/imagenes/RX%20COMUNICADOR.jpg

    https://s2.resellty.com:2078/public_html/sites/default/imagenes/TX%20COMUNICADOR.jpg

    La comunicación es bidireccional y el protocolo de comunicación lo tengo puenteado y funciona perfectamente solamente con los tres cables (negativo, Rx y Tx).

    La verdad es que estoy bloqueado y no se me ocurre como seguir.

    Un saludo y muchas gracias.

    Reply
  • bryan

    como puedo hacer para activar una alarma desde mi celular…ya tengo la programación pero no se como ad herirla a mi programación….ayuda por favor……soy un estudiante y recién estamos iniciando con esto de arduino y es nuestro proyecto para graduarnos…

    Reply
  • Luis Pimentel

    En la App BlueTerm no me aparece el menú para poder conectarme a un dispositivo. Cómo le puedo hacer ?

    Reply
  • carlos sanchez

    Buenas, tengo una duda, estoy usando un Arduino UNo con ardunio IDE y tambien un modulo HC-05 ZS040 (No tiene el PIN key) quisiera saber como accdeo al modo AT, quisiera saber como accedo a este modo por medio del IDE de arduino, he provado todo y anda me resulta…

    Uso este simple codigo pero el modulo no me responde:

    #include

    SoftwareSerial mySerial(10, 11); // RX, TX

    void setup() {

    Serial.begin(9600);

    pinMode(9,OUTPUT); digitalWrite(9,HIGH);

    Serial.println(“Enter AT commands:”);

    mySerial.begin(38400);

    }

    void loop()

    {

    if (mySerial.available())

    Serial.write(mySerial.read());

    if (Serial.available())

    mySerial.write(Serial.read());

    }

    Reply
  • 8parga8

    Hay un pequeño detalle en la descripcion del HC05 que me ha liado un poco. Segun este articulo, el HC05 viene configurado de fábrica a 9600 baudios, pero tras consultar en otras paginas he encontrado que podría estar preconfigurado a 38400 baudios (como es el caso del HC05 que me han vendido) Tras modificar este detalle en vuestro código, he recibido el ansiado “OK” por el puerto serie.

    Estupendo articulo.

    Reply
  • Luisant

    Excelente tutorial , tengo el HC06 , no soy capaz de poder encontrarlo con el Bluetooth de mi tlf iPhone , es posible probar con otro módulo Bluetooth o todo depende de la programación ???

    Reply
  • andres

    amigo una pregunta se podrá enviar la variación en la resistencia de un potenciómetro a través de un master y con un slave leerla y posicionar un servomotor? te agradecería la ayuda!

    Reply
  • Jose

    hola, llevo poco con arduino y me apasiona. Compre recientemete los modulos HC05 y 06 para jugetear un poco y quisiera saber si hay forma de emprelarlo para saber a que esta el movil del modulo y actuar en consecuencia, a 2 metros hacer una cosa a 5 otra…

    Reply
  • Miguel Maurel

    si alimento con los 3,3v que entrega el arduino no hay necesidad de colocar las resistencias ??

    Reply
  • le_yo :v

    de que forma puedo, desde un arduino, mandar una letra correspondiente a un pushbottom a otro arduino para que este reaccione

    trato de usar dos arduinos leo para encender 2 led por medio de una letra para cada led (así mando un solo dato identificable para su variable)
    es casi lo mismo a lo tuyo, pero con otro arduino en lugar de un celular, y una letra en lugar de una frase

    puedes asesorarme?
    no he podido encontrar algo similar a lo que busco, y (mentalmente) no logro adaptar lo que encuentro para hacer mi programa :/

    Reply
  • regino

    Buenas! Lo primero gracias por esta guia, me ha servido de mucho en mi proyecto, pero tengo una problema que no soy capaz de resolver. ¿Como hago para controlar lo que envio mediante un evento?, me explico. Mi intención es mandar una señal desde arduino a una aplicacion android mediante bluetooth, la señal proviene de un sensor de movimiento. Lo que hago es controlarlo mediante un if, enviado en dato cuando el sensor esta en high, hago toda la conexion y el envio del dato dentro de este if. Pero me encuentro con el problema de que una vez que entra en el, se queda ahi enviando high todo el rato, aunque el sensor este en low. ¿Como podria hacer para que en el else parara de enviar datos sin cortar la conexion con el smartphone?
    Un saludo!

    Reply
  • Aitor

    El articulo es bueno, pero como pongo una intensidad especifica del 1 al 255 sin poner switch case o cosas asi

    Reply
  • Pingback: Bluetooth en Arduino | Aprendiendo Arduino

  • Francisco Rivas

    Hola, muy buen tutorial gracias.. pero tengo un problema, en vez de encender los LEDs mi arduino sólo envía los comandos que le escribo al monitor serie, qué hice mal? Saludos.

    Reply
  • Omar Chivata

    Hola, buen dia, quisiera saber si puedo formar un red de dispositivos bluetooth, teniendo 1 maestro y varios esclavos… y si es posible, cual es la cantidad maxima de esclavos que puedo tener
    Gracias!!

    Reply
  • dalia

    hola, tengo un problema en cuestión de comunicación bluetooth, necesito emparejar 2 bluetooth para que pueda existir comunicación entre ambos , sin embargo lo manipulo de 2 arduinos distinto, el enlace de los 2 bluetooth ya lo hace , pero el detalle esta cuando quiero ver los datos que se envían los 2 bluetooth en una aplicación ya que solo puedo ver el dato de 1 bluetooth, menciono que los bluetooth están enviando la información del monitoreo de 2 sensores de carga, mi problema es que no puedo ver los valores de los 2 sensores en la app. como puedo hacerle ??

    configure los 2 módulos, uno como maestro y otro como esclavo, y el bluetooth que puedo visualizar es el de configuración modo esclavo.

    Reply

Deja un comentario