Communication

Il est possible de communiquer avec l'Arduino via le câble USB.

Pour cela, nous devons le lui indiquer avec l'instruction Serial.begin(9600).

Ce qui signifie que l'on établie une communication série à la vitesse de 9600 bits par seconde.

1
void setup(){
2
  // Ouverture de la communication série
3
  Serial.begin(9600);
4
  Serial.print("Bonjour");
5
}
6
7
void loop(){
8
  // programme appelé en boucle
9
}

Serial est ce que l'on appelle un objet. C'est une entité à laquelle on pourra demander de faire différentes actions (méthodes).

1
Serial.begin(9600);         // ouvrir une communication
2
Serial.print("Bonjour");    // retourner un texte
3
Serial.println("Bonjour");  // retourner un texte et un passage à la ligne
4
Serial.available();         // indique le nombre de caractères reçu par arduino
5
Serial.read();              // Chaque appel de read récupère un caractère envoyé

Le texte retourné par la communication s'affiche dans le moniteur série de nos éditeurs.

Sur tinkercad vous devez cliquer sur Moniteur série dans la fenêtre de code.

Définitionprint, println

1
int i = 0;
2
3
void setup(){
4
  // Ouverture de la communication série
5
  Serial.begin(9600);
6
  Serial.println("Bonjour");
7
}
8
9
void loop(){
10
  // programme appelé en boucle
11
  i = i + 1;                    // i augment de 1 à chaque tour de boucle;
12
  Serial.print("compteur : ");  
13
  Serial.println(i);            // affiche i et passe à la ligne
14
  delay(1000);                  // attend 1 seconde
15
}

Définitionavailable, read, parseInt

Sur Tinkercad vous pouvez envoyer des données via la zone de saisie en bas du moniteur série.

Tapez votre texte et cliquez sur Envoyer.

1
2
3
void setup(){
4
  // Ouverture de la communication série
5
  Serial.begin(9600);
6
  Serial.println("Bonjour");
7
}
8
9
void loop(){
10
  // programme appelé en boucle
11
  if (Serial.available() > 0) {   // il y a au moins un caractère en attente
12
    char car = Serial.read();     // on récupére un caractère. Au prochain tour le suivant
13
14
    Serial.print("Caractère : ");
15
    Serial.println(car);          // retourne le caratère au moniteur
16
  }
17
}

Pour récupérer des nombres : Serial.parseInt()

1
void setup(){
2
  // Ouverture de la communication série
3
  Serial.begin(9600);
4
  Serial.println("Bonjour");
5
}
6
7
void loop(){
8
  // programme appelé en boucle
9
  if (Serial.available() > 0) {      // il y a au moins un caractère en attente
10
    int nombre = Serial.parseInt();  // on récupére un nombre
11
12
    Serial.print("Nombre : ");
13
    Serial.println(nombre);          // retourne le caratère au moniteur
14
  }
15
}

Pour récupérer un nombre à virgule : Serial.parseFloat()

1
void setup(){
2
  // Ouverture de la communication série
3
  Serial.begin(9600);
4
  Serial.println("Bonjour");
5
}
6
7
void loop(){
8
  // programme appelé en boucle
9
  if (Serial.available() > 0) {    // il y a au moins un caractère en attente
10
    float nombre = Serial.parseFloat();  // on récupére un nombre flotant
11
12
    Serial.print("Nombre : ");
13
    Serial.println(nombre);        // retourne le caratère au moniteur
14
  }
15
}