Arduino a un moyen flexible de transférer des données entre les appareils et les PC. Arduino utilise un protocole de série connu sous le nom de USART pour communiquer entre ces appareils. L'utilisation de l'USART Arduino peut recevoir des entrées et des sorties de capteurs comme GPS, GSM, RFID et d'autres capteurs. Tous les appareils qui prennent en charge la communication série peuvent être connectés à Arduino, ce qui améliore la compatibilité globale de l'Arduino et une utilisation étendue dans les projets électroniques.
Usart à Arduino Uno
L'USART est également connu sous le nom de récepteur de récepteur synchrone / asynchrone universel; USART est un protocole de communication en série utilisé dans les microcontrôleurs AVR ATMEGA. Arduino utilise ce protocole pour transmettre et recevoir des données des appareils, des capteurs et des PC. UART transmet et reçoit des données sous forme de bits en référence à une impulsion d'horloge. Il peut transférer un bit à la fois sur un seul fil.
Épingles arduino usart
La plupart des tableaux Arduino ont deux broches TX et RX qui sont utilisées pour les dispositifs de communication en série.
Certaines des principales spécifications techniques des broches USART sont mises en évidence dans les points mentionnés ci-dessous:
Fonctionnalités USART sur atmega328
Récepteur et émetteur synchrone et asynchrone universels est un moyen très compatible et flexible de communication série entre différents appareils. Les principales caractéristiques de l'USART sont:
Puce atmega328p | Nom de la broche Arduino Uno | Description Arduino | Les fonctions |
Pd0 | Rx / d0 | PIN IO numérique 0 | Broche Rx en série |
Pd1 | TX / D1 | PIN IO numérique 1 | Broche en série TX |
Pd4 | D4 | PIN IO numérique 4 | Minuterie (t0 / xck) |
Modes de fonctionnement
Le microcontrôleur Arduino AVR fonctionne en trois modes:
Mode normal asynchrone
Pendant ce mode, Arduino utilise le taux de bauds prédéfini pour recevoir et transmettre des données sans impulsions d'horloge sous forme.
Mode asynchrone à double vitesse
Pendant ce mode, la vitesse de transfert de données devient double le taux de bauds. Ce taux en bauds est fixé dans le registre UBBR. Il s'agit d'une communication à grande vitesse utilisée lors de la transmission et de la réception de données précises et rapides est requise.
Mode synchrone
Comme son nom montre synchrone, ce qui signifie que les données sont synchronisées avec des impulsions d'horloge. Pendant ce mode, les données sont transmises ou reçues avec les impulsions d'horloge définies dans le registre UCSRC.
Transmettre des données à l'aide de l'USART
Nom de chaîne;
void setup()
En série.commencer (9600);
retard (1000);
En série.println ("quel est votre nom?");
VOID LOOP ()
si (série.disponible())
name = série.ReadStringuntil ('\ n');
En série.println ("Ravi de vous rencontrer", + nom + "!");
Dans le code ci-dessus, nous avons initialisé une chaîne "nom" qui stockera la saisie des utilisateurs et le montrera sur le moniteur en série.
En série.Begin (9600) Initialisera la communication USART avec un taux de bauds défini. Deux fonctions importantes En série.disponible() et En série.ReadStringuntil () sont utilisés dans le programme ci-dessus.
En série.Disponible retournera plusieurs caractères sous la forme d'octets qui ont été lus. Le En série.Readstringuntil La fonction permettra de combiner tous les caractères d'entrée de l'utilisateur et la sortie sera affichée de manière plus importante.
Sortie de moniteur en série
Contrôle LED à l'aide de l'USART
Utilisant maintenant la communication en série, nous contrôlerons une LED via un moniteur en série. Connectez la carte Arduino avec PC à l'aide du câble USB B et téléchargez le code ci-dessous sur la carte Arduino.
CHAR InputState;
void setup()
En série.commencer (9600);
PinMode (13, sortie);
VOID LOOP ()
si (série.disponible ()> 0)
InputState = (char) Serial.lire(); // Lire les données série
if (inputState == '1') // Vérifiez l'entrée reçue
DigitalWrite (13, haut); // Si l'entrée est 1 LED
En série.print ("Les données d'entrée reçues sont:");
En série.println (inputState);
else if (inputstate == '0')
DigitalWrite (13, bas); // Si l'entrée est 0 LED sera désactivée
En série.print ("Les données d'entrée reçues sont:");
En série.println (inputState);
Au début du code, nous avons initié un carboniser variable état d'entrée qui stockera les commentaires du moniteur série.
En série.commencer (9600);
Cette fonction initialisera la communication série entre Arduino Board et PC.
En série.disponible()
Le En série.disponible() La fonction recherchera le nombre d'octets disponibles à lire. Nous avons utilisé un si-condition Ici, qui vérifiera les données de série d'entrée si les données de série d'entrée sont 1 Arduino définira la LED à la broche 13 en haut et que LED s'allumera. Si l'entrée est 0 Arduino définira la LED à la broche 13 comme bas et que la LED s'éteindra.
Sortie de moniteur en série
Sortie LED
LED s'allumera à l'entrée 1 et s'éteint à l'entrée 0.
Par conséquent, nous avons contrôlé la LED en utilisant la communication USART entre Arduino et PC.
Conclusion
USART peut être très utile dans les projets Arduino. Il permet à Arduino d'interfacer plusieurs appareils. Connaître USART aidera à la communication entre Arduino et plusieurs appareils. Dans cet article, nous avons terminé deux codes Arduino. Tout d'abord, nous avons envoyé une chaîne à l'Arduino et l'avons affichée sur le moniteur en série et dans le deuxième code, nous avons contrôlé LED en utilisant la communication série USART.