Bluetoth en Arduino (Modulo JY-MCU)
Configurar el modulo
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
}
}