Advertisement
Villalba2006

POST_74_HC-05

Dec 12th, 2016
24,491
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.48 KB | None | 0 0
  1. /*  TITULO: Configurar módulo Bluetooth HC-05 mediante comandos AT
  2.  
  3.     AUTOR:
  4.    
  5.     MARIANO DEL CAMPO GARCÍA (@2016) --> INGENIERO TÉCNICO INDUSTRIAL ESPECIALIDAD ELECTRÓNICA
  6.     - FACEBOOK: https://www.facebook.com/mariano.delcampogarcia
  7.     - TWITTER: https://twitter.com/MarianoCampoGa
  8.     - CORREO: marianodc83@gmail.com
  9.    
  10.    
  11.     DESCRIPCIÓN DEL PROGRAMA
  12.    
  13.     Con este programa podemos configurar el módulo Bluetooth HC-05 mediante comandos AT, de la siguiente manera:
  14.     - AT+ORGL: Restauramos los valores por defecto del módulo Bluetooth HC-05. Responde con OK.
  15.       - Modo de trabajo: Modo Esclavo (+ROLE:0).
  16.       - Modo de conexión: Se conecta al módulo Bluetooth especificado (+CMOD:0).
  17.       - Velocidad de transmisión: 38400 bps; Bit de parada: 1 bit; Bit de paridad: Sin paridad (+UART:38400,0,0.)
  18.       - Pin o contraseña: 1234 (+PSWD:1234).
  19.       - Nombre del módulo: “H-C-2010-06-01” o "HC-05" (Se puede modificar pero no nos responde con el nombre)
  20.     - AT: Test de comunicación. Responde con OK.
  21.     - AT+VERSION: Preguntamos por la versión del módulo Bluetooth HC-05. Responde +VERSION:2.0-20100601.
  22.     - AT+UART=X,Y,Z: Configura la velocidad de trasmisión del modulo según el valor de “X” (1200 bps, 2400 bps,
  23.       4800 bps, 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115200 bps, 230400 bps, 460800 bps, 921600 bps y
  24.       1382400 bps. Con el valor de "Y" se configura el bit de parada (0 -> 1 bit y 1-> 2 bits) y con el valor de
  25.       "Z" se configura el bit de paridad (0 -> Sín paridad, 1 -> Paridad impar y 2 -> Paridad Par).
  26.       Con el comando AT+UART=38400,0,0 se configura el módulo Bluetooth HC-05 con una velocidad de comunicación de
  27.       38400 bps, con un bit de parada y sin paridad. Nos responde con OK.
  28.     - AT+UART: Preguntamos por el estado de la comunicación UART. Nos responde con +UART:38400,0,0.    
  29.     - AT+NAME=XXXX: Configura el nombre con el que se visualizara el módulo, soporta hasta 20 caracteres. Por ejemplo
  30.       con el comando AT+NAME=Arduino_HC-05 configura el nombre del modulo a Arduino_HC-05. Responde con OK.
  31.     - AT+PSWD=XXXX: Configura el Pin o la contraseña de acceso al modulo Bluetooth HC-05. Con el comando AT+PSWD=1234
  32.       se configura el pin a 1234. Responde con OK.
  33.     - AT+PSWD: Preguntamos por el pin. Nos responde con +PSWD:1234.
  34.     - AT+CMODE = X: Cambiamos el modo de conexión del módulo (0 -> Se conecta al dispositivo Bluetooth especificado y
  35.       1 -> Se conecta a cualquier dispositivo Bluetooth disponible). Con el comando AT+CMODE = 1 se configura el módulo
  36.       Bluetooth HC-05 para que pueda conectarse a cualquier dispositivo Bluetooth disponible (sin dirección requerida).
  37.       Responde con OK.
  38.     - AT+CMODE: Preguntamos por el modo de conexión del módulo. Responde con +CMOD:1.
  39.     - AT+ROLE = X: Cambiamos el modo de trabajo del módulo (0 -> Modo Esclavo y 1 -> Modo Maestro). Con el comando
  40.       AT+ROLE = 0 configuramos el módulo Bluetooth para que trabaje como Esclavo de otro dispositivo Bluetooth.
  41.       Responde con OK.
  42.     - AT+ROLE: Preguntamos por el modo de trabajo del módulo. Responde con +ROLE:0.  
  43.     Aunque hay multitud de comandos AT, los anteriores son los que vamos a utilizar con una mayor frecuencia.    
  44.    
  45.     **NOTA:
  46.     Para entrar en el modo de comandos AT (LED parpadea cada 2 segundos) tenemos que estar presionando el botón que trae
  47.     el módulo al ejecutar el monitor serie del IDE de Arduino .
  48.    
  49.    
  50.    
  51.     ESQUEMA DE CONEXION
  52.    
  53.                                       +-----+
  54.          +----[PWR]-------------------| USB |--+
  55.          |                            +-----+  |
  56.          |         GND/RST2  [ ][ ]            |
  57.          |       MOSI2/SCK2  [ ][ ]  A5/SCL[ ] |  
  58.          |          5V/MISO2 [ ][ ]  A4/SDA[ ] |  
  59.          |                             AREF[ ] |
  60.          |                              GND[ ] |
  61.          | [ ]N/C                    SCK/13[ ] |  
  62.          | [ ]IOREF                 MISO/12[ ] |  
  63.          | [ ]RST                   MOSI/11[ ]~|   Pin RX del módulo Bluetooth HC-05
  64.          | [ ]3V3    +---+               10[ ]~|   Pin TX del módulo Bluetooth HC-05
  65.          | [ ]5v    -| A |-               9[ ]~|   Pin EN del módulo Bluetooth HC-05
  66.          | [ ]GND   -| R |-               8[ ] |   Pin VCC del módulo Bluetooth HC-05
  67.          | [ ]GND   -| D |-                    |
  68.          | [ ]Vin   -| U |-               7[ ] |  
  69.          |          -| I |-               6[ ]~|  
  70.          | [ ]A0    -| N |-               5[ ]~|  
  71.          | [ ]A1    -| O |-               4[ ] |  
  72.          | [ ]A2     +---+           INT1/3[ ]~|  
  73.          | [ ]A3                     INT0/2[ ] |  
  74.          | [ ]A4/SDA  RST SCK MISO     TX>1[ ] |  
  75.          | [ ]A5/SCL  [ ] [ ] [ ]      RX<0[ ] |  
  76.          |            [ ] [ ] [ ]              |
  77.          |  UNO_R3    GND MOSI 5V  ____________/
  78.           \_______________________/
  79.  
  80.  
  81.   NOTAS:
  82.  
  83.    - Alimentación del módulo Bluetooth HC-05:
  84.      - Pin VCC del módulo Bluetooth HC-05 --> Pin digital 8 de Arduino.
  85.      - Pin GND del módulo Bluetooth HC-05 --> GND de Arduino.  
  86. */
  87.  
  88.   // Añadimos la librería que permite añadir pines para la comunicación serie
  89.   #include <SoftwareSerial.h>
  90.    
  91.   // Definimos el objeto para la comunicación serie
  92.   SoftwareSerial BT(10,11); // 10 RX, 11 TX.
  93.  
  94.   int VCC = 8; // Pin digital para alimentar el módulo Bluetooth HC-05
  95.   int EN = 9; // Pin digital para la habilitación del módulo Bluetooth HC-05
  96.  
  97.  
  98.   void setup()
  99.   {
  100.     pinMode(VCC, OUTPUT); // Pin digital 8 como salida
  101.     pinMode(EN, OUTPUT); // Pin digital 9 como salida
  102.    
  103.     digitalWrite(EN, HIGH);  // Habilitamos el módulo Bluetooth HC-05
  104.     delay(500); // Esperamos 500 ms
  105.     digitalWrite (VCC, HIGH); // Encendemos el módulo Bluetooth HC-05
  106.    
  107.     Serial.begin(9600); // Comienzo la comunicación con el monitor serie  
  108.     BT.begin(38400); // Comienzo de la comunicación con el módulo Bluetooth HC-05 (por defecto)
  109.    
  110.     Serial.println("Esperando comandos AT ... ");
  111.   }
  112.  
  113.   void loop()
  114.   {  
  115.     // Si hay datos disponibles en el monitor serie
  116.     if(Serial.available())
  117.     {
  118.        // Escribimos los valores en el módulo bluetooth HC-05
  119.        BT.write(Serial.read());
  120.     }
  121.    
  122.     // Si hay datos disponibles en el módulo bluetooth HC-05
  123.     if(BT.available())
  124.     {
  125.       // Mostramos los valores en el monitor serie
  126.       Serial.write(BT.read());
  127.     }
  128.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement