Arduino tiene una forma flexible de transferir datos entre dispositivos y PCS. Arduino utiliza un protocolo en serie conocido como USART para comunicarse entre estos dispositivos. El uso de Usart Arduino puede recibir entradas y salidas de sensores como GPS, GSM, RFID y otros sensores. Todos los dispositivos que admiten la comunicación en serie se pueden conectar a Arduino, lo que mejora la compatibilidad general de Arduino y el uso extenso en proyectos electrónicos.
Usart en Arduino Uno
USART también se conoce como transmisor de receptor sincrónico/asincrónico universal; USART es un protocolo de comunicación en serie utilizado en los microcontroladores AVR ATMEGA. Arduino utiliza este protocolo para transmitir y recibir datos de dispositivos, sensores y PCS. UART transmite y recibe datos en forma de bits con referencia al pulso del reloj. Puede transferir un bit a la vez en un solo cable.
Pins Arduino Usart
La mayoría de los tableros Arduino tienen dos pines TX y RX que se utilizan para dispositivos de comunicación en serie.
Algunas de las principales especificaciones técnicas de los pines de USART se destacan en los puntos mencionados a continuación:
Características de USART en ATMEGA328
El receptor y el transmisor asincrónico universal y asincrónico es una forma de comunicación en serie altamente compatible y flexible entre diferentes dispositivos. Las características principales de USART son:
Chip ATMEGA328P | Nombre de arduino uno | Descripción de Arduino | Funciones |
PD0 | RX/D0 | Digital IO Pin 0 | Pin de serie RX |
PD1 | TX/D1 | Pin 1 digital IO 1 | Pin serial TX |
Pd4 | D4 | Pin 4 digital IO 4 | Temporizador (T0/XCK) |
Modos de operacion
El microcontrolador Arduino AVR funciona en tres modos:
Modo normal asincrónico
Durante este modo, Arduino utiliza la velocidad de baudios predefinidas para recibir y transmitir datos sin pulsos de reloj en forma de bit a poco.
Modo asincrónico de doble velocidad
Durante este modo, la velocidad de transferencia de datos se convierte en el doble de la velocidad de transmisión. Esta tasa de baudios se establece dentro del registro UBBR. Esta es la comunicación de alta velocidad utilizada cuando se requieren datos precisos y rápidos de transmisión y recepción.
Modo sincrónico
Como el nombre muestra sincrónico, lo que significa que los datos se sincronizan con pulsos de reloj. Durante este modo, los datos se transmiten o reciben con los pulsos de reloj definidos en el registro UCSRC.
Transmitir datos utilizando USART
Nombre de cadena;
setup () void
De serie.comenzar (9600);
retraso (1000);
De serie.println ("¿Cuál es su nombre??");
bucle void ()
if (serial.disponible())
Nombre = Serial.readStringUtil ('\ n');
De serie.println ("Encantado de conocerte", + nombre + "!");
En el código anterior hemos inicializado una cadena "nombre" que almacenará la entrada del usuario y la mostrará en el monitor de serie.
De serie.Begin (9600) inicializará la comunicación de USART con una tasa de baudios definida. Dos funciones importantes De serie.disponible() y De serie.readStringUtil () se utilizan en el programa anterior.
De serie.Disponible devolverá varios caracteres en forma de bytes que se han leído. El De serie.readstringuntil La función permitirá combinar todos los caracteres de entrada del usuario y la salida se mostrará de una manera más destacada.
Salida del monitor en serie
Controlar LED usando USART
Ahora usando la comunicación en serie, controlaremos un LED a través de un monitor en serie. Conecte la placa Arduino con PC usando el cable USB B y cargue el código a continuación en la placa Arduino.
Char InputState;
setup () void
De serie.comenzar (9600);
PinMode (13, salida);
bucle void ()
if (serial.disponible ()> 0)
inputState = (char) serial.leer(); // leer datos en serie
if (inputState == '1') // Verifique la entrada recibida
DigitalWrite (13, alto); // Si la entrada es 1 LED Will On
De serie.imprimir ("Los datos de entrada recibidos son:");
De serie.println (inputState);
else if (inputState == '0')
DigitalWrite (13, bajo); // Si la entrada es 0 LED apagado
De serie.imprimir ("Los datos de entrada recibidos son:");
De serie.println (inputState);
Al comienzo del código, hemos iniciado un carbonizarse variable estado de entrada que almacenará la entrada del monitor en serie.
De serie.comenzar (9600);
Esta función inicializará la comunicación en serie entre Arduino Board y PC.
De serie.disponible()
El De serie.disponible() la función buscará el número de bytes disponibles para leer. Hemos usado un if-condición Aquí, que verificará los datos de la serie de entrada si los datos en serie de entrada son 1 Arduino establecerá LED en el pin 13 como alto y LED se encenderá. Si la entrada es 0, Arduino establecerá el LED en el pin 13 como bajo y LED se apagará.
Salida del monitor en serie
Salida LED
LED se encenderá en la entrada 1 y se apagará a la entrada 0.
Por lo tanto, hemos controlado LED utilizando la comunicación de USART entre Arduino y PC.
Conclusión
Usart puede ser muy útil en los proyectos de Arduino. Permite a Arduino interactuar múltiples dispositivos. Conocer el USART ayudará en la comunicación entre Arduino y múltiples dispositivos. En este artículo completamos dos códigos Arduino. Primero, hemos enviado una cadena al Arduino y la mostramos sobre el monitor en serie y en el segundo código tenemos LED de control utilizando la comunicación en serie de USART.