Usart en Arduino Uno

Usart en Arduino Uno

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.

  • Pin TX para transmitir datos
  • Pin rx para recibir datos


Algunas de las principales especificaciones técnicas de los pines de USART se destacan en los puntos mencionados a continuación:

  • En la imagen de arriba, dos LED están marcados como TX y RX. Estos dos LED comienzan a parpadear cuando el Arduino transmite o recibe datos utilizando la comunicación en serie de USART.
  • Cuando Arduino recibe datos del brillo LED de PC RX, lo que indica que Arduino recibe datos de manera similar cuando Arduino transmite datos a PC TX LED GLOW que indica la transmisión de datos a PC usando Cable USB.
  • El estado de LED de TX y RX parpadea opuesto cuando Arduino establece la comunicación en serie con hardware, dispositivos o módulos externos que usan TX en D1 y RX a PINS D0.
  • Arduino no admite la comunicación simultánea sobre los pines USB y TX y RX. Si los pines TX y RX utilizados por cualquier otro dispositivo, Arduino no puede comunicarse con PC a través de USB.
  • Los pines TX y RX usan la lógica TTL. La comunicación en serie entre Arduino y otros dispositivos en serie como PC ocurre a la misma velocidad.

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:

  • USART es una operación dúplex completa
  • Es posible la operación síncrona y asincrónica
  • Operación sincrónica con reloj de maestría o esclavo
  • Puede generar una tasa de baudios de alta resolución
  • Comunicación de alta velocidad
  • Protocolo de comunicación multiprocesador
  • Modo asincrónico de doble velocidad

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
  • Modo asincrónico de doble velocidad
  • Modo sincrónico

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.