Hi guys, I’m doing a project in which I have to make my phone communicate with the mbot. It connects and also receives the characters (in fact it lights up red) but does not receive the characters I want (‘f’, ‘b’, etc …). Furthermore, when I connect the mbot to the PC (for debug on the serial monitor) the Bluetooth communication is stopped and the module turns off, preventing me from viewing the characters I receive. Can you tell me why? This is my code:
#include <MeMCore.h>
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include "src/bluetoothhc.h"
#include "src/HC06.h"
BluetoothClassHC bluetoothhc;
MeRGBLed rgbled_7(7, 2);
MeDCMotor motor_9(9);
MeDCMotor motor_10(10);
char character = 'x';
int speed = 150;
void move(int direction, int speed) {
int leftSpeed = 0;
int rightSpeed = 0;
if(direction == 1) {
leftSpeed = speed;
rightSpeed = speed;
} else if(direction == 2) {
leftSpeed = -speed;
rightSpeed = -speed;
} else if(direction == 3) {
leftSpeed = -speed;
rightSpeed = speed;
} else if(direction == 4) {
leftSpeed = speed;
rightSpeed = -speed;
}
motor_9.run((9) == M1 ? -(leftSpeed) : (leftSpeed));
motor_10.run((10) == M1 ? -(rightSpeed) : (rightSpeed));
}
void setup() {
Serial.begin(115200);
rgbled_7.fillPixelsBak(0, 2, 1);
bluetoothhc.inithc(0,1, "BTSlave", 1234);
}
void loop() {
if (bluetoothhc.dataLineAvailableHc()) {
move(1, 50 / 100.0 * 255);
delay(3);
move(1, 0);
character = bluetoothhc.readDataLineHc();
rgbled_7.setColor(0, 255, 0, 0);
rgbled_7.show();
delay(200);
rgbled_7.setColor(0, 0, 0, 0);
rgbled_7.show();
Serial.print("Character: ");
Serial.println(character);
if (character == 'f') {
rgbled_7.setColor(0, 0, 255, 0);
rgbled_7.show();
move(1, speed);
delay(3);
move(1, 0);
} else if (character == 'b') {
rgbled_7.setColor(0, 0, 0, 255);
rgbled_7.show();
move(2, speed);
delay(3);
move(2, 0);
} else if (character == 'l') {
rgbled_7.setColor(0, 255, 255, 0);
rgbled_7.show();
move(3, speed);
delay(3);
move(3, 0);
} else if (character == 'r') {
rgbled_7.setColor(0, 0, 255, 255);
rgbled_7.show();
move(4, speed);
delay(3);
move(4, 0);
}
}
_loop();
}
void _loop() {
bluetoothhc.bluetoothLoopHc();
}
thanks in advance!