PS4 controlled car project

Hi
So, I have a project in school where we want to combine an old RC car with parts of a softgun riffle, so basicly we'll end up with a tank. We want to use a PS4 controller as remote. We are using the following hardware:

  • Dualshock 4 controller
  • USB host shield
  • Arduino UNO
  • CSR 4.0 BT dongle
    The code is the latest version of the USB host shield 2.0 library / PS4BT

I'm currently in the early stages of programming and still getting the hang of it, but i can't figure out how to do anything else than printing the inputs in the serial monitor. I've tried connecting a yellow LED on pin 12 and writing the digitalWrite(ledYellow, LOW);, and right after uploading the program, the LED just stays on. When I insert the BT dongle in the host shield, the LED turns off shortly, and then back on a little brighter than before. After connecting the controller, no mater what button I press the LED light just drops slightly for a few milliseconds, but it's stays on. Also, the PS4.setRumbleOn(RumbleLow) and PS4.setRumbleOn(RumbleHigh) and all the blinking and color changing of the controllers LED doesn't do anything at all. What am I doing wrong? I have the code down below
I really appreciate all the help I can get, so thank you!

EDIT: I am trying to use a Mega ADK instead of the UNO because of more pins and space, but the PS4 controller won't even connect, why is this?? I am using the same code, and I changed the board in the "Tools" menu.

#include <PS4BT.h>
#include <usbhub.h>

// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>

USB Usb;
//USBHub Hub1(&Usb); // Some dongles have a hub inside
BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so

/* You can create the instance of the PS4BT class in two ways */
// This will start an inquiry and then pair with the PS4 controller - you only have to do this once
// You will need to hold down the PS and Share button at the same time, the PS4 controller will then start to blink rapidly indicating that it is in pairing mode
PS4BT PS4(&Btd, PAIR);

// After that you can simply create the instance like so and then press the PS button on the device
//PS4BT PS4(&Btd);

bool printAngle, printTouch;
uint8_t oldL2Value, oldR2Value;
const int ledYellow = 12;

void setup() {
Serial.begin(115200);
#if !defined(MIPSEL)
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
if (Usb.Init() == -1) {
Serial.print(F("\r\nOSC did not start"));
while (1); // Halt
}
Serial.print(F("\r\nPS4 Bluetooth Library Started"));
pinMode(ledYellow, OUTPUT);

}
void loop() {
Usb.Task();

if (PS4.connected()) {
if (PS4.getAnalogHat(LeftHatX) > 137 || PS4.getAnalogHat(LeftHatX) < 117 || PS4.getAnalogHat(LeftHatY) > 137 || PS4.getAnalogHat(LeftHatY) < 117 || PS4.getAnalogHat(RightHatX) > 137 || PS4.getAnalogHat(RightHatX) < 117 || PS4.getAnalogHat(RightHatY) > 137 || PS4.getAnalogHat(RightHatY) < 117) {
Serial.print(F("\r\nLeftHatX: "));
Serial.print(PS4.getAnalogHat(LeftHatX));
Serial.print(F("\tLeftHatY: "));
Serial.print(PS4.getAnalogHat(LeftHatY));
Serial.print(F("\tRightHatX: "));
Serial.print(PS4.getAnalogHat(RightHatX));
Serial.print(F("\tRightHatY: "));
Serial.print(PS4.getAnalogHat(RightHatY));
}

if (PS4.getAnalogButton(L2) || PS4.getAnalogButton(R2)) { // These are the only analog buttons on the PS4 controller
  Serial.print(F("\r\nL2: "));
  Serial.print(PS4.getAnalogButton(L2));
  Serial.print(F("\tR2: "));
  Serial.print(PS4.getAnalogButton(R2));
}
if (PS4.getAnalogButton(L2) != oldL2Value || PS4.getAnalogButton(R2) != oldR2Value) // Only write value if it's different
  PS4.setRumbleOn(PS4.getAnalogButton(L2), PS4.getAnalogButton(R2));
oldL2Value = PS4.getAnalogButton(L2);
oldR2Value = PS4.getAnalogButton(R2);

if (PS4.getButtonClick(PS)) {
  Serial.print(F("\r\nPS"));
  PS4.disconnect();
}
else {
  if (PS4.getButtonClick(TRIANGLE)) {
    Serial.print(F("\r\nTriangle"));  
    PS4.setRumbleOn(RumbleLow);
     digitalWrite(ledYellow, HIGH);
  }
  if (PS4.getButtonClick(CIRCLE)) {
    Serial.print(F("\r\nCircle"));
    PS4.setRumbleOn(RumbleHigh);
  }
  if (PS4.getButtonClick(CROSS)) {
    Serial.print(F("\r\nCross"));
    PS4.setLedFlash(10, 10); // Set it to blink rapidly
  }
  if (PS4.getButtonClick(SQUARE)) {
    Serial.print(F("\r\nSquare"));
    PS4.setLedFlash(0, 0); // Turn off blinking
  }

  if (PS4.getButtonClick(UP)) {
    Serial.print(F("\r\nUp"));
    PS4.setLed(Red);
  } if (PS4.getButtonClick(RIGHT)) {
    Serial.print(F("\r\nRight"));
    PS4.setLed(Blue);
  } if (PS4.getButtonClick(DOWN)) {
    Serial.print(F("\r\nDown"));
    PS4.setLed(Yellow);
  } if (PS4.getButtonClick(LEFT)) {
    Serial.print(F("\r\nLeft"));
    PS4.setLed(Green);
  }

  if (PS4.getButtonClick(L1))
    Serial.print(F("\r\nL1"));
  if (PS4.getButtonClick(L3))
    Serial.print(F("\r\nL3"));
  if (PS4.getButtonClick(R1))
    Serial.print(F("\r\nR1"));
  if (PS4.getButtonClick(R3))
    Serial.print(F("\r\nR3"));

  if (PS4.getButtonClick(SHARE))
    Serial.print(F("\r\nShare"));
  if (PS4.getButtonClick(OPTIONS)) {
    Serial.print(F("\r\nOptions"));
    printAngle = !printAngle;
  }
  if (PS4.getButtonClick(TOUCHPAD)) {
    Serial.print(F("\r\nTouchpad"));
    printTouch = !printTouch;
  }

  if (printAngle) { // Print angle calculated using the accelerometer only
    Serial.print(F("\r\nPitch: "));
    Serial.print(PS4.getAngle(Pitch));
    Serial.print(F("\tRoll: "));
    Serial.print(PS4.getAngle(Roll));
  }

  if (printTouch) { // Print the x, y coordinates of the touchpad
    if (PS4.isTouching(0) || PS4.isTouching(1)) // Print newline and carriage return if any of the fingers are touching the touchpad
      Serial.print(F("\r\n"));
    for (uint8_t i = 0; i < 2; i++) { // The touchpad track two fingers
      if (PS4.isTouching(i)) { // Print the position of the finger if it is touching the touchpad
        Serial.print(F("X")); Serial.print(i + 1); Serial.print(F(": "));
        Serial.print(PS4.getX(i));
        Serial.print(F("\tY")); Serial.print(i + 1); Serial.print(F(": "));
        Serial.print(PS4.getY(i));
        Serial.print(F("\t"));
      }
    }
  }
}

}
}

Use a different pin for the LED. Pin 12 is used by the USB host shield.

Ok, got it on pin 7 now and working. Thank you. Tried some different pins, but I figured I can't use any of the pins from 8 - 13 when using a USB host shield, is that correct?