Arduino : écho sur la liaison série

Cette page présente un programme Arduino qui renvoie sur la liaison série série un caractére qui a été envoyé vers la carte. C'est le principe de l'écho série. Un caractére est envoyé par l'utilisateur via l'USB (qui émule une liaison série), l'Arduino lit le caractère et renvoie le même caractère dans l'autre sens (de l'Arduino vers l'utilisateur). Les scripts présentés sur cette page ont été testés avec les versions suivantes (logiciel et matériel):

La carte Seeeduino / Arduino utilisée pour l'écho série

Simple écho

Le code suivant présente la version la plus simple de l'écho :

#define BAUD_RATE   115200

// Setup, initialize 
void setup() 
{
  Serial.begin(BAUD_RATE);  
}

// Loop forever
void loop() 
{
  // Serial data is pending
  if (Serial.available()) 
  { 
    // Echo serial data on serial device
    Serial.write( Serial.read() );
  }  
}

Allume une LED pour chaque transmission

La version suivante allume la LED interne de la carte à chaque fois qu'un caractére est reçu (et transmis) :

#define BAUD_RATE   115200

// Setup, initialize 
void setup() 
{
  Serial.begin(BAUD_RATE);  

  // Initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// Loop forever
void loop() 
{
  // Serial data is pending
  if (Serial.available()) 
  { 
    // Turn built in LED on
    digitalWrite(LED_BUILTIN, HIGH); 

    // Echo serial data on serial device
    Serial.write( Serial.read() );

  // Turn built in LED off
    digitalWrite(LED_BUILTIN, LOW); 
  }  
}

Écho en majuscule

La version suivante est une modification de la précédente, chaque caractère minuscule envoyé vers l'Arduino est transformé en caractère majuscule avant d'être retourné.

#define BAUD_RATE   115200

// Setup, initialize 
void setup() 
{
  Serial.begin(BAUD_RATE);  

  // Initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// Loop forever
void loop() 
{
  // Serial data is pending
  if (Serial.available()) 
  { 
    // Turn built in LED on
    digitalWrite(LED_BUILTIN, HIGH); 
    // Get serial data
    char c=Serial.read();

    // Tranform low case characters to upper case
    if (c>='a' && c<'z') c=c-32;

    // Echo data on serial device
    Serial.write( c );

  // Turn built in LED off
    digitalWrite(LED_BUILTIN, LOW); 
  }  
}

À propos de Seeed Studio

Le matériel présenté sur cette page a été gracieusement offert par Seeed.

Seeed est un fabricant de matériel IoT avec 10 ans d'expérience. Seeed propose une large gamme de matériels, plates-formes, capteur et modules prêts à l'emploi pour différentes plates-formes IoT existantes et un service de production de PCB et assemblage de carte PCB à bas coût. Seeed Studio propose une large sélection de pièces électroniques, pour [Arduino] (https://www.seeedstudio.com/category/Arduino-c-1001.html), [Raspberry Pi] (https://www.seeedstudio.com/Raspberry-pi-c-1010.html) et de nombreuses autres plates-formes. En particulier le system Grove est un système de connecteurs unique qui assure la compatibilité entre différents modules. Seeed Studio a développé plus de 280 modules Grove couvrant une large gamme d'applications qui peuvent répondre à une variété de besoins.

Voir aussi


Dernière mise à jour : 25/12/2019