Help in merging 2 codes (fixed)

Hi guys, I'm making a mind control wheelchair with arduino as graduation project,
beside the Brainwave headset control, i'm using another control (joystick)

now i want the wheelchair controlled by both brainwave headset and joystick

each code of both codes is working alone .. but i need to merge them together

problem is i can't merge the 2 codes together without bunch of errors

Headset control Code

int Motor_A_Enable = 9;
int Motor_A_Reverse = 4;
int Motor_A_Forward = 3;

int Motor_B_Enable = 10;
int Motor_B_Reverse = 7;
int Motor_B_Forward = 12;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(38400);
  
  pinMode(Motor_A_Enablae, OUTPUT);
  pinMode(Motor_A_Forward, OUTPUT);
  pinMode(Motor_A_Reverse, OUTPUT);

  pinMode(Motor_B_Enable, OUTPUT);
  pinMode(Motor_B_Forward, OUTPUT);
  pinMode(Motor_B_Reverse, OUTPUT);
}

void loop() {

  if(Serial.available() > 0)
  {
    char data;
    data = Serial.read();
    Serial.write(Serial.read());

    switch (data)
    {
      case '4': //FORWARD

        //delay(1000);
        
        digitalWrite(Motor_A_Reverse, LOW);
          digitalWrite(Motor_B_Reverse, LOW);
        
        digitalWrite(Motor_A_Forward, HIGH);
        digitalWrite(Motor_B_Forward, HIGH);



        for(int a = 0; a < 200; a++)
        {
          analogWrite(Motor_B_Enable, a);
          analogWrite(Motor_A_Enable, a);
          delay(5);
        }
        
        
        break;
      case '5': //REVERSE

        //delay(1000); 
        
        digitalWrite(Motor_A_Forward, LOW);
        digitalWrite(Motor_B_Forward, LOW);
      
        
        digitalWrite(Motor_A_Reverse, HIGH);
        digitalWrite(Motor_B_Reverse, HIGH);

        for(int a = 0; a < 200; a++)
        {
          analogWrite(Motor_B_Enable, a);
          analogWrite(Motor_A_Enable, a);
          delay(5);
        }
        
        
        break;
      case '7': //FORWARD LEFT

      
        for(int a = 0; a < 255; a++)
        {
          analogWrite(Motor_A_Enable, a);
          //analogWrite(Motor_B_Enable, a);
          delay(5);
        }
     

       // analogWrite(Motor_A_Enable, 230);
          //analogWrite(Motor_B_Enable, 255);

          digitalWrite(Motor_A_Forward, HIGH);
        //  digitalWrite(Motor_B_Reverse, HIGH);
          digitalWrite(Motor_A_Reverse, LOW);
        //  digitalWrite(Motor_B_Forward, LOW);
        
        break;
      case '6': //FORWARD RIGHT
        
      
        for(int a = 0; a < 255; a++)
        {
          //analogWrite(Motor_A_Enable, a);
          analogWrite(Motor_B_Enable, a);
          delay(5);
        } 
       // analogWrite(Motor_A_Enable, 250);
          analogWrite(Motor_B_Enable, 230);

          
       //  digitalWrite(Motor_A_Reverse, HIGH);
          digitalWrite(Motor_B_Forward, HIGH);
       //  digitalWrite(Motor_A_Forward, LOW);
          digitalWrite(Motor_B_Reverse, LOW);
        
        break;
      default: //If bluetooth module receives any value not listed above, both motors turn off
        analogWrite(Motor_A_Enable, 0);
        analogWrite(Motor_B_Enable, 0);
    }
  }
}

Joystick control code

#include <NewPing.h>
#include <PS3BT.h>
#include <usbhub.h>
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>


#define trig_pin A1 //analog input 1
#define echo_pin A2 //analog input 2
#define maximum_distance 200
boolean goesForward = false;
int distance = 100;
NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
USB Usb;
BTD Btd(&Usb);
//PS3BT PS3(&Btd);
PS3BT PS3(&Btd); // This will just create the instance
//PS3BT PS3(&Btd, 0x00, 0x15, 0x83, 0x3D, 0x0A, 0x57); // This will also store the bluetooth address - this can be obtained from the dongle when running the sketch
int const PWMA = 3;
int const PWMB = 5;
int const dirA = 2;
int const dirB = 4;
void _mForward()
{ 
        digitalWrite(dirA, 255);
      analogWrite(PWMA, HIGH);
      digitalWrite(dirB, 255);
      analogWrite(PWMB, HIGH);
  }
  void _mBack()
   {
      digitalWrite(dirA, LOW);
      analogWrite(PWMA, 255);
      digitalWrite(dirB, LOW);
      analogWrite(PWMB, 255);;
    }
    void _mleft()
    {
       digitalWrite(dirA, LOW);
      analogWrite(PWMA, 255);
      digitalWrite(dirB, HIGH);
      analogWrite(PWMB, 255);
      }
