Codice funzionamento potenziometro per volante

Ciao, volevo chiedere info su come scrivere il codice per poter utilizzare un potenziometro in modo tale che girando il volante al max nei due sensi acquisti gli stessi valori ma con diverso tasto associato.
Quindi mi servirebbero due variabili, ad esempio per comodità joySt.xRotAxis e joySt.yRotAxis; se giro il volante verso sinistra ottengo il primo, mentre se giro il volante verso destra ottenro il secondo.
Non so se mi sono spiegato bene, comunque allego il codice per la pedaliera e il cambio:

/*
Arduino Leonardo Steering Wheel
*/

//Potentiometer connected with A0 analog input
const int sensorPinA0 = A0;
int sensorValueA0 = 0;
int sensorMinA0 = 1023;
int sensorMaxA0 = 0;

//Potentiometer connected with A1 analog input
const int sensorPinA1 = A1;
int sensorValueA1 = 0;
int sensorMinA1 = 1023;
int sensorMaxA1 = 0;

//Buttons connected with 2,3,4 digital inputs for changing gear and handbrake
const int DownGear = 2;
const int UpGear = 3;
const int HandBrake = 4;

JoyState_t joySt;

void setup()
{
  pinMode(DownGear, INPUT);
  pinMode(UpGear, INPUT);     
  pinMode(HandBrake, INPUT);
  
  Serial.begin(9600);
  Keyboard.begin();

  joySt.xAxis = 0;
  joySt.yAxis = 0;
  joySt.zAxis = 0;
  joySt.xRotAxis = 0;
  joySt.yRotAxis = 0;
  joySt.zRotAxis = 0;
  joySt.throttle = 0;
  joySt.rudder = 0;
  joySt.hatSw1 = 0;
  joySt.hatSw2 = 0;
  joySt.buttons = 0;
}

void loop()
{
  
  //Potentiometer connected with A0 analog input (BRAKE PEDAL)
  sensorValueA0 = analogRead(sensorPinA0);
  if (sensorValueA0 > sensorMaxA0) sensorMaxA0 = sensorValueA0;
  if (sensorValueA0 < sensorMinA0)sensorMinA0 = sensorValueA0;
  sensorValueA0 = map(sensorValueA0, sensorMinA0, sensorMaxA0, 255, 0);
  sensorValueA0 = constrain(sensorValueA0, 0, 255);
  joySt.xAxis = sensorValueA0;
  
  //Potentiometer connected with A1 analog input (ACCELERATION PEDAL)
  sensorValueA1 = analogRead(sensorPinA1);
  if (sensorValueA1 > sensorMaxA1) sensorMaxA1 = sensorValueA1;
  if (sensorValueA1 < sensorMinA1)sensorMinA1 = sensorValueA1;
  sensorValueA1 = map(sensorValueA1, sensorMinA1, sensorMaxA1, 255, 0);
  sensorValueA1 = constrain(sensorValueA1, 0, 255);
  joySt.yAxis = sensorValueA1;
  
  //Buttons connected with 2,3,4 digital inputs for changing gear and handbrake
  if (digitalRead(UpGear) == HIGH) {
      Keyboard.write(48); //K P0 (Ins) numeric keypad
      Keyboard.releaseAll();
      delay(200);
  }
  if (digitalRead(DownGear) == HIGH) {
      Keyboard.write(129); //Left Shift key
      Keyboard.releaseAll();
      delay(200);
  }
  if (digitalRead(HandBrake) == HIGH) {
      Keyboard.write(32); //Space key
      Keyboard.releaseAll();
      delay(200);
  }
  
  // Call Joystick.move
  Joystick.setState(&joySt);
}

Quindi tu hai già certezza di aver a che fare con un solo potenziometro e con una tensione che varia da 0 a 5V?
Se è così dovrebbe essere abbastanza semplice risolvere la cosa.
Mappi i valori da 0 a 511 e li assegni ad una variabile, mentre quelli da 512 a 1023 li assegni ad un’altra variabile, quindi due comandi separati del tipo:

val=analogRead(A0); //leggo il valore analogico
if (val <512) //fino a 511 sto ruotando a sinistra, presumibilmente al centro ho 511 tutto a sx ho 0
     {
       joySt.xRotAxis=map(val,511,0,min, max) //min e max sono i valori che voglio associare per la rotazione a sinistra
     }
else //da 512 sto ruotando a destra, tutto a dx ho 1023
     {
       joySt.yRotAxis=map(val,512,1023,min, max) //min e max sono i valori che voglio associare per la rotazione a destra
     }

Grazie mille :slight_smile:

Figurati ;)