Programme caractère_reçu arduino

Bonjour j'aimerais que dans le terminal j'ai le caractère que j'envoie aparaisse dans le terminal avec le code ascii mon code ressemble à ceci *

int ascii=0 ;
char cacca= 0;
void setup (){
Serial.begin (9600);

}
void loop () {

if (Serial.available()>0)
ascii = Serial.read();

Serial.print (ascii);
delay (1000);
}

Bienvenue

Si tu veux afficher un caractère il faut convertir le résultat de Serial.read en char

Par exemple

if ( Serial.available() )
{
  int8_t c = Serial.read();
  Serial.print( "caractere: '" );
  Serial.print( (char)c );
  Serial.print( "' code: " );
  Serial.println( c );
}

Bien sûr tu peux aussi utiliser une variable de type char..

if ( Serial.available() )
{
  char c = Serial.read();
  Serial.print( "caractere: '" );
  Serial.print( c );
  Serial.print( "' code: " );
  Serial.println( (int8_t)c );
}

Bonjour merci j'ai réussie à faire quelque chose mais je dois maintenant allumer et éteindre une led avec mon clavier . est ce que je doit prendre le ascii de ma touche v et l'utiliser pour allumer et r pour eteindre

int ascii=0 ;
char cacca= 0;
 
 void setup (){
 Serial.begin (9600);

 }
 void loop () {

  if (Serial.available()>0){
  ascii = Serial.read();
   
    Serial.print ("le caractere recu : ");
  cacca= char(ascii);
 Serial.println (cacca);
 
 Serial.print("le code ascii du caractere : "); 
  Serial.println (ascii);

  
  delay (1000);
  }
 }

commencez par simplifier votre code (deux déclaration de cacca qui sont toutes les deux inutiles)

un test se fait tout simplement en comparant avec le caractère
(j'ai mis la console à 115200 bauds)

void setup () {
  Serial.begin(115200); // pas la peine d'aller lentement...
}

void loop () {
  if (Serial.available() != 0) {
    char ascii = Serial.read();
    Serial.print(F("le caractere recu : ")); Serial.println(ascii);
    if (ascii == 'v') {
      // on a reçu le caractère 'v'
    } else {
      // on a reçu autre chose
    }
  }
}

comme Serial.read retourne -1 quand il n'y a rien à lire, on peut aussi enlever le premier test et si vous avez plusieurs commandes possibles un switch/case est pratique

void setup () {
  Serial.begin(115200);
}

void loop () {
  int ascii = Serial.read();  // -1 s'il n'y a rien à lire
  switch (ascii) {
    case 'v':       // on a reçu le caractère 'v'
      // ...
      break;

    case 'x':       // on a reçu le caractère 'x'
      // ...
      break;

    default:        // on a reçu autre chose
      // ...
      break;
  }
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.