Voltar

Pico Serial Echo: Teste UART no RP2040 com Velxio

Introdução

Bem-vindo a mais um tutorial da Velxio! Hoje vamos construir um teste de Serial Echo para o Raspberry Pi Pico (RP2040). Este projeto é perfeito para iniciantes que desejam entender como a comunicação serial funciona em microcontroladores. Você aprenderá a enviar e receber dados via UART, adicionar um indicador visual com um LED e implementar um temporizador de heartbeat simples.

Diagrama do circuito do pico-serial-echo no canvas do simulador Velxio

Passo a Passo do Circuito

O circuito é deliciosamente simples. Precisamos apenas de dois componentes:

Conexões

  1. Conecte o ânodo (A) do LED amarelo ao pino TX do Pico. O pino TX é usado para transmissão serial, então toda vez que o Pico enviar dados, o LED piscará.
  2. Conecte o cátodo (C) do LED ao GND (qualquer pino de terra no Pico).

É isso! O LED está ligado em série com a linha TX, então ele acende quando o Pico transmite. Isso fornece uma confirmação visual de que os dados seriais estão fluindo.

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

Explicação do Código

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

// Raspberry Pi Pico — Serial Echo Test
// Echoes received characters and prints a heartbeat every 2 seconds

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("=== Pico Serial Echo ===");
  Serial.println("Type something and press Enter.");
  Serial.println();
}

unsigned long lastHeartbeat = 0;

void loop() {
  // Echo any incoming characters
  while (Serial.available()) {
    char c = Serial.read();
    Serial.print("Echo: ");
    Serial.println(c);
  }

  // Heartbeat every 2 seconds
  if (millis() - lastHeartbeat >= 2000) {
    lastHeartbeat = millis();
    Serial.print("[Heartbeat] Uptime: ");
    Serial.print(millis() / 1000);
    Serial.println("s");
  }
}

Como Funciona

A variável lastHeartbeat mantém o controle da última vez que o heartbeat foi impresso, usando millis() para temporização não bloqueante.

Conceitos Principais

Comunicação Serial (UART)

UART (Universal Asynchronous Receiver/Transmitter) é um protocolo serial simples. O pino TX do Pico envia dados, e o pino RX recebe dados. Neste exemplo, usamos apenas TX para saída, mas a função echo também usa RX (através do Monitor Serial).

Temporização Não Bloqueante com millis()

Em vez de usar delay(), que pausa todo o programa, usamos millis() para verificar o tempo decorrido. Isso permite que o loop echo seja executado continuamente enquanto ainda imprime o heartbeat em intervalos regulares.

LED como Indicador Visual

Ao conectar o LED ao pino TX, obtemos um visual em tempo real da atividade serial. Toda vez que o Pico envia um caractere, o LED pisca brevemente.

Problemas Comuns e Dicas de Depuração

Barra de ferramentas do canvas Velxio acima da viewport de simulação

Extensões Sugeridas

Depois de ter o echo básico funcionando, tente estas melhorias:

  1. Adicione um LED RX: Conecte outro LED ao pino RX para mostrar quando os dados são recebidos.
  2. Interpretação de comandos: Em vez de apenas ecoar, interprete comandos como “LED ON” ou “LED OFF” para controlar um LED externo.
  3. Múltiplos baud rates: Permita que o usuário mude o baud rate através de um comando serial.
  4. Registro no console: Armazene os dados recebidos em um buffer e imprima-os sob demanda.

Modal do seletor de componentes Velxio navegando por peças por categoria

Chamada para Ação

Pronto para testar você mesmo? Abra o exemplo ao vivo no Velxio e comece a experimentar: Pico Serial Echo no Velxio. Você pode modificar o código, mudar a cor do LED ou adicionar novos componentes. Feliz programaçã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 de LED via Serial no Pico: Crie Sua Primeira Interface de Comandos
Próximo artigo
Piscar um LED no Raspberry Pi Pico com o Simulador Velxio