Présentation
- La librairie Serial est une librairie essentielle du langage Arduino qui permet de visualiser sur le PC des messages reçus depuis la carte Arduino ou de commander la carte Arduino
- En couplant l'utilisation de cette librairie avec l'interface programmable graphique Processing côté PC, on dispose d'un outil extrêmement puissant pour réaliser toute sortes d'affichages graphiques sur le PC ou d'interactions entre la carte et le PC (commande de la carte Arduino avec la souris ou le clavier !).
- Elle est utilisée pour les communications par le port série entre la carte Arduino et un ordinateur ou d'autres composants. Toutes les cartes Arduino ont au moins un port Série (également désigné sous le nom de UART ou USART) : Serial. Ce port série communique sur les broches 0 (RX) et 1 (TX) avec l'ordinateur via le port USB.(C'est pourquoi, si vous utilisez cette fonctionnalité, vous ne pouvez utiliser les broches 0 et 1 en tant qu'entrées ou sorties numériques.)
- Vous pouvez utiliser le terminal série intégré à l'environnement Arduino pour communiquer avec une carte Arduino. Il suffit pour cela de cliquer sur le bouton du moniteur série dans la barre d'outils puis de sélectionner le même débit de communication que celui utilisé dans l'appel de la fonction begin().
- La carte Arduino Mega dispose de trois ports série supplémentaires : Serial1 sur les broches 19 (RX) et 18 (TX), Serial2 sur les broches 17 (RX) et 16 (TX), Serial3 sur les broches 15 (RX) et 14 (TX).
Les fonctions de la librairie
−begin()
−available()
−read()
−flush()
−print()
−println()
−write()
−end()
Serial.begin():
Description:
−Fixe le débit de communication en nombre de caractères par seconde (l'unité est le baud) pour la communication série.
−Pour communiquer avec l'ordinateur, utiliser l'un de ces débits : 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200. Vous pouvez, également, spécifier d'autres débits - par exemple, pour communiquer sur les broches 0 et 1 avec un composant qui nécessite un débit particulier.
Syntaxe: Serial.begin(debit);
Paramètres:
−int debit: debit de communication en caractères par seconde (ou baud). Pour communiquer avec l'ordinateur, utiliser l'un de ces débits : 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200.
En pratique utiliser une valeur comprise entre 9600 et 115200. Typiquement 115200 fonctionne très bien ! (Plus le débit est élevé et plus la communication est rapide... )
Serial.available():
Description:
−Donne le nombre d'octets (caractères) disponible pour lecture dans la file d'attente (buffer) du port série.
Syntaxe: Serial.available();
Valeur renvoyée:
−Le nombre d'octet disponible pour lecture dans la file d'attente (buffer) du port série, ou 0 si aucun caractère n'est disponible. Si une donnée est arrivée, Serial.available() sera supérieur à 0. La file d'attente du buffer peut recevoir jusqu'à 128 octets.
Serial.read():
Description:
−Cette fonction permet de lire le premier caractère disponible dans la mémoire tampon de réception. La variable « caractère » est de type int. La valeur retournée est -1 si aucun caractère n’a été reçu (mémoire tampon vide).
Syntaxe: Serial.read(caractère);
Serial.flush():
Description:
−Cette fonction permet de vider la mémoire tampon.
Syntaxe: Serial.flush();
Serial.print():
Syntaxe: Serial.print(Donnée, format);
Description:
−Cette fonction permet d’émettre une ou plusieurs données sur la liaison série en précisant le codage utilisé.
Si la variable « Format » n’est pas précisée, une donnée numérique sera considérée comme décimale, une chaîne de caractères sera transmise tel quelle et une donnée à virgule flottante sera transmise uniquement avec deux décimales.
Sinon la variable « Format » permet de préciser le codage ou la base de numération pour les données numériques.
Elle peut prendre une des valeurs suivantes : BIN (binaire), OCT (Octal), HEX (hexadécimal), DEC (Décimal) ou BYTE (codage ASCII).
Pour les données à virgule flottante, la variable « Format » peut prendre une valeur numérique comprise entre 0 et 7 correspondant au nombre de décimales à transmettre.
Serial.print(100101,BIN) ; // Transmission de la donnée (100101)2
Serial.print(4B,HEX) ; // Transmission de la donnée (4B)16
Serial.print(K,BYTE) ; // Transmission de la donnée (K)ASCII
Serial.print(1.23456,0) ; // Transmission de la donnée 1
Serial.print(1.23456,5) ; // Transmission de la donnée 1.23456
Serial.write():
Description:
−Cette fonction permet d’émettre une ou plusieurs données sur la liaison série sous la forme binaire brute. Si la donnée est de type chaîne de caractères, les caractères sont transmis, sous le format ASCII, les uns après les autres.
Syntaxe: Serial.write(Donnée);
Serial.end():
Description:
−Cette fonction permet de désactiver la liaison série asynchrone et donc de libérer les broches numériques 0 et 1.
Syntaxe: Serial.end();
0 commentaires:
Enregistrer un commentaire