USART em Arduino Uno

USART em Arduino Uno

Arduino tem uma maneira flexível de transferir dados entre dispositivos e PCs. Arduino usa um protocolo serial conhecido como USART para se comunicar entre esses dispositivos. O uso do USART Arduino pode receber entrada e saídas de sensores como GPS, GSM, RFID e outros sensores. Todos os dispositivos que suportam a comunicação serial podem ser conectados ao Arduino, que melhora a compatibilidade geral do Arduino e o uso extensivo em projetos eletrônicos.

USART em Arduino Uno

O USART também é conhecido como transmissor de receptor síncrono/assíncrono universal; O USART é um protocolo de comunicação serial usado nos microcontroladores AVR ATMEGA. Arduino usa este protocolo para transmitir e receber dados de dispositivos, sensores e PCs. O UART transmite e recebe dados na forma de bits com referência ao pulso do relógio. Ele pode transferir um pouco de cada vez em um único fio.

Arduino USART PINS

A maioria das placas Arduino tem dois pinos TX e RX, que são usados ​​para dispositivos de comunicação serial.

  • Pino TX para transmitir dados
  • PIN RX para receber dados


Algumas das principais especificações técnicas dos pinos do USART são destacadas nos pontos mencionados abaixo:

  • Na imagem acima, dois LEDs são marcados como TX e RX. Esses dois LEDs começam a piscar quando o Arduino transmite ou recebe dados usando a comunicação serial do USART.
  • Quando o Arduino recebe dados do PC RX LED Glow, que indica que os dados são recebidos pelo Arduino da mesma forma quando o Arduino transmitir dados para o PC TX LED Glow, que indica a transmissão de dados para PC usando o cabo USB.
  • O status de LED de TX e RX piscaram oposto quando o Arduino estabelece a comunicação serial com hardware, dispositivos ou módulos externos usando TX em D1 e RX em pinos D0.
  • Arduino não suporta comunicação simultânea sobre os pinos USB e TX e RX. Se os pinos TX e RX usados ​​por qualquer outro dispositivo Arduino não puder se comunicar com o PC sobre USB.
  • Os pinos TX e RX usam a lógica TTL. A comunicação em série entre Arduino e outros dispositivos seriais, como o PC, ocorre na mesma taxa de transmissão.

Recursos do USART no ATMEGA328

O receptor e transmissor síncrono e assíncrono universal são uma maneira altamente compatível e flexível de comunicação em série entre diferentes dispositivos. Os principais recursos do USART são:

  • O USART é uma operação duplex completa
  • É possível a operação síncrona e assíncrona
  • Operação síncrona de mestre ou escravo
  • Pode gerar taxa de transmissão de alta resolução
  • Comunicação de alta velocidade
  • Protocolo de comunicação com vários processadores
  • Modo assíncrono de velocidade dupla

ATMEGA328P CHIP

Nome do Pin Arduino Uno

Descrição do Arduino

Funções

PD0 Rx/d0 Pino Digital IO 0 Pino rx serial
PD1 TX/D1 Pino digital IO 1 Pino TX em série
PD4 D4 Pino Digital IO 4 Timer (T0/XCK)

Modos de operação

O microcontrolador Arduino AVR opera em três modos:

  • Modo normal assíncrono
  • Modo de velocidade dupla assíncrona
  • Modo síncrono

Modo normal assíncrono

Durante esse modo.

Modo de velocidade dupla assíncrona

Durante esse modo, a velocidade de transferência de dados se torna o dobro da taxa de transmissão. Esta taxa de transmissão é definida dentro do registro UBBR. Esta é a comunicação de alta velocidade usada, onde são necessários dados e recebimentos precisos e rápidos.

Modo síncrono

Como o nome mostra síncrono, o que significa que os dados são sincronizados com pulsos de relógio. Durante este modo, os dados são transmitidos ou recebidos com os pulsos de relógio definidos no registro UCSRC.

Transmitir dados usando USART

Nome da string;
Void Setup ()
Serial.começar (9600);
atraso (1000);
Serial.println ("Qual é o seu nome?");

Void Loop ()
se (serial.disponível())
nome = serial.readstringuntil ('\ n');
Serial.println ("Prazer em conhecê -lo" + nome + "!");


No código acima, inicializamos uma string "nome" que armazenará a entrada do usuário e o mostrará no monitor serial.

Serial.BEGIN (9600) inicializará a comunicação do USART com uma taxa de transmissão definida. Duas funções importantes Serial.disponível() e Serial.ReadStringuntil () são usados ​​no programa acima.

Serial.Disponível retornará vários caracteres na forma de bytes que foram lidos. O Serial.Readstringuntil A função tornará possível combinar todos os caracteres de entrada do usuário e a saída será exibida de uma maneira mais proeminente.


Saída do monitor serial

Controlando LED usando USART

Agora, usando a comunicação serial, controlaremos um LED através de um monitor serial. Conecte a placa Arduino com PC usando o cabo USB B e faça o upload do código abaixo para a placa Arduino.

char inputState;
Void Setup ()
Serial.começar (9600);
pinmode (13, saída);

Void Loop ()
se (serial.disponível ()> 0)
inputState = (char) serial.ler(); // Leia dados seriais
if (inputState == '1') // Verifique a entrada recebida
DigitalWrite (13, alto); // se a entrada for 1 LED será
Serial.print ("dados de entrada recebidos é:");
Serial.println (inputState);

else if (inputState == '0')
DigitalWrite (13, baixo); // se a entrada for 0 LED desligará
Serial.print ("dados de entrada recebidos é:");
Serial.println (inputState);



No início do código, iniciamos um Caracteres variável estado de entrada que armazenará a entrada do monitor serial.

Serial.começar (9600);


Esta função inicializará a comunicação serial entre a placa Arduino e o PC.

Serial.disponível()


O Serial.disponível() a função procurará o número de bytes disponíveis para ler. Nós usamos um se condição Aqui, que verificará os dados de serial de entrada se os dados de serial de entrada for 1 Arduino definirá o LED no pino 13 como alto e o LED ligará. Se a entrada for 0 Arduino definirá o LED no pino 13 como baixo e o LED desligará.


Saída do monitor serial


Saída de LED

LED ligará na entrada 1 e desligará na entrada 0.


Portanto, controlamos o LED usando a comunicação USART entre Arduino e PC.

Conclusão

O USART pode ser muito útil em projetos de Arduino. Ele permite que o Arduino interface vários dispositivos. Saber sobre o USART ajudará na comunicação entre Arduino e vários dispositivos. Neste artigo, concluímos dois códigos Arduino. Primeiro, enviamos uma string para o Arduino e a exibimos sobre o monitor serial e, no segundo código, temos controle LED usando o USART Comunicação serial.