void _mright()
{
        digitalWrite(dirA, HIGH);
      analogWrite(PWMA, 255);
      digitalWrite(dirB, LOW);
      analogWrite(PWMB, 255);
  }
  void _mStop()
  {
    digitalWrite(dirA, 0);
      analogWrite(PWMA, 0);
      digitalWrite(dirB, 0);
      analogWrite(PWMB, 0);
    }
    void setup() {
  Serial.begin(9600);
  if (Usb.Init() == -1) {
    Serial.print(F("\r\nOSC did not start"));
    while (1); //halt
  }
  Serial.print(F("\r\nPS3 Bluetooth Library Started"));
  pinMode(PWMA, OUTPUT);
  pinMode(PWMB, OUTPUT);
  pinMode(dirA, OUTPUT);
  pinMode(dirB, OUTPUT); 
   distance = readPing();
}
void loop() {
  Usb.Task();
   int distanceRight = 0;
  int distanceLeft = 0;
   if (PS3.PS3Connected || PS3.PS3NavigationConnected) {
    if (distance <= 20){
    _mStop();
    delay(300);
    _mForward();
    delay(400);
    _mStop();
    delay(300);
  }
  else {
   if (PS3.getButtonPress(RIGHT))
    {
    _mright();
    }
     else if (PS3.getButtonPress(LEFT)) {
     _mleft();
      }
      else if (PS3.getButtonPress(CROSS))
      {
    _mForward();
      }
  else if (PS3.getButtonPress(TRIANGLE))
   {
    _mBack();
  }
 else{
   _mStop(); 
  }
  }
   }
  distance = readPing();
     }
     int readPing(){
  delay(0);
  int cm = sonar.ping_cm();
  if (cm==0){
    cm=250;
  }
  return cm;
   }

problem is i can't merge the 2 codes together without bunch of errors

Please share your attempt at merging them, the errors it caused and a description of what the combined program should do.

(deleted)

The only error I got when I merged the two and compiled for Arduino UNO was the place where "Motor_A_Enable" was mistyped as "Motor_A_Enablae".

#include <NewPing.h>
#include <PS3BT.h>
#include <usbhub.h>
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>


int Motor_A_Enable = 9;
int Motor_A_Reverse = 4;
int Motor_A_Forward = 3;


int Motor_B_Enable = 10;
int Motor_B_Reverse = 7;
int Motor_B_Forward = 12;


void setup() {
  setup1();
  setup2();
}


void loop() {
  loop1();
  loop2();
}




void setup1() {
  // put your setup code here, to run once:
  Serial.begin(38400);


  pinMode(Motor_A_Enable, OUTPUT);
  pinMode(Motor_A_Forward, OUTPUT);
  pinMode(Motor_A_Reverse, OUTPUT);


  pinMode(Motor_B_Enable, OUTPUT);
  pinMode(Motor_B_Forward, OUTPUT);
  pinMode(Motor_B_Reverse, OUTPUT);
}


