+ Post New Thread
Results 1 to 2 of 2
  1. #1
    Newbie level 1
    Points: 20, Level: 1

    Join Date
    Feb 2015
    Posts
    1
    Helped
    0 / 0
    Points
    20
    Level
    1

    Pairing two HC-05 bluetooths with each other using arduino mega

    With the following codes I can connect to HC-05 from computer or android devices either in master mode or slave mode.However I can not make two HC-05 connect to each other.What should I do ?

    here is the code for master mode

    Code:
    /*
    Copyright Chris Samuelson 2012
    */ #include //Software Serial Port #define RxD 5 // TxD of BT_Master #define TxD 4 // RxD of BT_Master #define Reset 3 // Master #define PIO11 6 // EN of BT_Master #define Led 13 //Master #define RTS 2 //Master SoftwareSerial blueToothSerial(RxD,TxD); void setup(){ Serial.begin(9600); pinMode(RxD, INPUT); pinMode(TxD, OUTPUT); pinMode(PIO11, OUTPUT); digitalWrite(PIO11, HIGH); pinMode(Reset, OUTPUT); digitalWrite(Reset, LOW); pinMode(RTS, INPUT); setupBlueToothConnection(); pinMode(Led, OUTPUT); } void loop(){ char recvChar; boolean rtsStatus = true; while(1){ blueToothSerial.print("a"); delay(500); blueToothSerial.print("b"); delay(500); if(blueToothSerial.available()){//check if there's any data sent from the remote bluetooth shield recvChar = blueToothSerial.read(); if(recvChar == 'a'){ digitalWrite(Led, HIGH); } if(recvChar == 'b'){ digitalWrite(Led, LOW); } Serial.print(recvChar); } if(Serial.available()){//check if there's any data sent from the local serial terminal, you can add the other applications here recvChar = Serial.read(); blueToothSerial.print(recvChar); } if(digitalRead(RTS)){ if(!rtsStatus){ rtsStatus = true; Serial.print("rts changed true\n"); }else{ if(rtsStatus){ rtsStatus = false; Serial.print("rts changed false\n"); } } } }} void setupBlueToothConnection(){ enterATMode(); sendATCommand(); sendATCommand("ORGL"); //sendATCommand("RMAAD"); sendATCommand("CMODE=0"); sendATCommand("ROLE=1"); sendATCommand("PSWD=1234"); //sendATCommand("INIT"); //sendATCommand("INQ"); //sendATCommand(); // sendATCommand("LINK=98D3,31,B44BF9"); // (hc-05-F9) (RX-E2) // sendATCommand("UART=9600,0,0"); // sendATCommand("PAIR=98D3,31,B44BF9"); // sendATCommand("BIND=98D3,31,B44BF9"); //enterComMode(); } void resetBT(){ digitalWrite(Reset, LOW); delay(2000); digitalWrite(Reset, HIGH); } void enterComMode(){ blueToothSerial.flush(); delay(500); digitalWrite(PIO11, LOW); resetBT(); delay(500); blueToothSerial.begin(9600); } void enterATMode(){ blueToothSerial.flush(); delay(500); digitalWrite(PIO11, HIGH); resetBT(); delay(500); blueToothSerial.begin(9600); } void sendATCommand(char *command){ blueToothSerial.print("AT"); if(strlen(command) > 1){ blueToothSerial.print("+"); blueToothSerial.print(command); delay(100); } blueToothSerial.print("\r\n"); } void sendATCommand(){ blueToothSerial.print("AT\r\n"); delay(100); } //
    
    
    this is the code for slave mode
    Code:
    /*
    Copyright Chris Samuelson 2012
    */
     
    #include  //Software Serial Port
    #define RxD 10 // TXD of BT_Slave
    #define TxD 9 // RXD of BT_Slave
    #define Reset 8 //Slave
    #define PIO11 11 // EN of BT_Slave
    #define Led 13  //Slave
    #define RTS 7 //Slave
     
    
    
    SoftwareSerial blueToothSerial(RxD,TxD);
     
    void setup(){
     Serial.begin(9600);
     pinMode(RxD, INPUT);
     pinMode(TxD, OUTPUT);
     pinMode(PIO11, OUTPUT);
     digitalWrite(PIO11, HIGH);
     pinMode(Reset, OUTPUT);
     digitalWrite(Reset, LOW);
     pinMode(RTS, INPUT);
     setupBlueToothConnection();
     pinMode(Led, OUTPUT);
    }
     
    void loop(){
     int recvChar;
     
     while(1){
     if(blueToothSerial.available()){//check if there's any data sent from the remote bluetooth shield
     recvChar = blueToothSerial.read();
     if(recvChar == '1'){
     digitalWrite(Led, HIGH);
     }
     if(recvChar == '0'){
     digitalWrite(Led, LOW);
     }
     Serial.print(recvChar);
     }
     if(Serial.available()){//check if there's any data sent from the local serial terminal, you can add the other applications here
     recvChar = Serial.read();
     blueToothSerial.print(recvChar);
     }
     }
    }
     
    void setupBlueToothConnection(){
     enterATMode();
     sendATCommand();
     sendATCommand("ORGL");
     //sendATCommand("UART=9600,0,0");
     sendATCommand("ROLE=0");
     sendATCommand("PSWD=1234");
     sendATCommand("CMODE=1");
     sendATCommand("LINK=98D3,31,B44BF9");
     //sendATCommand("PAIR=98D3,31,B44BE2");
     //sendATCommand("BIND=98D3,31,B44BE2");
    }
     
    void resetBT(){
     digitalWrite(Reset, LOW);
     delay(2000);
     digitalWrite(Reset, HIGH);
    }
    
    void enterComMode(){
     blueToothSerial.flush();
     delay(500);
     digitalWrite(PIO11, LOW);
     resetBT();
     delay(500);
     blueToothSerial.begin(9600);
    }
     
    void enterATMode(){
     blueToothSerial.flush();
     delay(500);
     digitalWrite(PIO11, HIGH);
     resetBT();
     delay(500);
     blueToothSerial.begin(9600);
     
    }
     
    void sendATCommand(char *command){
     blueToothSerial.print("AT");
     if(strlen(command) > 1){
     blueToothSerial.print("+");
     blueToothSerial.print(command);
     delay(100);
     }
     blueToothSerial.print("\r\n");
    }
     
    void sendATCommand(){
     blueToothSerial.print("AT\r\n");
     delay(100);
    }

    •   AltAdvertisement

        
       

  2. #2
    Full Member level 5
    Points: 1,653, Level: 9
    udayan92's Avatar
    Join Date
    Mar 2014
    Location
    India
    Posts
    284
    Helped
    40 / 40
    Points
    1,653
    Level
    9

    Re: Pairing two HC-05 bluetooths with each other using arduino mega



    1 members found this post helpful.

--[[ ]]--