Bleutooth + Joypad + Map

Ciao a tutti,

ho costruito un piccolo robot con due motori collegati al motor shield L298N. Lo stesso è comandato tramite Tablet interfacciato ad Arduino con HC-06.
Vorri comandarlo con il joypad (virtuale) per intenderci come quello della playstation (due potenziometri) , quindi :
Joypad su : avanza acellerando progressivamente in base alla posizione del joypad;
Joypad giù : indietreggia acellerando progressivamente in base alla posizione del joypad;
Joypad centro : fermo;
Joypad destra/sinistra :stesso concetto del avanza/indietreggia,

// Motore 1
int dir1PinA = 3;
int dir2PinA = 5;

// Motore 2
int dir1PinB = 9;
int dir2PinB = 11;
int velocita = analogRead(dir1PinA);
int speed1;
int speed2;
char BluetoothDataX;
char BluetoothDataY;
void setup() {  
  // initialize serial communication @ 9600 baud:
  Serial.begin(9600);

  //Definisce il pins del L298N Dual H-Bridge Motor Controller

  pinMode(dir1PinA, OUTPUT);
  pinMode(dir2PinA, OUTPUT);
 
  pinMode(dir1PinB, OUTPUT);
  pinMode(dir2PinB, OUTPUT);



}

void loop () {


if (Serial.available()){
    BluetoothDataX=Serial.read(); 
    switch (BluetoothDataX) {

    

        case 'X': //AVANTI e DIETRO
        BluetoothDataX = Serial.parseInt();
        if (BluetoothDataX >= 120 && BluetoothDataX <= 220 )
        {
          speed1 = map(BluetoothDataX, 120 , 220 , 0 , 255);
           digitalWrite(dir1PinA, LOW);
           analogWrite(dir2PinA, speed1);
           digitalWrite(dir1PinB, LOW);
           analogWrite(dir2PinB, speed1);
         }
        if (BluetoothDataX >=0 && BluetoothDataX <=100 )
        {
          speed1 = map(BluetoothDataX,0 , 100 , 255 , 0);
          digitalWrite(dir2PinA, LOW);
           analogWrite(dir1PinA, speed1);
            digitalWrite(dir2PinB, LOW);
           analogWrite(dir1PinB, speed1);
        }
        
        break;

  //  case 'Y': //SINISTRA DESTRA
 //       digitalWrite(dir1PinA, low);
//        analogWrite(dir2PinA, 120);
//        digitalWrite(dir1PinB, LOW);
//        analogWrite(dir2PinB, 255);
     
  //      break;  
         
       
    }
  
  }
 }

il programma non è ancora completo. Dal codice che ho scritto ho provato a farlo andare e in avanti funziona bene, mentre non indietraggia affatto e non capisco dove sto sbagliando. I valore del Joypad virtuale, che ho poi mappato sui Pin interessati va da 0 a 200.

Spero di essere stato chiaro e vi ringrazio anticipatamente per il prezioso supporto.

Nessun aiuto?

Grazie 1000 in anticipo.

pangiagio:
Nessun aiuto?
Grazie 1000.

Premesso che qui NESSUNO è obbligato ad aiutarti e che tu NON puoi pretendere aiuto ... lo scrivere "Grazie 1000" indispone solo chi legge e, magari, anche chi ti voleva aiutare non lo fa più.

Detto questo, il consiglio che ti do è mettere delle Serial.print() così da visualizzare cosa veramente è arrivato dentro a BluetoothDataX e mettere un paio di Serial.print() anche nei due IF per verificare se veramente ci entra ...
... insomma, fare un po' di DEBUG per individuare dove è realmente il problema.

Guglielmo

Ti sbagli non volevo indisporre nessuno e non pretendo niente. "Grazie 1000" era solo un modo cordiale rivolto in anticipo a chi mi volesse aiutare.Niente più!
A scanso di equivoci ho corretto il post.

Buona serata

pangiagio:
A scanso di equivoci ho corretto il post.

Hai fatto bene ... così il senso è più chiaro e non da adito a cattive interpretazioni.

Fai le Serial.print() che ti ho suggerito e fai sapere i risultati ...

Guglielmo