void loop1() {


  if (Serial.available() > 0)
  {
    char data;
    data = Serial.read();
    Serial.write(Serial.read());


    switch (data)
    {
      case '4': //FORWARD


        //delay(1000);


        digitalWrite(Motor_A_Reverse, LOW);
        digitalWrite(Motor_B_Reverse, LOW);


        digitalWrite(Motor_A_Forward, HIGH);
        digitalWrite(Motor_B_Forward, HIGH);

        for (int a = 0; a < 200; a++)
        {
          analogWrite(Motor_B_Enable, a);
          analogWrite(Motor_A_Enable, a);
          delay(5);
        }


        break;
      case '5': //REVERSE


        //delay(1000);


        digitalWrite(Motor_A_Forward, LOW);
        digitalWrite(Motor_B_Forward, LOW);




        digitalWrite(Motor_A_Reverse, HIGH);
        digitalWrite(Motor_B_Reverse, HIGH);


        for (int a = 0; a < 200; a++)
        {
          analogWrite(Motor_B_Enable, a);
          analogWrite(Motor_A_Enable, a);
          delay(5);
        }




        break;
      case '7': //FORWARD LEFT




        for (int a = 0; a < 255; a++)
        {
          analogWrite(Motor_A_Enable, a);
          //analogWrite(Motor_B_Enable, a);
          delay(5);
        }




        // analogWrite(Motor_A_Enable, 230);
        //analogWrite(Motor_B_Enable, 255);


        digitalWrite(Motor_A_Forward, HIGH);
        //  digitalWrite(Motor_B_Reverse, HIGH);
        digitalWrite(Motor_A_Reverse, LOW);
        //  digitalWrite(Motor_B_Forward, LOW);


        break;
      case '6': //FORWARD RIGHT




        for (int a = 0; a < 255; a++)
        {
          //analogWrite(Motor_A_Enable, a);
          analogWrite(Motor_B_Enable, a);
          delay(5);
        }
        // analogWrite(Motor_A_Enable, 250);
        analogWrite(Motor_B_Enable, 230);




        //  digitalWrite(Motor_A_Reverse, HIGH);
        digitalWrite(Motor_B_Forward, HIGH);
        //  digitalWrite(Motor_A_Forward, LOW);
        digitalWrite(Motor_B_Reverse, LOW);


        break;
      default: //If bluetooth module receives any value not listed above, both motors turn off
        analogWrite(Motor_A_Enable, 0);
        analogWrite(Motor_B_Enable, 0);
    }
  }
}

#define trig_pin A1 //analog input 1
#define echo_pin A2 //analog input 2
#define maximum_distance 200
boolean goesForward = false;
int distance = 100;
NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
USB Usb;
BTD Btd(&Usb);
//PS3BT PS3(&Btd);
PS3BT PS3(&Btd); // This will just create the instance
//PS3BT PS3(&Btd, 0x00, 0x15, 0x83, 0x3D, 0x0A, 0x57); // This will also store the bluetooth address - this can be obtained from the dongle when running the sketch
int const PWMA = 3;
int const PWMB = 5;
int const dirA = 2;
int const dirB = 4;
void _mForward()
{
  digitalWrite(dirA, 255);
  analogWrite(PWMA, HIGH);
  digitalWrite(dirB, 255);
  analogWrite(PWMB, HIGH);
}
void _mBack()
{
  digitalWrite(dirA, LOW);
  analogWrite(PWMA, 255);
  digitalWrite(dirB, LOW);
  analogWrite(PWMB, 255);;
}
void _mleft()
{
  digitalWrite(dirA, LOW);
  analogWrite(PWMA, 255);
  digitalWrite(dirB, HIGH);
  analogWrite(PWMB, 255);
}
void _mright()
{
  digitalWrite(dirA, HIGH);
  analogWrite(PWMA, 255);
  digitalWrite(dirB, LOW);
  analogWrite(PWMB, 255);
}
void _mStop()
{
  digitalWrite(dirA, 0);
  analogWrite(PWMA, 0);
  digitalWrite(dirB, 0);
  analogWrite(PWMB, 0);
}
void setup2() {
  Serial.begin(9600);
  if (Usb.Init() == -1) {
    Serial.print(F("\r\nOSC did not start"));
    while (1); //halt
  }
  Serial.print(F("\r\nPS3 Bluetooth Library Started"));
  pinMode(PWMA, OUTPUT);
  pinMode(PWMB, OUTPUT);
  pinMode(dirA, OUTPUT);
  pinMode(dirB, OUTPUT);
  distance = readPing();
}
void loop2() {
  Usb.Task();
  int distanceRight = 0;
  int distanceLeft = 0;
  if (PS3.PS3Connected || PS3.PS3NavigationConnected) {
    if (distance <= 20) {
      _mStop();
      delay(300);
      _mForward();
      delay(400);
      _mStop();
      delay(300);
    }
    else {
      if (PS3.getButtonPress(RIGHT))
      {
        _mright();
      }
      else if (PS3.getButtonPress(LEFT)) {
        _mleft();
      }
      else if (PS3.getButtonPress(CROSS))
      {
        _mForward();
      }
      else if (PS3.getButtonPress(TRIANGLE))
      {
        _mBack();
      }
      else {
        _mStop();
      }
    }
  }
  distance = readPing();
}
int readPing() {
  delay(0);
  int cm = sonar.ping_cm();
  if (cm == 0) {
    cm = 250;
  }
  return cm;
}

thank you all for replying

thank you johnwasser, you are a life saver .. code working without any errors thanks to you

johnwasser:
The only error I got when I merged the two and compiled for Arduino UNO was the place where "Motor_A_Enable" was mistyped as "Motor_A_Enablae".