HC-05: RX-TX LEVEL 3.3v: résistance?

Allez, dernier épisode?

J'ai ajouté une commande depuis mon smartphone en bluetooth pour changer la variable VitMax.

J'ai ajouté des gros delay() pour voir ce que dit le moniteur série:

110 <- ca c'est VitMax avant la commande bluetooth
110
110
110
110
110
BlueData = 11 <----- en effet j'envoie bien '11' avec mon telephone
BlueData = 00 <---- ça je sais pas
BlueData = -35221 <-- ça non plus et il met un peu de temps à le construire
BlueData = -38218 <-- la même
218 <----on retrouve la variable VitMax qui devrait faire 11
218
218

Je joins le code:
Comme c'est en développement, il y a encore des petits bouts que je n'ai pas supprimés, ça permet de revenir en arrière si un problème survient:

//Bluetooth
#include<SoftwareSerial.h>
#define TxD 3
#define RxD 2
int BlueData;
SoftwareSerial bluetoothSerial(TxD, RxD);

//L293d, définition des pins
#define E1 9     // PWM 1  /noir
#define E2 10    // PWM 2  /blanc
#define I1 12    // 1 a    /vert
#define I2 4     // 1 b    /bleu
#define I3 7     // 2 a    /mauve
#define I4 8     // 2 b    /gris

//Variables moteurs
byte VitMax = 110;   // bride PWM 0-255
byte Vitmin = 0;
byte VitG = 70;     // vitesse au départ moteur gauche <VitMax
byte VitD = 70;     // vitesse au départ moteur droit  <VitMax


//Définition des pins de capteurs IR GG-GC-CC-CD-DD
#define IR0 15  // capteur IR GG sur A0
#define IR1 16  // capteur IR GC sur A1
#define IR2 17  // capteur IR CC sur A2
#define IR3 18  // capteur IR CD sur A3
#define IR4 19  // capteur IR DD sur A4

int LastDir; //stocke la dernière direction lue valide -1/0/1
int B=0; //switcher


//************************************************

void setup() {
  bluetoothSerial.begin(9600);

  Serial.begin(9600);

  //Mode des pins du L293d
  pinMode(E1, OUTPUT);
  pinMode(E2, OUTPUT);
  pinMode(I1, OUTPUT);
  pinMode(I2, OUTPUT);
  pinMode(I3, OUTPUT);
  pinMode(I4, OUTPUT);



}//fin de setup
//************************************************


void loop() {
  
//bluetooth
if(bluetoothSerial.available()){
BlueData = bluetoothSerial.read() - '0';
Serial.print("BlueData = ");
Serial.print(BlueData);
VitMax = BlueData;
delay(1500);
}
delay(1000);

  Serial.println(VitMax);
  
  CreerB();
  Switcher();
  MarcheAvant();
}
//************************************************


int CreerB() {//change Err en fonction des capteurs
  boolean b0, b1, b2, b3, b4;
  //Construire un bit avec les booléens du tableau
  b0 = (digitalRead(IR0) == HIGH);
  b1 = (digitalRead(IR1) == HIGH);
  b2 = (digitalRead(IR2) == HIGH);
  b3 = (digitalRead(IR3) == HIGH);
  b4 = (digitalRead(IR4) == HIGH);
  B = 0;

  B = (b4 ? B10000 : B0) | (b3 ? B1000 : B0) | (b2 ? B100 : B0) | (b1 ? B10 : B0) | (b0 ? B1 : B0) ;
}

void Switcher() {

  // Retranscrire sous la forme B00000
  //Serial.print(F("B"));
  //for (int8_t aBit = 4; aBit >= 0; aBit--)
  // Serial.print(bitRead(B, aBit) == 0 ? F("0") : F("1"); //

  switch (B) {
    case 27://11011
      VitD = VitMax;
      VitG = VitMax;
      LastDir = 0;
      break;
    //vers la gauche
    case 25://11001
      VitD = VitMax;
      VitG = VitMax * 0.85;
      //LastDir = -1;
      break;
    case 29://11101
      VitD = VitMax;
      VitG = VitMax * 0.5;
      LastDir = -1;
      break;
    case 28://11100
      VitD = VitMax * 0.75;
      VitG = VitMax * 0.25;
      LastDir = -1;
      break;
    case 30://11110
      VitD = VitMax * 0.5;
      VitG = 0;
      LastDir = -1;
      break;
    //vers la droite
    case 19:
      VitD = VitMax * 0.85;
      VitG = VitMax;
      //LastDir = 1;
      break;
    case 23:
      VitD = VitMax * 0.5;
      VitG = VitMax;
      LastDir = 1;
    case 7:
      VitD = Vitmin * 0.25;
      VitG = VitMax * 0.75;
      LastDir = 1;
      break;
    case 15:
      VitD = 0;
      VitG = VitMax * 0.5;
      LastDir = 1;
      break;

    case 3: //angle droit à D
      VitD = 0;
      VitG = VitMax * 0.25;
      LastDir = 1;
      break;

    case 24: //angle droit à G
      VitD = VitMax * 0.25;
      VitG = 0;
      LastDir = -1;
      break;

    case 31: //tout blanc
      ImLost(LastDir);
      break;

  }//fin de switch
}//fin de Switcher()


//************************************************

void MarcheAvant() {
  //marche avant
  digitalWrite(I1, HIGH);  //Av D
  digitalWrite(I2, LOW);   //Ar D
  digitalWrite(I3, HIGH);  //Av G
  digitalWrite(I4, LOW);   //Ar G}

  digitalWrite(E1, VitD);
  digitalWrite(E2, VitG);

 }//fin de MarcheAvant
//************************************************

void ImLost(int dir) {
  digitalWrite(E2, 0);
  digitalWrite(E1, 0);

  switch (dir) {
    case -1: //pivoter gauche

      digitalWrite(E1, 60);
      break;
    case 1:

      digitalWrite(E2, 60);
      break;
    case 0:
      digitalWrite(I1, LOW);  //Av D
      digitalWrite(I2, HIGH);   //Ar D
      digitalWrite(I3, HIGH);  //Av G
      digitalWrite(I4, LOW);   //Ar G
      digitalWrite(E2, 60);
      digitalWrite(E1, 60);
      break;
  }
  while (B==31){
    CreerB();
    Serial.println(B);
  }
}

Donc ma question est: mais qu'est-ce qu'il fout? C'est quoi ces deux nombres étranges qui apparaissent, et qu'est-ce qui s'ajoute à ma variable???