HC-05 Problem - no transmission from arduino to android

Hello everybody,

At the beginning, I want to say hello - it is my first post here, I'm dissapointed about it's content. Also I'd like to notice, that I've read lots of topics here and on the internet, but I haven't found any solution.

I made wiring with this scheme: Cheap 2-Way Bluetooth Connection Between Arduino and PC : 5 Steps (with Pictures) - Instructables
Of course I made voltage divider with 10kOhms and 20kOhms. I paired android smartphone and HC-05 successfully. With ArduDroid ( android app ) I am sending '1' or '0' to make LED ON or OFF. That works fine. The problem is when I want to receive data from arduino, simply the text "Led ON" , "Led Off". I can't receive it. Does anyone have any idea what's wrong? Thank you for response, Cheers

Here's a code that I'm using:

char INBYTE;
int  LED = 13; // LED on pin 13

void setup() {
  Serial.begin(9600); 
  pinMode(LED, OUTPUT);
  Serial.println("Press 1 to turn Arduino pin 13 LED ON or 0 to turn it OFF:");
}

void loop() {
  
  while (!Serial.available());   // stay here so long as COM port is empty   
  INBYTE = Serial.read();        // read next available byte
  if( INBYTE == '0' ){
    digitalWrite(LED, LOW);  // if it's a 0 (zero) tun LED off
    Serial.println("Led OFF");
    return;
}
  if( INBYTE == '1' ){
 digitalWrite(LED, HIGH);
Serial.println("Led On");
return;
} // if it's a 1 (one) turn LED on
  Serial.read() == '0';
  delay(50);
}

I was just working with my HC-05 for the first time and had used a different sketch to do the same thing. It worked. I tried the sketch that you listed here and I can’t transmit from my terminal program to the arduino. I receive fine. I used external power so as to have pins 0,1 available. If you would like, try this sketch that uses pins 10 & 11:

// This program shown how to control arduino from PC Via Bluetooth
// Connect …
// arduino>>bluetooth
// D11 >>> Rx
// D10 >>> Tx
//Written By Mohannad Rawashdeh
//for http://www.genotronex.com/

// you will need arduino 1.0.1 or higher to run this sketch

#include <SoftwareSerial.h>// import the serial library

SoftwareSerial Genotronex(10, 11); // RX, TX
int ledpin=13; // led on D13 will show blink on / off
int BluetoothData; // the data given from Computer

void setup() {
// put your setup code here, to run once:
Genotronex.begin(9600);
Genotronex.println(“Bluetooth On please press 1 or 0 blink LED …”);
pinMode(ledpin,OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
if (Genotronex.available()){
BluetoothData=Genotronex.read();
if(BluetoothData==‘1’){ // if number 1 pressed …
digitalWrite(ledpin,1);
Genotronex.println("LED On D13 ON ! ");
}
if (BluetoothData==‘0’){// if number 0 pressed …
digitalWrite(ledpin,0);
Genotronex.println("LED On D13 Off ! ");
}
}
delay(100);// prepare for next data …
}

Thirst of all thanks for response :stuck_out_tongue:

I've uploaded your code on arduino and switched wires to pins 10 and 11. I have exactly same situation - I can turn led ON/OFF and I am not getting the response ( android connection ). What is weird, I can't open terminal on PC on bluetooth COM. I have COM6 - Arduino USB ; COM10 - bluetooth COM ; COM11 - also bluetooth COM ( I think so :stuck_out_tongue: ). I can open COM6, but 10 and 11 are unable to open - on Tera Term and on Arduino IDE. Also Arduino IDE says, that COM10 is being used ( ? ). I checked android bluetooth, it's off, so I don't know what is the cause of the busy COM.

Maybe you have any idea what's going on? :stuck_out_tongue:

Thanks for answer, Cheers :wink:

You should be connecting to COM10, so you need to find out what is hanging up that port. I tried to install ArduDroid on my nexus 7 - 2nd gen but the nexus is not compatible, so I can't test that portion. Are you saying that you never receive any data from the arduino to the android ? When you are connected (android to arduino) and hit the reset button on the arduino, you should see "Bluetooth On please press 1 or 0 blink LED .." displayed on your android. See if that works (with the SoftwareSerial version). By the way, I am not using any resistors. My tx/rx from the HC-05 go directly to pins 10/11 on the arduino.

I restarted my computer - PC terminal worked on COM 10. Of course I can send '1' or '0' via terminal, but I don't get any response. So same thing like on android.

I did like you said, but I didn't get any response. I clicked on restart button on arduino - same thing - I can write data, but I am not receiving any.

Another thing that I've noticed is that: when I want to make AT-COMMAND mode like here:

(Of course with voltage divider) , the HC-05 blinking is good - 2 second on/2 second off - but I can't open COM10 port again. It's driving me nuts and I don't want to make "try everything" method because I'm afraid of destroying it.

Thank You again sp_mike for helping me, cheers :wink:

Here is some background. It is very basic, but it should stop you going nuts.

http://homepages.ihug.com.au/~npyner/Arduino/GUIDE_2BT.pdf
http://homepages.ihug.com.au/~npyner/Arduino/BT2way.ino

Hey guys, problem solved - it was because of the voltage divider. I've never tried to do the connection without the divider, because I was afraid of destroying the HC-05.

What do you think about that? Just leave it or change resistors values for example? (they are 10k and 20k)

Thanks for your help, cheers :wink:

10k/20k - maybe too big for 115k2 baudrate. Try something smaller - the topic you posted shows 1k/2k.

MrCrow:
Just leave it or change resistors values for example?

The HC-05 is a 3.3v device and therefore best run at 3.3v. If you are using it on a JY-MCU backboard as shown and recommended in the instructable you allude to, all the level shifting is done for you on that board. I think the writing on the back is a little ambiguous but, if you find it that way, just ask why they would level shift the power and not the signal? No resistors are needed and, clearly, feeding a device plainly labelled 3.6v minimum with 3.3v is likely to cause a problem.