Made a joystick/bluetooth-controlled wheelchair through Arduino, but...

The bluetooth part just doesn’t work. I’m currently using an HC-05 module connected through breadboard with the resistors needed for one of the pins(2K and 1K) with Arduino Uno. Also, I only connected the 5V, GND, RX, TX pins to the arduino, leaving 2 pins on the breadboard without connection. My wheelchair has a left and right motor, with 4 relays. The app was made through MIT AppInventor.

My app Design has 11 buttons, 8 buttons are for the cardinal and intercardinal directions, 1 buzzer button,
1 button for mode control(joystick/bluetooth), 1 to list the bluetooth device to communicate with. For the Block functions, I used the touch down/up commands since I think it’s what I should use if I want to tap and hold on forward to go and release when I want to stop.

Problem: When I tried to connect to the bluetooth module with the app on my tablet, it kept asking if the device is on or something, so I tried installing the app on my groupmates’ phone. When I tried it, it worked until after I had chosen the bluetooth from the list. As soon as I would press the buttons or sometimes even before, the app would hang, so I can’t test if the code I made didn’t work or the app itself doesn’t work, or if there were loose breadboard connections. What do any of you great people propose I should do? I posted my .ino, .aia in a zip for people kind enough to check if there’s something wrong with with it.

IntegratedCode.ino (7.47 KB) (87.7 KB)

Posting zip files without explaining what is in them is not a good idea.

int VRX = A0;
int VRY = A1;
int LF = 2;
int LB = 3;
int RF = 4;
int RB = 5;
int K = 6;
int P = 7;
int Received = 0;
int Forward = 0;
int Reverse = 0;
int Left = 0;
int Right = 0;
int ForL = 0;
int ForR = 0;
int RevL = 0;
int RevR = 0;
int Buzz = 0;
int Allow = 0;

How many of these NEED to be int?


Is this instance used to talk to the PC or to talk to the bluetooth module? Yes is the wrong answer. So is both.

    Received =;

The useful data is in the low order byte. The high order data just tells you whether there was an error, or not. There will NEVER be an error if you call Serial.available() first (as you do) and only call read() if there is something to read (which you do). So, Received should NOT be an int.

Since you are sending data to the bluetooth module, what is the other device doing with the data you send it?

if (Allow = 0 && Received == 'Z')
  Received = 0;
  Allow = 1; 
if (Allow = 1 && Received == 'Z')
  Received = 0;
  Allow = 0; 

Why are you assigning values to variables in if statements?