Routage d'effet audio contrôlé par un Arduino Nano

Tu veux discriminer 3 états différents 0, 3,3V et 5V. Donc il ne faut pas faire

mais plutôt
CH1_State = analoglRead(CH1);
et ensuite faire les tests sur trois fourchettes de valeurs.
Sur l'arduino la référence de tension de l'ADC est à 5V et le résultat de la conversion analogique numérique est compris entre 0 et 511 avec 0 pour 0V en entrée et 511 pour 5V en entrée.
Donc, pour tenir compte du bruit sur les signaux, des erreurs intrinsèques de l'ADC:
Si analogRead() retourne

  • une valeur < à 50 cela correspond à l'entrée à 0V.
  • une valeur comprise entre 300 et 350 cela correspond à l'entrée à 3,3V.
  • une valeur supérieure à 450 cela correspond à l'entrée à 5V.

En reprenant ta spécification

Le code donnerait

CH1_State = analogRead(CH1);
if (CH1_State < 50){
   CH1_FX1= 0;
  CH1_FX2=0;
} else if (CH1_State > 300 && CH1_State < 350){
   CH1_FX1= 1;
   CH1_FX2=0;
} else if (CH1_State > 450){
   CH1_FX1= 0;
   CH1_FX2=1;
}

Edit: mais pourquoi je suis parti sur un codage sur 9 bits???
5V = 1023.
Toutes les valeurs sont à multiplier par 2.