UART est un acronyme de récepteur asynchrone universel. UART est le protocole de communication série le plus utilisé dans lequel le format de données et la vitesse de communication sont configurables. Arduino a trois protocoles de communication nommés SPI, I2C et UART. Le protocole UART permet à Arduino de communiquer entre différents appareils et capteurs. Nous allons maintenant discuter de la façon d'utiliser la communication UART entre deux planches Arduino.
Communication UART en série
L'UART série est le protocole de communication série utilisé par Arduino pour communiquer avec les microcontrôleurs et les PC. Arduino a un port UART à D0 et D1. Un bus en série avec deux terminaux est utilisé dans la communication UART, un pour l'envoi de données nommées TX à la broche D1 et un autre pour recevoir des données qui sont désignées Rx à la broche D0. Ainsi, tous les appareils qui fonctionnent sur le protocole UART doivent avoir deux broches en série:
Lors de l'utilisation de ces deux broches pour UART, il est important de noter que les broches UART sont spécifiques pour un appareil lui-même signifie que si vous souhaitez établir une communication série en utilisant UART entre deux planches Arduino, la broche RX de la première carte sera connectée à la broche TX de la seconde planche de manière similaire Tx Pin de la première avec une broche RX de la seconde.
Communication série UART entre deux planches Arduino
Maintenant, nous connecterons deux planches Arduino à l'aide de broches TX et RX pour établir une communication série entre eux, une carte Arduino qui transmettra les données agira comme un Maître et la deuxième carte Arduino qui recevra des instructions agira comme Esclave. Nous installerons nos tableaux Arduino dans la configuration maître et esclave. Avant d'aller plus loin, nous avons besoin de l'équipement suivant pour démarrer notre communication en série UART.
Matériel nécessaire
Pour commencer la communication entre deux planches Arduino, une sera configurée comme expéditeur et autre carte Arduino comme récepteur. Nous devons donc écrire deux programmes, un pour l'expéditeur et le deuxième pour le récepteur. Suivez les étapes mentionnées ci-dessous pour établir la communication série.
Exemple 1: passer une chaîne d'un arduino à un autre par la communication UART
Nous définirons une chaîne dans notre maître Arduino et essaierons de la passer à l'esclave arduino en utilisant la communication série UART. Suivez ci-dessous les étapes données pour passer les données entre deux arduinos.
Étape 1: Connectez Master Arduino
L'utilisation d'un câble USB B connecte la carte Arduino qui agit comme maître au PC. N'oubliez pas de sélectionner le port com avant de télécharger l'esquisse. Ici dans notre cas, l'Arduino est connecté au port com6.
Maintenant, téléchargez le code ci-dessous sur la carte Sender Master Arduino.
// Sender Arduino Board Code (Master)
char mystring [15] = "Linuxhint.com "; // des données de chaîne qui doivent être envoyées
void setup()
En série.commencer (9600); // commence la série à 9600 bauds
VOID LOOP ()
En série.Écrire (MyString, 15); // Écrivez les données série
retard (1000);
Le code ci-dessus enverra un message simple Linuxhint.com aux autres arduino. Tout d'abord, nous avons défini un tableau «Linuxhint.com ». Le numéro 15 des supports intérieurs montre que ce tableau peut contenir 15 caractères. 13 sont des alphabets tandis que 2 sont réglés pour l'espace afin que nous puissions voir une sortie claire dans le moniteur en série. À l'intérieur installation() La communication en série est établie en utilisant la série.begin () et 9600 est sélectionné comme taux de bauds.
Le boucle() La section du croquis contient le En série.écrire() fonction. Ces fonctions rédigeront un message à la carte Arduino esclave du récepteur avec un délai de 1000 millisecondes.
Étape 2: Connectez l'esclave Arduino
Connectez la deuxième carte Arduino qui est esclave dans notre configuration. Connectez cette carte à n'importe quel port PC autre que le port utilisé à l'étape précédente par la carte Master Arduino. Avant de télécharger le code Arduino Sélectionnez le port Arduino Com. Notre planche d'esclaves Arduino est connectée au com8.
Maintenant, téléchargez ci-dessous le code donné dans l'esclave Arduino Board.
// Code de la carte Arduino du récepteur
char mystring [20]; // Variable initialisée pour stocker la réception
void setup()
En série.commencer (9600); // commence la série à 9600 bauds
VOID LOOP ()
En série.ReadBytes (MyString, 15); // Lire les données série
En série.println (mystring); // imprime les données sur le moniteur en série
En série.println ("récepteur");
retard (1000);
Ci-dessus le code d'esclave arduino est similaire comme maître arduino seule la différence est ici au lieu de En série.écrire() nous avons utilisé En série.readBytes () qui lira les données entrantes de Master Arduino. Après avoir lu les données, je serai imprimé sur le moniteur en série en utilisant En série.println () fonction.
Étape 3: Connectez les deux Arduino à l'aide des broches TX et RX
Une fois qu'Arduino Code est téléchargé dans les deux cartes Arduino Connectez désormais la carte Arduino Master et Slave comme illustré à la figure ci-dessous. Connectez la broche TX du premier Arduino avec RX PIN de Second Arduino PIN RX RX de premier Arduino avec PIN TX de Second Arduino.
N'oubliez pas que lors du téléchargement du code dans ces deux arduino ne connectez pas les broches TX et RX, sinon la communication série ne sera pas possible.
Sortie de Master Arduino
Master Arduino envoie constamment une chaîne à esclave arduino avec un retard de 1000 millisecondes.
Sortie d'esclaves arduino
Slave Arduino imprimera d'abord le récepteur dans le terminal de série de sortie après qu'il recevra un tableau Linuxhint.com avec un retard de 1000 millisecondes de Master Arduino. Par conséquent, la communication série est effectuée entre deux conseils d'arduino.
Exemple 2: clignote à LED à l'aide de deux planches Arduino via UART Communication
Étape 1: Télécharger le code sur Master Arduino Board
Connectez la carte Arduino qui agit en tant que maître avec le PC à l'aide du câble USB B et sélectionnez le port COM auquel Arduino est connecté. Dans notre cas, la carte Master Arduino est connectée au port COM7.
Téléchargez le code donné ci-dessous dans la carte Arduino de l'expéditeur.
// Code de la carte Arduino de l'émetteur (TX)
void setup()
En série.commencer (9600);
VOID LOOP ()
En série.imprimer (1);
Retard (2000);
En série.imprimer (0);
Retard (2000);
Dans le code ci-dessus, le maître Arduino envoie des instructions à l'esclave arduino sous la forme des nombres 1 et 0. Master envoie le numéro 1, puis attend 2 secondes après qu'il envoie le numéro 0, puis reprend un délai de 2 secondes. Après cela, il commence à répéter dans une boucle. Ici, nous avons utilisé le En série.imprimer() fonction qui convertira les instructions de maître arduino en caractères ASCII, ce qui signifie que Master transmettra les valeurs 49 pour 1 et 48 pour 0.
Étape 2: Télécharger le code sur la carte Arduino esclave
Connectez maintenant la deuxième carte Arduino qui agit comme esclave avec tout autre port de PC à l'aide du câble USB B. N'oubliez pas de sélectionner d'abord le port de carte Arduino avant de télécharger le code de l'expéditeur. La carte Slave Arduino est connectée au port COM8 du PC.
Maintenant, téléchargez le code ci-dessous dans la deuxième carte Arduino qui agit comme esclave.
// Récepteur (RX) Code de la carte Arduino
char serialInput = ";
BYTE LED = 2;
void setup()
PinMode (LED, sortie);
En série.commencer (9600);
VOID LOOP ()
si (série.disponible())
char série de série = série.lire();
if (serialInput == '0') DigitalWrite (LED, Low);
if (serialInput == '1') DigitalWrite (LED, High);
En série.println (serialInput);
Dans le code ci-dessus de l'esclave Arduino char SerialInput est initialisé qui recevra et stockera les instructions provenant de Master Arduino.
Après cela dans la section de boucle du code, un chèque sera effectué en utilisant si la condition.
si (série.disponible())
La commande ci-dessus vérifiera s'il y a des données à venir dans le tampon ou non.
S'il y a des données à venir, un seul caractère est lu et stocké dans carboniser variable serial.
Puisque nous sommes intéressés par des valeurs 0 et 1 seulement. Si les déclarations feront le travail ici. Si les instructions vérifieront la valeur de série de série si elles sont 1, il enverra un signal élevé à LED connecté à la broche 2 de la carte esclave. S'il a reçu SerialInput 0, il enverra un signal bas à la broche numéro 2.
Note: Connectez toujours les deux tableaux Arduino dans des ports COM séparés et avant de télécharger un nouveau code Sélectionnez d'abord le port arduino com. Il est recommandé d'utiliser deux fenêtres distinctes d'IDE pour les deux planches Arduino.
Étape 2: Télécharger le code sur la carte Arduino esclave
Connectez les tableaux Arduino dans la configuration ci-dessous comme indiqué dans l'image. Connectez TX du premier Arduino avec Rx du deuxième Arduino. Connectez également le RX de First Arduino avec le TX de Second Arduino. Ne connectez pas les broches TX et RX avant de télécharger le code Arduino car Arduino n'a qu'un seul port de communication série reliant ces deux ports à tout autre appareil bloquera la communication série avec PC via un câble USB.
Connectez la LED à la broche numérique numéro 2 et la broche GND d'Arduino, entre ces deux broches, connectez une résistance de 220 ohm pour maintenir les limites de courant sûr. Connectez Arduino GND ensemble.
Clignotage LED de sortie
Après avoir téléchargé le code dans les deux tableaux Arduino. Master enverra des instructions sur et en dehors avec un délai de 2000 ms. En sortie, nous pouvons voir un LED clignotant consécutivement en 1 seconde et 1 seconde de configuration.
LED allume
LED TRAPINE
Conclusion
Le protocole de communication série UART est utilisé par plusieurs appareils et modules qui permet à Arduino de l'intégrer dans n'importe quel circuit ou projet. Ici, nous avons couvert comment nous pouvons connecter deux arduinos et transférer des données à l'aide de la communication série. En utilisant le protocole UART, nous pouvons améliorer la communication entre les appareils et les tableaux Arduino.