Pedales y volante para simulador de carreras de autos con Arduino Leonardo

Hola! Soy nueva en esto, así que sepan disculpar si escogí mal la temática para realizar la publicación, pero estaría necesitando ayuda con mi proyecto: un volante, dos pedales (acelerador y freno) y dos botones (subir marcha y bajar marcha) hechos con potenciómetros (a excepción de los botones de las marchas, que están hechos con pulsadores), y utilizando una placa Arduino Leonardo para realizar la comunicación con la computadora. Todo ello para crear un volante con pedales y cambios para un simulador de carreras.
Estoy usando el Assetto Corsa como juego, conecté la placa junto con los potenciómetros y los pulsadores, utilicé la librería ArduinoJoystick (adjunto link: ArduinoJoystick library) de GitHub e hice el siguiente código:

#include <Joystick.h>

const int pedalAceleradorPin = A0; // Potenciómetro para el acelerador
const int pedalFrenoPin = A1;      // Potenciómetro para el freno
const int volantePotPin = A3;      // Potenciómetro para el volante

int valorInicialVolante = 511;     // Punto medio (se ajustará en setup)

// Constant that maps the phyical pin to the joystick button.
const int pinToButtonMap = 9;

// Last state of the button
int lastButtonState[4] = {0,0,0,0};

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

  pinMode(9, INPUT_PULLUP);
  pinMode(10, INPUT_PULLUP);
  pinMode(11, INPUT_PULLUP);
  pinMode(12, INPUT_PULLUP);

  // Inicializar el joystick
  Joystick.begin();
  
  // Leer el valor inicial del potenciómetro del volante y guardarlo como referencia de centro
  valorInicialVolante = analogRead(volantePotPin);
}

void loop() {

  freno();
  acelerador();
  volante();

  // Read pin values
  for (int index = 0; index < 4; index++)
  {
    int currentButtonState = !digitalRead(index + pinToButtonMap);
    if (currentButtonState != lastButtonState[index])
    {
      Joystick.setButton(index, currentButtonState);
      lastButtonState[index] = currentButtonState;
    }
  }

  delay(100); // Pequeño retraso para estabilidad
}

void freno(){
      // Leer el valor del freno (0-1023)
  int valorFreno = analogRead(pedalFrenoPin);
  int valorFrenoMapped = map(valorFreno, 0, 1023, 0, 255);
  Joystick.setZAxis(valorFrenoMapped);          // Freno
}

void acelerador(){
      // Leer el valor del acelerador (0-1023)
  int valorAcelerador = analogRead(pedalAceleradorPin);
  int valorAceleradorMapped = map(valorAcelerador, 0, 1023, 0, 255);
  Joystick.setThrottle(valorAceleradorMapped);  // Acelerador  
}

void volante(){
      // Leer el valor del volante
  int valorVolante = analogRead(volantePotPin);
  int valorAjustado = valorVolante - valorInicialVolante;
  
      // Mapear el valor ajustado al rango de 0 a 255 para el joystick
  int valorVolanteMapped = map(valorVolante, 0, 1023, 0, 255);
  Joystick.setXAxis(valorVolanteMapped);        // Volante
}

Luego abro el juego, configuro los controles y empiezo a jugar. Al principio andaba todo bien, pero luego de unas horas empezó a fallar. El volante no doblaba o a veces cuando aceleraba se activaban de forma repentina otros controles, por ejemplo el freno. Luego de seguir intentando y probar repetidas veces, los controles en el juego ya ni siquiera responden.
Para verificar que no sean errores de mapeo o de mis potenciómetros le agregué un monitor serial al código (no es el que subí anteriormente, lo hice aparte) para poder ver los valores en los que estaba trabajando y me dan todos bien, sin fallas. También probé utilizar otro puerto USB y pasa lo mismo, al principio anda bien y luego falla hasta dejar de responder completamente en el juego.
¿Alguien sabe si es error del juego o de código o de qué?, porque ya no se de dónde puede venir este problema ni como solucionarlo. Desde ya, muchas gracias.

Muestre un dibujo de sus dispositivos. ¿Qué está utilizando como fuente de alimentación? Es posible que hayas destruido dos puertos USB.

Estoy usando los 5V de la placa, conectada a la computadora, ninguna fuente de alimentación externa. Probé utilizar otros dispositivos en el puerto USB como mouse y teclado y me funcionan bien. No se mucho sobre computadoras pero podría ser que se haya quemado algo específico del puerto que necesita la placa?

He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español @catalina_more_9 .

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

Moderador
@ catalina_more_9 si posteas en el foro en inglés debes usar ese idioma.
Si usas español debes hacerlo aquí en el foro Internacional -> Español
No lo olvides!!

Moderador
Que es esto? mismo tema diferente persona

Es mi compañera de proyecto quien realizó esa publicación. Somos nuevas en el foro y no sabíamos que no podíamos realizar dos publicaciones del mismo tema. Le pedimos sinceras disculpas.

Una consulta, si tomas un ejemplo de la librería, el que mas se acerque a lo que Uds necesitan, tmb se cuelga al tiempo de usarlo?

Probamos el modo test de la librería, que es para probar todas las funciones del juego y anda perfecto. Luego utilizamos parte de ese código para probarlo con nuestros potenciómetros, y suceden dos cosas: Si probamos cada potenciómetro por separado funciona correctamente. Pero si probamos los tres potenciómetros juntos (acelerador, freno y volante) los controles vuelven a fallar y deja de poder jugarse como corresponde.

En cuanto tiempo falla, muy rápidamente?
No entiendo como individualmente trabaja bien y cuando pones 3 falla.
cuando lo haces individualmente usas estas funciones?

Joystick.setZAxis(valorFrenoMapped);  
Joystick.setThrottle(valorAceleradorMapped);  // Acelerador 
Joystick.setXAxis(valorVolanteMapped);        // Volante

¿Qué tipo de potenciómetro estas usando y como lo conectas?