sábado, 31 de mayo de 2014

Bluetoth en Arduino - El modulo JY-MCU - Configuracion

Bluetoth en Arduino (Modulo JY-MCU)

Configurar el modulo
Fritzing Diagram

Codigo para Arduino (http://www.blogtrog.com/default.aspx)

//******************************************************************
// Cambio de la configuracion del modulo bluetooh
// mediante comandos AT.
//
// Pasos a seguir:
//    1: El modulo no debe estar vinculado a ningun dispositivo.
//       Led fijo --> Emparejado
//       Led intermitente --> sin emparejar
//
//    2: Definir mediante la libreria SoftwareSerial los nuevos
//       pines TX,RX para el arduino
//
//    3: Conectar el TX del Modulo Bluetooth al RX del arduino
//       Conectar el RX del modulo Bluetooth al TX del arduino
//
//    4: Cargar el programa
//
//    6: Comunicar con el modulo (AT)
//
//    7: Cambiar el nombre del modulo (AT+ANAME)
//
//    8: Ajustar la velocidad de comunicacion (AT+BAUD)
//          1 --> 1200 baudios
//          2 --> 2400 baudios
//          3 --> 4800 baudios
//          4 --> 9600 baudios (por defecto)
//          5 --> 19200 baudios
//          6 --> 38400 baudios
//          7 --> 57600 baudios
//          8 --> 115200 baudios
//
//    9: Configurar pin de asociacion (AT+PIN)
//
//******************************************************************

//Se declara esta libreria especialmente para la comunicacion bluetooth
#include<SoftwareSerial.h>

//Se define los pines TX y RX, en este caso pin12=Tx, pin11=Rx
SoftwareSerial mySerial(12,11);

//Variable para control de configuracion
boolean configurado = false;

void setup(){
   pinMode(13,OUTPUT);    //Pin13 para control del proceso
   Serial.begin(9600);    //Iniciamos comunicacion serial
   mySerial.begin(9600);  //Iniciamos comunicacion bluetooth
   digitalWrite(13, LOW); //Apagamos el led 13
}


void loop(){

  if (configurado){
    /* Parpadeo para verificar su funcionamiento */
    digitalWrite(13, HIGH); //Enciende el led
    delay(1000);            //Espera 1 segundo
    digitalWrite(13, LOW);  //Apaga el led
    delay(1000);            //Espera 1 segundo
  }
  else{
    digitalWrite(13, HIGH); //Empezamos el tiempo de espera para reconectar
    delay(1000);            //Espera de 1 segundo (se puede variar)
    digitalWrite(13, LOW);  // Tiempo de espera agotado para reconectar

   
    Serial.println("AT"); 
    mySerial.write("AT");   //comenzamos la comunicacion con modulo BT
    delay(1000);            //Espera de 1 segundo
    while(mySerial.available()>0)     Serial.write(mySerial.read());     
    Serial.println();

      Serial.println("AT+NAMEArduinoBT"); 
      mySerial.write("AT+NAMEArduinoBT"); //Le ponemos un nombre al dispositivo
      delay(1000);                        //Espera de 1 segundo   
      while(mySerial.available()>0)     Serial.write(mySerial.read());   
      Serial.println();       

    Serial.println("AT+BAUD4");
    mySerial.write("AT+BAUD4"); //Establecemos la velocidad en 9600
    delay(1000);                //Espera de 1 segundo   
    while(mySerial.available()>0)     Serial.write(mySerial.read());   
    Serial.println();       

    Serial.println("AT+PIN0000");
    mySerial.write("AT+PIN0000"); //Establecemos contrase񡍊    delay(1000);                  //Espera de 1 segundoM   
    while(mySerial.available()>0)     Serial.write(mySerial.read());   

    /* En este punto debe estar configurado */
    digitalWrite(13, HIGH); //Mostramos que todo ha funcionado segun lo esperado
    configurado = true;     //Centinela para no volver a configurarlo, salvo que se resetee
  }

}

No hay comentarios :

Publicar un comentario