Sujet : Serial.read

Bonjour tout le monde,

j'ai un problème qui est pourtant je pense facile à résoudre mais je n'y arrive pas.... sad
Je veux faire en sorte que ma led s'allume ou s'éteigne en fonction de ce que j'envois sur la liaison série de l'arduino ( si j'envois 1 la led s'éteint et si j'envois 2 la led s'allume) mais je n'y arrive pas, ma led se met à clignoter. Voici mon code et merci d'avance!

int led = 6;

void setup ()
{

  pinMode (led, OUTPUT);
  Serial.begin(9600);
  digitalWrite (led, HIGH);
  digitalWrite(led, HIGH);
}

void loop()
{
  char code;
  while(Serial.available())
  {
    code=Serial.read();
    Serial.println(code);
  }
  if (code=1)
  {
    digitalWrite(led, LOW);
    delay(1000);
  }
  if (code=2)
  {
    digitalWrite(led, HIGH);
    delay(1000);
  }
}

Re : Serial.read

Salut, c'est tout simple dans les testes de condition if tu as mis code=2 et il faut mettre code==2. Si tu met un seul = l'arduino donne la valeur 1 ou 2  à code, d'ou le clignotement de la led.

De plus quand tu envois un nombre via le moniteur série, il y a une conversion de char à décimal. Voir une image de table ascii. Quand tu tape 1 l'arduino reçoit 49.
si tu fais code=(Serial.read()-48); ça devrai marcher.

a+

3

Re : Serial.read

Merci pour ta réponse claire, j'ai résolu le problème grâce à celle ci.
a+