Module Bluetooth HC06 Slave

 

1. Thông số kỹ thuật

Bluetooth HC06 Slave

 

Cấu hình Slaver là cấu hình ban đầu, không thay đổi được

- Sử dụng chip CSR Bluetooth V2.0

- Điện áp sử cho 3.3V ( Hỗ trợ IC ổn áp đầu vào 5V)

- Thứ tự chân: STATE   RXD   TXD   GND   VCC   WAKEUP

- Tốc Độ Hỗ Trợ: 200,2400,4800,9600,19200,38400,57600,115200

- Kích thước Module: 28mm x 15 mm x 2.35mm

- Dòng hoạt động: 20-30mA

  • Tần số: 2.4GHz ISM band
  • Tốc độ: 
    - Asynchronous: 2.1Mbps(Max)/160kbps
    - Synchronous: 1Mbps/1Mbps
  • Bảo mật: Authentication and encryption
  • Giao tiếp: Bluetooth serial port
  • Nhiệt độ làm việc: -20 ~ +75 Độ C

 

Cấu hình mặc định:

- 9600 baud rate, N, 8, 1

- Pass: 1234

 

2. Hướng dẫn sử dụng Module Bluetooth HC06 Slave Giao tiếp với Arduino

Bluetooth HC06 Slave

3. Code test

#define START_CMD_CHAR '*'
#define END_CMD_CHAR '#'
#define DIV_CMD_CHAR '|'
#define CMD_DIGITALWRITE 10
#define CMD_ANALOGWRITE 11
#define CMD_TEXT 12
#define CMD_READ_ARDUDROID 13
#define MAX_COMMAND 20  // max command number code. used for error checking.
#define MIN_COMMAND 10  // minimum command number code. used for error checking.
#define IN_STRING_LENGHT 40
#define MAX_ANALOGWRITE 255
#define PIN_HIGH 3
#define PIN_LOW 2

String inText;

void setup() {
  Serial.begin(9600);
  Serial.println("ArduDroid 0.12 Alpha by TechBitar (2013)");
  Serial.flush();
}

void loop()
{
  Serial.flush();
  int ard_command = 0;
  int pin_num = 0;
  int pin_value = 0;
  char get_char = ' ';  //read serial

  // wait for incoming data
  if (Serial.available() < 1) return; // if serial empty, return to loop().

  // parse incoming command start flag
  get_char = Serial.read();

  if (get_char != START_CMD_CHAR) return; // if no command start flag, return to loop().

  // parse incoming command type
  ard_command = Serial.parseInt(); // read the command

  // parse incoming pin# and value 
  pin_num = Serial.parseInt(); // read the pin
  pin_value = Serial.parseInt();  // read the value

  // 1) GET TEXT COMMAND FROM ARDUDROID

  if (ard_command == CMD_TEXT){  
    inText =""; //clears variable for new input  
    while (Serial.available())  {
      char c = Serial.read();  //gets one byte from serial buffer
      delay(5);
      if (c == END_CMD_CHAR) { // if we the complete string has been read
        // add your code here
        break;
      }             
      else {
        if (c !=  DIV_CMD_CHAR) {
          inText += c;
          delay(5);
        }
      }
    }
  }

  // 2) GET digitalWrite DATA FROM ARDUDROID
  if (ard_command == CMD_DIGITALWRITE){ 
    if (pin_value == PIN_LOW) pin_value = LOW;
    else if (pin_value == PIN_HIGH) pin_value = HIGH;
    else return; // error in pin value. return.
    set_digitalwrite( pin_num,  pin_value);  // Uncomment this function if you wish to use
    return;  // return from start of loop()
  }

  // 3) GET analogWrite DATA FROM ARDUDROID
  if (ard_command == CMD_ANALOGWRITE) { 
    analogWrite(  pin_num, pin_value );
    // add your code here
    return;  // Done. return to loop();
  }

  // 4) SEND DATA TO ARDUDROID
  if (ard_command == CMD_READ_ARDUDROID) {
    // char send_to_android[] = "Place your text here." ;
    // Serial.println(send_to_android);   // Example: Sending text
    Serial.print(" Analog 0 = ");
    Serial.println(analogRead(A0));  // Example: Read and send Analog pin value to Arduino
    return;  // Done. return to loop();
  }
}


void set_digitalwrite(int pin_num, int pin_value)
{
  switch (pin_num) {
  case 13:
    pinMode(13, OUTPUT);
    digitalWrite(13, pin_value); 
    break;
  case 12:
    pinMode(12, OUTPUT);
    digitalWrite(12, pin_value);  
    break;
  case 11:
    pinMode(11, OUTPUT);
    digitalWrite(11, pin_value);        
    break;
  case 10:
    pinMode(10, OUTPUT);
    digitalWrite(10, pin_value);        
    break;
  case 9:
    pinMode(9, OUTPUT);
    digitalWrite(9, pin_value);        
    break;
  case 8:
    pinMode(8, OUTPUT);
    digitalWrite(8, pin_value);        
    break;
  case 7:
    pinMode(7, OUTPUT);
    digitalWrite(7, pin_value);        
    break;
  case 6:
    pinMode(6, OUTPUT);
    digitalWrite(6, pin_value);        
    break;
  case 5:
    pinMode(5, OUTPUT);
    digitalWrite(5, pin_value);
    break;
  case 4:
    pinMode(4, OUTPUT);
    digitalWrite(4, pin_value);        
    break;
  case 3:
    pinMode(3, OUTPUT);
    digitalWrite(3, pin_value);        
    break;
  case 2:
    pinMode(2, OUTPUT);
    digitalWrite(2, pin_value);
    break;     
  }
 }

 

Sau khi biên dịch chương trình xong thì nạp code xuống board Arduino UNO đã kết nối với module bluetooth .

Bạn có thể kết nối thêm led của pin 13, 8, 7, 6, 5, 4, 3, 2. Như ở đây mình chỉ lấy 4 led để demo.

 

 4. Cài phần mền ArduDroid

Vào Google Play gõ ArduDroid và tiến hành cài đặt:

Bluetooth HC06 Slave

Sau đó vào giao diện của Ardudroi và bật bluetooth của máy lên và tiến hành kết nối với module bluetooth đã kết nối với arduino.

 

Bluetooth HC06 Slave

 

Nhấn vào nút như hình vào chọn Connect me to a Bluetooth device

Sau đó nhấn tiếp vào để chọn Scan for devices module bluetooth cần test.

Chú ý: Nếu máy yêu cầu pass thì nhập PASS: 1234

Bluetooth HC06 Slave

 

Sau đó nhấn các phím 9, 10, 11, 12 để test. Nếu led bật tắt thì module đã được test.

Bluetooth HC06 Slave

Sản phẩm liên quan