Fonctions de la communication série
Ces fonctions sont indispensables pour la communication entre la plaque Arduino et un ordinateur ou un autre dispositif. Les cartes peuvent se communiquer par le biais des pins digitaux RX (0) et TX (1), ou bien via connexion USB. Il faut savoir que si on utilise les fonctions de communication série, on ne pourra pas utiliser les pin 0 et 1 comme entrées et sorties numériques.

On peut utiliser le moniteur de port série incorporé dans le programme d’Arduino pour nous communiquer avec la carte. Cliquez sur le bouton du moniteur de port série sur la barre à outils et sélectionnez la même vitesse utilisée dans l’appelle à Serial.begin()
Serial.begin()
Cette tâche sert à établir la vitesse de transmission de données en bits par secondes (baud) pour le transfert des données série. Pour se communiquer avec l’ordinateur on utilise normalement 9600 baud. L’exécution de cette fonction se réalise avant toute transmission étant donné qu’ elle ouvre le canal série pour que la communication puisse s’engager et elle s’inscrit, parlant de codification, dans la section void setup().
Syntaxe
Serial.begin(vitesse)
Serial.begin(vitesse, config)
Exemple
void setup() {
Serial.begin (9600); // ouvre le port série et établit la vitesse des données à 9600 baud
}
void loop() {}
Serial.end()
Cette fonction désactive la communication série, permettant aux pins 0 (RX) et 1 (TX) d’être réutilisées comme sorties et entrées numériques. Pour rétablir la communication on doit faire appelle à Serial.begin().
La fonction Serial.end() ne présente aucun paramètre.
Syntaxe
Serial.end()
Serial.print()
Ce mandat envoie à travers du canal série une donnée du microcontrôleur vers l’extérieur. Cette donnée peut être un caractère, une chaîne, un nombre entier, un nombre décimal (deux décimaux par défaut)…
Syntaxe
Serial.print(valeur)
Serial.print(valeur, format)
On observe deux paramètres:
- valeur -> c’est la valeur à imprimer (n’importe quelle donnée)
- format -> sert à spécifier la base numérique (pour le données genre int) ou le nombre de décimaux (pour les données genre float)
Exemple
void setup() {
Serial.begin(9600);
}
void loop() {
// print labels
Serial.print("NO FORMAT"); // imprime une étiquette
Serial.print("\t"); // retour à la ligne
Serial.print("DEC");
Serial.print("\t");
Serial.print("HEX");
Serial.print("\t");
Serial.print("OCT");
Serial.print("\t");
Serial.print("BIN");
Serial.println(); // retour à la ligne lors de la dernière étiquette
for (int x = 0; x < 64; x++) {
// Différents formats d'impression:
Serial.print(x); // ASCII-encoded decimal - ègal à "DEC"
Serial.print("\t\t"); // imprime 2 tabulations
Serial.print(x, DEC); // ASCII-encoded decimal
Serial.print("\t"); // imprime 1 tabulation
Serial.print(x, HEX); // ASCII-encoded hexadecimal
Serial.print("\t"); // imprime 1 tabulation
Serial.print(x, OCT); // ASCII-encoded octal
Serial.print("\t"); // imprime 1 tabulation
Serial.println(x, BIN); // ASCII-encoded binary
// ajoute un retour à la ligne avec "println"
delay(200); // pause de 200 millisecondes
}
Serial.println(); // ajoute un nouveau retour à la ligne
}
Serial.println()
Cette fonction réalise le même mandat que Serial.print(), mais en plus, rajoute automatiquement à la fin des données envoyés, deux caractères extra: le retour automatique (Code ASCII 13) et nouvelle ligne (code ASCII 10).
Syntaxe
Serial.println(valeur)
Serial.println(valeur, format)
On observe deux paramètres:
- valeur -> c’est la valeur à imprimer (n’importe quelle donnée)
- format -> sert à spécifier la base numérique( int) ou le nombre de décimaux (float).
Serial.parseInt()
Cette fonction lit et élimine du buffer d’entrée les données jusqu’à ce quelle trouve un nombre entier. La valeur retournée sera alors ce nombre entier.
Syntaxe
Serial.parseInt()
Exemple
void loop(){
int x;
if (Serial.available() > 0){
x = Serial.parseInt();
Serial.println(x) ;
}
}
Ce code reçoit et enregistre comme x simplement les données que seront tapées et confirmées avec intro comme entiers. Le reste sera considéré comme zéro.