Modulo HC-05
este es un modulo que se usa para entablar una comunicación vía Bluetooth, es muy practico, ya que puede funcionar como ESCLAVO y como MAESTRO (algo similar a la escuela XD)
modulo HC-05 |
el modulo cuenta con 6 pines:
- State
- RX : recepción de datos
- TX : transmisión de datos
- GND : tierra o negativo
- VCC: alimentación del modulo, son recomendados 5V
- EN : e usa para configurar el modulo, ya sea ESCLAVO o MAESTRO
pines del modulo HC-05 |
CONFIGURACIÓN ESCLAVO
En esta configuración el modulo actúa como esclavo: recibiendo instrucciones y ejecutándolas (igual que la escuela XD).
esa es su función principal, ya que en esta configuración, la comunicación solo es en una dirección maestro-esclavo y los datos que recibe el modulo vía Bluetooth los codifica y los envía por el puerto serial; En resumen es un intermediario que codifica los datos que recibe vía bluetooth para enviarlos al verdadero destino vía puerto Serial.
la configuración de ESCLAVO ya viene de fabrica así que no es necesario configurar lo; veamos un ejemplo:
primero se inicializa la comunicación del puerto Serial en el void Setup. la velocidad recomendada para la recepción/transmisión de datos es 9600 baudios
void Setup(){
Serial.begin(9600);
}
una vez iniciada la comunicación Serial, se debe programar el arduino para que almacene los datos y sepa interpretarlos y para ello usamos la condicional IF y una variable tipo INT (esto varia dependiendo de lo que se reciba en la comunicación)
void loop(){
if(serial.available()>0){
estado = Serial.read();
}
}
entonces, cuando el puerto Serial reciba información, esta sea almacenada en la variable llamada estado.
después podemos hacer lo que queremos, todo depende del objetivo del programa, etc. pero en este caso, cuando el puerto Serial reciba una 'a' se encenderá el pin 13 (el pin 13 tiene un LED integrado) y cuando el puerto serial reciba una 'b' el pin 13 se apague.
int estado = 0;
int LED = 13;
void Setup(){
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop(){
if(Serial.available()>0){
estado = Serial.read();
}
if(estado == 'a'){
digitalWrite(LED, HIGH);
}
if(estado == 'b'){
digitalWrite(LED, LOW);
}
delay(500);//como siempre el delay es opcional (depende de los gustos del programador)
}
como vimos la función IF se usa para checar si la condición encerrada en el paréntesis es real o falsa y este es un ejemplo muy básico que podemos usar con el HC-05 pero ahora pasemos a la otra configuración
CONFIGURACIÓN MAESTRO
Esa configuración se usa para se el maestro en la comunicación; en este caso el modulo HC-05 entabla una comunicación con un receptor esclavo(el primero que encuentre) aunque esto puede ser malo si se conecta con un dispositivo equivocado ,cuando se conecta correctamente, este envía información al esclavo desde un puerto Serial a comunicación vía bluetooth; aunque el código no sea tan complejo, todo depende del programador y del código que quiera construir. ejemplo
ahora con otro arduino se planea enviar los comandos para que encienda y apague el LED, recordemos que si el otro arduino recibía un 'a' se encendía el led y que cuando recibiera un 'b' se apagara el led, entonces procedemos a inicializar el puerto Serial
void Setup(){
Serial.begin(9600);
}
ahora el código; en mi caso lo que hare es un led blink, es decir, que cada cierto tiempo se encienda y alague el led:
void loop(){
Serial.write('a');
delay(1000);
Serial.wirte('b');
delay(1000);
}
en este caso el HC-05 y el puerto Serial envían cada segundo la letra 'a' y la letra 'b' de forma que en el otro lado se prenda y apague el led de forma periódica cada segundo.
LINK DE LOS PROGRAMAS:
MODULO BLUETOOTH
COMO CONFIGURAR EL MODULO HC-05
próximamente...
Comentarios
Publicar un comentario