Voltar

Eco Serial com Arduino: Aprenda Comunicação USART

Introdução

A comunicação serial é uma das habilidades mais fundamentais em eletrônica embarcada. Seja depurando um sensor, conversando com um módulo GPS ou enviando dados para um PC, o humilde USART (Receptor/Transmissor Universal Síncrono/Assíncrono) é sua ferramenta essencial. Neste tutorial, vamos construir um projeto simples de Eco Serial usando um Arduino Uno no simulador Velxio. Cada caractere que você digitar no Monitor Serial será ecoado de volta com seu valor ASCII e uma contagem em execução. É o “Olá, Mundo!” da comunicação serial.

Diagrama do circuito do eco serial na tela do simulador Velxio

Passo a Passo do Circuito

Este projeto é notavelmente simples — ele usa apenas a própria placa Arduino Uno. Nenhum componente externo é necessário porque a comunicação serial acontece através do conversor USB-serial embutido no Uno. No Velxio, o Monitor Serial está integrado na barra de ferramentas do editor, então você pode interagir com seu código imediatamente.

Componentes

ComponenteQuantidadeObservações
Arduino Uno (wokwi-arduino-uno)1O cérebro da operação

É isso! Os pinos TX (pino 1) e RX (pino 0) do Arduino Uno estão internamente conectados à interface USB, que o Velxio emula perfeitamente. Nenhuma fiação é necessária.

Barra de ferramentas do editor Velxio com controles de compilar e executar

Passo a Passo do Código

Vamos mergulhar no código. Abra o editor Velxio e você verá o seguinte sketch:

// Serial Echo — USART Protocol Test
// Open the Serial Monitor to send and receive data.
// Everything you type is echoed back with extra info.

void setup() {
  Serial.begin(9600);
  Serial.println("=============================");
  Serial.println("  Serial Echo Test (USART)");
  Serial.println("=============================");
  Serial.println("Type something and press Send.");
  Serial.println();

  // Print system info
  Serial.print("CPU Clock: ");
  Serial.print(F_CPU / 1000000);
  Serial.println(" MHz");
  Serial.print("Baud rate: 9600");
  Serial.println();
  Serial.println();
}

unsigned long charCount = 0;

void loop() {
  if (Serial.available() > 0) {
    char c = Serial.read();
    charCount++;

    Serial.print("[");
    Serial.print(charCount);
    Serial.print("] Received: '");
    Serial.print(c);
    Serial.print("' (ASCII ");
    Serial.print((int)c);
    Serial.println(")");
  }

  // Periodic heartbeat
  static unsigned long lastBeat = 0;
  if (millis() - lastBeat >= 5000) {
    lastBeat = millis();
    Serial.print("Uptime: ");
    Serial.print(millis() / 1000);
    Serial.print("s | Chars received: ");
    Serial.println(charCount);
  }
}

Código-fonte do eco serial no editor Monaco do Velxio

Como Funciona

  1. Setup: Inicializamos a comunicação serial a 9600 baud usando Serial.begin(9600). Em seguida, imprimimos um banner e informações do sistema: a velocidade do clock da CPU (F_CPU / 1000000 dá em MHz) e a taxa de baud.

  2. Variável global: unsigned long charCount = 0; mantém o controle de quantos caracteres recebemos.

  3. Loop:

    • if (Serial.available() > 0) verifica se há dados esperando no buffer de recepção.
    • char c = Serial.read(); lê um caractere.
    • Incrementamos charCount e imprimimos uma mensagem formatada: [contagem] Received: 'c' (ASCII 99).
    • A cada 5 segundos, imprimimos um batimento cardíaco com o tempo de atividade e o total de caracteres recebidos.

Conceitos-Chave para Estudantes

Problemas Comuns e Dicas de Depuração

Extensões Sugeridas

Depois de dominar o eco básico, tente estes aprimoramentos:

  1. Eco de linhas inteiras: Em vez de ecoar cada caractere, acumule caracteres até a nova linha e então ecoe a linha inteira.
  2. Interpretador de comandos: Interprete comandos especiais como “LED ON” para acender um LED (adicione um LED ao circuito).
  3. Saída binária: Imprima o caractere recebido em formato binário.
  4. Múltiplas taxas de baud: Permita que o usuário mude a taxa de baud através de um comando.
  5. Registro em EEPROM virtual: Armazene os dados recebidos na EEPROM simulada.

Conclusão

Você acabou de construir seu primeiro projeto de comunicação serial! O Eco Serial é uma demonstração simples, mas poderosa, de como microcontroladores se comunicam com o mundo exterior. Com o Velxio, você pode experimentar sem nenhum hardware — basta abrir o simulador, escrever código e testar instantaneamente.

Pronto para testar você mesmo? Abra o exemplo ao vivo no Velxio e comece a digitar: Eco Serial no Velxio. Boa codificação!


Compartilhar em:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artigos relacionados


Artigo anterior
Controle Serial de LED com Arduino: Envie Comandos para Piscar
Próximo artigo
Display LCD 20x4 com Arduino: Hello World no Velxio