Arduino Mega 2560 + nrf8001 + pololu qik 2s9v1

Bonjour,
J'essaie actuellement d'utiliser un module Bluetooth pour contrôler 2 moteurs via une carte moteur pololu qik 2s9v1.

J'arrive sans problème a utiliser chacune des deux cartes séparément, mais impossible d'interfacé les deux ensemble.
Après plusieurs essais et des recherches j'en suis arrivé à la conclusion que les échanges entre l'arduino et les deux cartes entraient en conflit, mais n'ai malheureusement trouvé aucune solution....

Si quelqu'un sait comment me débloqué je lui en serait extrêmement reconnaissant!.

#include <Servo.h>
#include <NewPing.h>
#include <PololuQik.h>
#include <SPI.h>
#include "Adafruit_BLE_UART.h"
#include <SoftwareSerial.h>

char a[] = "Device ID";
char b[] = "PWM Parameter";
char c[] = "Shut Down Motors on Error";
char d[] = "Serial Timeout";
char* param_names[] = {a, b, c, d};
/*
cablage: M0 = moteur droit
M1 = moteur gauche
RX = pin 13
TX = pin 9
RST = pin 11

Servo = pin 2

sck = 52
miso = 50
mosi = 51
req = 48
rdy = 2
rst = 47

*/

Adafruit_BLE_UART BTLEserial = Adafruit_BLE_UART(48, 2, 47);
PololuQik2s9v1 qik(12, 13, 11);
aci_evt_opcode_t laststatus = ACI_EVT_DISCONNECTED;

//-------------------------------------------------------
//-------------------------------------------------------

void setConfigShowResult(uint8_t parameter, uint8_t value)
{
Serial.print("Setting ");
Serial.print(param_names[parameter]);
Serial.print(" to ");
Serial.print(value);

byte result = qik.setConfigurationParameter(parameter, value);

switch (result)
{
case 0:
Serial.println(": Command OK");
break;

case 1:
Serial.println(": Bad parameter");
break;

case 2:
Serial.println(": Bad value");
break;
}
}

//-------------------------------------------------------

void RotCentre (int s) { // v>0 = Rotation vers la droite
qik.setSpeeds(s, -s); // v<0 = Rotation vers la gauche
delay(250);
}
void RotDroite (int s) {
qik.setSpeeds(0, s);
delay(500);
}
void RotGauche (int s) {
qik.setSpeeds(s, 0);
delay(500);
}

//-------------------------------------------------------
//-------------------------------------------------------

void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("qik 2s9v1 dual serial motor controller");

qik.init();

Serial.print("Firmware version: ");
Serial.write(qik.getFirmwareVersion());
Serial.println();
// Leonardo/Micro should wait for serial init
Serial.println(F("CATAPULT ALPHA"));
BTLEserial.setDeviceName("RobCata"); /* 7 characters max! */
BTLEserial.begin(9600);

Serial.println("f");

}

//-------------------------------------------------------

void loop() {
char li[20];
BTLEserial.pollACI();
aci_evt_opcode_t status = BTLEserial.getState();
if (status != laststatus) {
if (status == ACI_EVT_DEVICE_STARTED) {
Serial.println(F("* Advertising started"));
}
if (status == ACI_EVT_CONNECTED) {
Serial.println(F("* Connected!"));
}
if (status == ACI_EVT_DISCONNECTED) {
Serial.println(F("* Disconnected or advertising timed out"));
}
laststatus = status;
}
if (status == ACI_EVT_CONNECTED) {
int k;
if (BTLEserial.available()) {
Serial.print("* "); Serial.print(BTLEserial.available()); Serial.println(F(" bytes available from BTLE"));
int i = 0;
while (BTLEserial.available()) {
char e = BTLEserial.read();
li = e;

  • Serial.print(e);*
  • i = i + 1;*
  • k=i;*
  • }*
  • }else {*
  • for (int j=0; j<= k; j++){*
  • if(li[j]=97)*
  • Serial.println("wi!!!");*
  • qik.setM0Speed(50);*
  • delay(2000);*
  • qik.setM0Speed(0); *
  • }*
  • }*
  • }*
    }[/quote]