Arduino Serial.lire et série.écrire

Arduino Serial.lire et série.écrire
Arduino est une plate-forme de prototypage électronique utilisée par les débutants, les étudiants et les ingénieurs pour concevoir plusieurs projets. Arduino utilise une communication série pour transmettre et recevoir des données avec différents matériels et capteurs. Pour aider les utilisateurs pour la communication en série, la programmation Arduino a une liste des fonctions série disponibles. Parmi eux deux fonctions largement utilisées pour transmettre et recevoir des données sont En série.écrire() et En série.lire() respectivement. Lisez ce guide pour obtenir de bonnes connaissances sur ces deux fonctions.

Arduino Serial.lire()

Dans Arduino Programmation de la fonction En série.lire() lit les données sérieuses entrantes sur le port série d'Arduino. Les données sont stockées à l'aide d'un type de données int. En série.La fonction read () lit les données en octets et renvoie un nombre négatif -1 lorsqu'aucune donnée n'est disponible dans le port série d'Arduino. Les données de lecture sont stockées sous forme d'octets et 1 octet = 8 bits.

Lorsque les données sont entrées dans une carte Arduino, l'UART assemblera chacun des 8 bits en un seul octet et stockera ces octets de données à l'intérieur du tampon série Arduino. Jusqu'à 64 octets de données peuvent être stockés à l'intérieur du tampon de réception en série.

Syntaxe

Syntaxe utilisé dans la programmation Arduino pour la série.read () est:

En série.lire()

Paramètres

En série: Il signifie le port d'Arduino. Au moins un port série est présent dans toutes les tableaux Arduino. Vérifiez la fiche technique de la carte Arduino respective pour obtenir plus d'informations.

Valeur de retour

En série.Les fonctions read () renvoient le premier octet des données série reçues. Dans le cas où aucune donnée n'est reçue à la fonction du port série, retournera -1. Le type de données renvoyé est int.

Note: Série.read () ne retournera aucun char si les données ne sont pas là, il retournera simplement -1.

Exemple de code

Regardons un exemple pour une meilleure compréhension:

char InputSerialData = 0; / * Variable pour stocker les données série entrantes * /
void setup()
En série.commencer (9600); / * La communication série commence * /

VOID LOOP ()
si (série.Disponible ()> 0) / * Si condition pour vérifier les données série * /
InputSerialData = série.lire(); / * Lire les données sérieuses entrantes * /
En série.print ("Données reçues:"); / * Imprimer les données reçues sur le moniteur série * /
En série.println (inputSerialData);

Dans le code ci-dessus, nous avons d'abord initialisé une variable pour stocker les données série boucle() Section, le programme vérifiera les données série au port série Si les données sont disponibles, il sera imprimé sur un moniteur en série qui peut être vu sur le terminal de sortie.

Sortir
La sortie peut être vue sur la borne de sortie. Ici, nous avons envoyé différents caractères au port série Arduino:

Arduino Serial.écrire()

En série.La fonction écrite () écrit les données binaires du port série Arduino. Les données sont transférées dans une série d'octets. Si nous voulons transférer ou écrire les chiffres des nombres qui sont représentés par des caractères, nous utiliserons la série.print () au lieu de série.Fonction écrite ().

Syntaxe
Voici la syntaxe suivie lors de l'écriture de données en série.

La syntaxe ci-dessous représente lorsque nous devons Écrire une valeur en série:

En série.Écrire (Val)

Quand nous devons envoyer un chaîne La syntaxe suivante sera suivie:

En série.écrire (str)

Envoyer nombre spécifique d'octets d'une chaîne ci-dessous la syntaxe sera suivie:

En série.Écrire (buf, len)

Paramètres

Voici la liste des paramètres en série.La fonction écrite () prend:

En série: Port en série du conseil d'administration d'Arduino.

val: Une valeur qui sera définie comme un seul octet.

Str: Lorsque nous envoyons une chaîne en série comme une série d'octets.

bouf: Pour envoyer un tableau en tant que série d'octets.

Len: Nombre spécifique d'octets envoyés à partir du tableau en série.

Valeur de retour

Il renvoie le nombre d'octets écrits et le type de données renvoyé est size_t.

Exemple de code

L'exemple suivant montre le fonctionnement de la série.Fonction écrite ():

void setup()
En série.commencer (9600);

VOID LOOP ()
En série.écrire (45); / * 45 est la valeur ascii de char ("-") * /
int data_bytes_sent = série.Écrire ("Linuxhint.com "); / * Envoyer la chaîne" Linuxhint.com "et retour de la longueur de chaîne * /
Retard (2000);

Ici, dans ce code, nous avons initialisé la communication en série afin que nous puissions transmettre des données à l'aide de la communication série. D'abord en utilisant la série.write () et la valeur ASCII de Dash de caractère «-» seront imprimés à chaque fois. Suivant une chaîne sera envoyée en série en utilisant la série.Fonction écrite (). Un retard est donné pour lire facilement la sortie:

Sortir
String «Linuxhint.com ”est imprimé en série à l'aide de la série.Fonction écrite (). Le moniteur série affiche la sortie.

Différence entre la série Arduino.écrire () et série.imprimer()

En série.écrire() La fonction est simple et rapide. Il est fait pour traiter en binaire un octet à la fois. Les données écrites en binaire sont envoyées sous forme d'octet ou de série d'octets.

En série.imprimer() La fonction en revanche est plus polyvalente, les données sont imprimées sur un moniteur en série comme texte ASCII lisible par l'homme. D'abord les données d'entrée sont converties de l'ASCII en binaire. Il peut également convertir les données en bac, hex, octobre et DEC, mais nous devons le spécifier dans le deuxième argument de fonction.

En série.La fonction print () peut prendre de nombreux formulaires tels que:

  • Les caractères ASCII sont utilisés pour imprimer chaque chiffre d'un nombre.
  • Flotteurs imprimés sous forme de chiffres ASCII, par défaut jusqu'à deux décimales.
  • Octets envoyés sous la forme de caractères uniques.
  • Les personnages et les chaînes sont envoyés sans aucun changement.

Conclusion

La carte Arduino utilise une communication série pour transmettre et recevoir des données avec ses périphériques. Arduino a une liste de fonctions en série disponibles qui aident Arduino dans la communication en série. Parmi eux En série.lire() et En série.écrire() sont deux fonctions, série.read () lit les données disponibles sur le tampon de réception en série et la série.write () écrit des données sur le port série Arduino en tant qu'octet ou série d'octets. Cet article aidera à en savoir plus sur eux.