Hi I am making a sketch and circuit with a HC-05 BT receiver to upload sketches via Bluetooth to my Uno. This requires giving AT commands from the sketch. I would like to see the response from the HC-05 but so far I haven't got it to work. I want to view the response via the standard serial connection and serial monitor. The commands from the sketch are not being recognized by the HC-05 and I would like to see the HC-05 response to troubleshoot it.
If you have a minute would you mind giving me a tip? I would greatly appreciate it. See the ArdProgramModeOn() and Off functions at the end.
Thanks
int ATModePin = 2; // pin for HC-05 AT comand mode int HC05powerPin = 3; // pin for powering HC-05 when high char btserialrx; // data through from bt connection char myChar; // data through serial port connection #define rxPin 8 // HC-05 bt serial pin #define txPin 9 // HC-05 bt serial pin #include <SoftwareSerial.h> SoftwareSerial btSerial(rxPin, txPin); // RX, TX void setup() { pinMode(ATModePin, OUTPUT); pinMode(HC05powerPin, OUTPUT); pinMode(5, OUTPUT); Serial.begin(9600); btSerial.begin(115200); digitalWrite(HC05powerPin, HIGH); delay(2000); } void loop() { while (btSerial.available()) { btserialrx = btSerial.read(); } if(btserialrx == '1'){ // change to upload / reset mode Serial.println("switching to upload mode"); ATModeOn(); ArdProgramModeOn(); ATModeOff(); btserialrx = '0'; } else if (btserialrx == '2'){ // change to normal mode Serial.println("switching to normal mode"); ATModeOn(); ArdProgramModeOn(); ATModeOff(); btserialrx = '0'; } } void ATModeOn(){ // reset HC-05 and change HC-05 to AT Command Mode digitalWrite(5, HIGH); digitalWrite(ATModePin, HIGH); // AT command mode on upon reset delay(2000); digitalWrite(HC05powerPin, LOW); // hc-05 off delay(2000); digitalWrite(HC05powerPin, HIGH); // hc-05 on delay(2000); } void ATModeOff(){ // reset HC-05 and return HC-05 to std. operation digitalWrite(5, LOW); digitalWrite(ATModePin, LOW); // AT command mode off upon reset delay(2000); digitalWrite(HC05powerPin, LOW); // hc-05 off delay(2000); digitalWrite(HC05powerPin, HIGH); // hc-05 on delay(2000); } void ArdProgramModeOn(){ btSerial.println("AT"); delay(1000); btSerial.println("AT+POLAR=1,0"); // Arduino reset mode upon HC-05 connection for programming delay(1000); btSerial.println("AT+POLAR?"); // Arduino reset mode upon HC-05 connection for programming delay(2000); while (btSerial.available()) { // Show responses from HC-05 myChar = btSerial.read(); Serial.print(myChar); } delay(4000); } void ArdProgramModeOff(){ btSerial.println("AT"); delay(1000); btSerial.println("AT+POLAR=1,1"); // Arduino normal mode no reset upon HC-05 conection delay(1000); btSerial.println("AT+POLAR?"); // Arduino reset mode upon HC-05 connection for programming delay(2000); while (btSerial.available()) { // Show responses from HC-05 myChar = btSerial.read(); Serial.print(myChar); } delay(4000); }