Arduino Bluetooth

From ProjectPages
Jump to: navigation, search

I got this Bluetooth board from Ebay for about £3.50 from this seller. The connections to the Arduino are really simple. Just GND and 3.3v to the same pins on the module. Tx on the module connects to Pin 10 on the Arduino and Rx on the module to the centre of a voltage divider, the top of which goes to Pin 11. I used 22K ohms and 47K ohms for the divider. The idea is to get the 5v output from the Arduino down to 3.3v for the module. This ratio gives approximately 3.4v, which seems to work fine.

Bluetooth Board Top View
Bluetooth Board Bottom View
Bluetooth Board Breadboard


I used the software serial port so that I could still use the main serial port for monitoring what's happening. I just used this example code so that anything sent by the Bluetooth module would show up on the serial monitor and vice versa.

/*
  Software serial multple serial test
 
 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.
 
 The circuit: 
 * RX is digital pin 10 (connect to TX of other device)
 * TX is digital pin 11 (connect to RX of other device)
 
 Note:
 Not all pins on the Mega and Mega 2560 support change interrupts, 
 so only the following can be used for RX: 
 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
 
 Not all pins on the Leonardo support change interrupts, 
 so only the following can be used for RX: 
 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
 
 created back in the mists of time
 modified 25 May 2012
 by Tom Igoe
 based on Mikal Hart's example
 
 This example code is in the public domain.
 
 */
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.println("Connection Started");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
  mySerial.println("Connection Started");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}

I paired up the device with my Android tablet and then downloaded the 'Term for BT' bluetooth terminal app. On opening the app I clicked 'Connect a device' and selected 'HC-05'.

I immediately got the 'Connection Started' message from my Arduino.

Now, typing in the Android app showed up on the PC serial monitor and vice versa.

Serial Monitor
Android App