Problème de calcul

Bonjour,

J'ai branché un potentiometre de 10k sur l'entrée analogique 2 et j'ai un souci avec le code suivant :

void loop(){
  int iRead = 0;
  Serial.print("potentiometer getValue ");
  iRead = analogRead(2);
  Serial.print(iRead,DEC);
  Serial.print(" ");
  long inter = iRead * 270;
  long inter2 = 1023 -iRead;
  float inter3 = inter / inter2;
  Serial.print(inter,DEC);
  Serial.print(" ");
  Serial.print(inter2,DEC);
  Serial.print(" ");
  Serial.println(inter3, DEC);
  Serial.println();
  delay(1000);
}

Le problème est que la la variable inter me retourne une valeur négative alors que iRead = 663

Merci d'avance de vos réponses

Comment celà ce fait il? comment 663 * 270 peut donner un négatif?

Bonjour,
il faut faire un "cast" sur ta valeur avant l'affectation :

long inter = (long) iRead * 270;

Ok donc pas de conversion implicite durant le calcul d'où le petit souci :slight_smile:
Merci !

En fait ton écriture demande le produit de 2 entiers et la conversion du résultat en long. Pour que la multiplication se fasse sur des long, il faut qu'un des opérateurs soit lui même un long