Fonction pour Joystick

Bonjour à toutes et à tous,

Je souhaiterais avoir une explication sur la fonction utilisée dans ce tuto : https://www.arduino.cc/en/Tutorial/JoyStick

 int treatValue(int data) {
  return (data * 9 / 1024) + 48;
 }

Je comprends son utilité, mais je n'arrive pas à comprendre pourquoi "*9" et "+48" et c'est en train de me rendre fou :confused:

Merci d'avance à ceux qui auront la patience d'expliquer cela à un newbie

Boofbic

The following code includes a method called treatValue() that is transforming the sensor's messurement into a value between 0 and 9 and sends it in ASCII back to the computer. This allows to easily send the information into e.g. Flash and parse it inside your own code.

Le code suivant inclut une méthode appelée treatValue () qui transforme la messagerie du capteur en une valeur comprise entre 0 et 9 et l'envoie en ASCII à l'ordinateur. Ceci permet d'envoyer facilement l'information par ex. Flash et analyser dans votre propre code.

Bonjour,

C’est supposé faire la conversion de 0 à 1023 en un chiffre de 0 à 9 puis faire la conversion en ASCII pour la transmission.
Il aurait été plus clair de faire

 return (data * 9 / 1024) + '0';

Cependant ce programme ne fonctionne pas correctement puisqu’il fait une fois la conversion en ASCII dans treatValue() et la fonction Serial.print() fait une nouvelle fois la conversion en ASCII ce qui donne n’importe quoi.
Donc il ne faut pas faire la conversion en ASCII dans treatValue()

int treatValue(int data) {
  return data * 9 / 1024;
 }

D'ailleurs je viens de voir une autre erreur dans ce programme il ne faut pas multiplier par 9, mais par 10 si on veut avoir une chiffre de 0 à 9

int treatValue(int data) {
  return data * 10 / 1024;
 }

Merci beaucoup d'avoir pris le temps de me répondre !

C'est dommage d'avoir sur le site un tuto foireux