Bibliothèque Serial

La bibliothèque Serial (incluse dans le langage Arduino) est utilisée pour les communications séries asynchrones basées sur le circuit UART.

Ce circuit utilise des ports numériques de la carte (voir Câblage),  que l’on ne peut par conséquent plus utiliser en tant qu’entrées ou sorties numériques.

Grâce à cette bibliothèque, il est possible d’établir des communications simples entre :

  • un Arduino et un ordinateur,
  • deux Arduinos ,
  • un Arduino et tout autre périphérique compatible UART.

Câblage

RXTXLe circuit UART de l’Arduino UNO possède un port série, nommé Serial , qui utilise les ports numériques 0 (RX) et 1 (TX).

La carte Arduino Mega dispose de trois ports série supplémentaires :

  • Serial1  : 19 (RX) et 18 (TX),
  • Serial2  : 17 (RX) et 16 (TX),
  • Serial3  : 15 (RX) et 14 (TX).)

La communication peut se faire par différents médias :

  • Câbles (USB, série, …)
  • modules de communication sans fil ZigBee
  • modules de transmission radio 433MHz
  • modules Bluetooth
  • ultrasons
  • infrarouges

Arduino – Ordinateur

Le port USB de la carte Arduino utilise lui aussi le circuit UART : pour communiquer avec l’ordinateur relié à la carte, il suffit de le relier via un port USB.

Arduino – Arduino

Pour relier entre eux deux Arduinos par des câbles, il faut utiliser les ports numériques associés aux signaux TX et RX, et mettre en commun leur masse (GND).

Cablage_RXTX

Programmation

Moniteur_serie_exempleÉcriture

Du point de vue de l’Arduino, écrire, c’est envoyer des données vers le périphérique connecté.

Visualisation du message dans le moniteur série bouton_moniteur :

Lecture

Du point de vue de l’Arduino, écrire, c’est recevoir des données depuis le périphérique connecté.

Le moniteur série dispose d’une zone de saisie de texte, associée à un bouton Bouton_envoyer pour envoyer le message saisi.

Du coté de l’Arduino (le récepteur),  les données sont d’abord stockées dans une zone mémoire spéciale appelée serial buffer. Il s’agit d’une zone « tampon », où les données peuvent rester en attendant d’être lues. Dès que des données s’y trouvent la fonction  Serial.available()  renvoie une valeur supérieure à 0.

Dès que c’est le cas, il faut utiliser une des fonctions de lecture de la bibliothèque Serial .

  • parseFloat()  : lit le buffer jusqu’à pouvoir interpréter le texte comme un float .
  • parseInt()  : lit le buffer jusqu’à pouvoir interpréter le texte comme un int .
  • peek()  : lit le premier octet du buffer, mais ne passe pas au suivant.
  • read()  : lit un octet du buffer (et l’en retire).
  • readBytes()  : lit plusieurs octets du buffer (et les en retire).
  • readBytesUntil()  : lit des octets dans le buffer jusqu’à un caractère donné.
  • readString()  : lit le buffer comme une chaine de caractère .
  • readStringUntil()  : lit le buffer comme une chaine de caractères jusqu’à un caractère donné.

 

Pour lire des commandes utilisateurs plus complexes, utiliser les fonctions de ce script.

 

Pour en savoir plus …

https://www.arduino.cc/en/Reference/Serial

 

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code