Como Usar a Raspberry Pi Pico com Arduino: Manual Técnico Completo

Placa Raspberry Pi Pico RP2040 — manual técnico completo

Introdução

Neste manual, será apresentado como instalar, configurar e utilizar a placa Raspberry Pi Pico utilizando o ecossistema da IDE do Arduino. Se desejar adquirir este produto, clique aqui.

Descrição geral do produto

O que é o Raspberry Pi Pico?

O Raspberry Pi Pico é uma plataforma de desenvolvimento compacta e de baixo custo baseada no microcontrolador RP2040, o primeiro circuito integrado de silício projetado pela própria Raspberry Pi Foundation no Reino Unido.

Equipada com um processador Dual-Core ARM Cortex-M0+ com frequência de operação de até 133 MHz, 264 KB de memória SRAM integrada e 2 MB de memória Flash QSPI externa, a placa se destaca pela flexibilidade de entradas e saídas e pelo suporte aos inovadores blocos de hardware PIO (Programmable I/O). Seus pinos com bordas casteladas permitem tanto o uso convencional em matrizes de contato (protoboards) com barras de pinos de 2,54 mm quanto a soldagem direta em superfície (SMD) sobre placas de circuito impresso customizadas.

Para que serve?

O Raspberry Pi Pico executa instruções de controle em tempo real para automação e interação com o mundo físico, sendo amplamente aplicado em:

  • Automação residencial e industrial, instrumentação e controle de processos;
  • Projetos de robótica, controle de servomotores, motores de passo e leitura de sensores analógicos e digitais;
  • Sistemas de Internet das Coisas (IoT) e dispositivos de interface humana USB (teclados, mouses e joysticks via emulação HID).

Por que devo usar?

  • Alto desempenho com baixo custo: processador ARM dual-core de 32 bits a 133 MHz com 264 KB de memória interna, superando com ampla folga microcontroladores tradicionais de 8 bits na mesma faixa de preço;
  • Máquinas de estado PIO revolucionárias: 8 máquinas de estado programáveis independentes capazes de emular protocolos digitais (como WS2812B, VGA, I2S e barramentos industriais) sem sobrecarregar os núcleos principais da CPU;
  • Facilidade e flexibilidade de programação: suporte nativo a linguagem C/C++ na IDE do Arduino, MicroPython e CircuitPython, com upload instantâneo de arquivos no formato UF2 sem a necessidade de gravador de hardware dedicado.

Quando devo usar?

A placa Raspberry Pi Pico é a escolha recomendada quando:

  • O projeto exige alto poder de processamento, cálculo de ponto flutuante ou execução de tarefas multithread com custo reduzido;
  • São necessários muitos canais PWM (até 16 canais independentes) ou controle preciso de temporização;
  • Há necessidade de emulação de periféricos USB nativos (dispositivo e host USB 1.1).

Não é a melhor escolha quando:

  • O projeto requer conectividade Wi-Fi ou Bluetooth integrada imediata no mesmo chip (neste caso, prefira o modelo Raspberry Pi Pico W ou placas da família ESP32);
  • O projeto demanda um sistema operacional completo com interface gráfica ou Linux (neste caso, utilize computadores de placa única como a Raspberry Pi 4 ou Raspberry Pi 5);
  • O circuito utiliza exclusivamente sensores antigos de 5V sem conversores de nível lógico, pois as portas da Pico operam estritamente em 3,3V.

Como funciona a arquitetura RP2040 e o modo BOOTSEL

O microcontrolador RP2040 possui uma ROM interna de boot que facilita o processo de carga de software. Ao pressionar o botão BOOTSEL durante a energização da porta USB, a ROM interna coloca a placa em modo de dispositivo de armazenamento em massa USB (USB Mass Storage).

O computador reconhece a placa instantaneamente como uma unidade de disco removível chamada RPI-RP2. Ao gravar o código na Arduino IDE, o arquivo executável compilado (.uf2) é transferido diretamente para essa partição virtual, gravando a memória Flash externa e reiniciando a placa de forma autônoma.

Variantes disponíveis

A plataforma Raspberry Pi Pico está disponível em diferentes versões para atender requisitos específicos de montagem e conexão:

  • Raspberry Pi Pico RP2040 Padrão (RB1052): versão clássica com conector micro USB, 40 pinos de expansão e botão BOOTSEL integrado;
  • Raspberry Pi Pico RP2040 USB Tipo-C (RB1733): variante atualizada com conector USB Tipo-C moderno e reversível, proporcionando maior robustez física;
  • Raspberry Pi Pico RP2040-Zero (RB1470): versão ultra compacta com o mesmo chip RP2040, ideal para projetos em miniatura e espaços confinados.
Placa Raspberry Pi Pico RP2040 Padrão com conector micro USB Placa Raspberry Pi Pico RP2040 com conector USB Tipo-C Placa de desenvolvimento Raspberry Pi Pico RP2040-Zero ultra compacta

Especificações técnicas

Principais especificações

ParâmetroDetalhes
Código do produto (SKU Loja)RB1052
MicrocontroladorRaspberry Pi RP2040
Arquitetura da CPUDual-Core ARM Cortex-M0+ de 32 bits
Frequência de clock133 MHz (suporta overclock estável)
Memória SRAM interna264 KB (distribuída em 6 bancos independentes)
Memória Flash externa2 MB integrada (Flash SPI Quad-SPI de alta velocidade)
Tensão de operação lógica3,3 VCC
Tensão de entrada recomendada (VSYS)1,8 V a 5,5 VCC
Tensão de alimentação via USB (VBUS)5,0 VCC
Pinos GPIO no conector26 pinos multifuncionais de 3,3V
Entradas analógicas (ADC)3 canais externos de 12 bits (500 kSps) + 1 canal interno
Canais PWM16 canais de modulação por largura de pulso controláveis
Interfaces seriais2× UART, 2× SPI, 2× I2C
Temporizadores e ClockRTC de alta precisão e timer de hardware integrado
Periféricos programáveis (PIO)8 máquinas de estados programáveis (2 blocos PIO)
Interface USBUSB 1.1 Host e Device integrado
Sensor de temperaturaIntegrado on-board (canal analógico ADC4)
Botão de hardwareBotão BOOTSEL para upload e seleção de boot
Dimensões físicas21,0 mm × 51,3 mm × 3,9 mm

Pinagem e descrição dos terminais

A Raspberry Pi Pico possui 40 terminais externos dispostos em duas fileiras de 20 pinos. A imagem a seguir detalha as funções principais de cada pino, incluindo barramentos seriais, canais de temporização e entradas analógicas:

Diagrama de pinagem e conexões da placa Raspberry Pi Pico

Descrição dos grupos de pinos

Grupo de PinosPinos FísicosNível de TensãoDescrição e Cuidados
VBUS (Pino 40)405,0 VTensão de alimentação proveniente do conector micro USB (passa por diodo de proteção).
VSYS (Pino 39)391,8 V – 5,5 VEntrada principal de alimentação do regulador interno da placa (baterias ou fontes externas).
3V3 (Pino 36)363,3 VSaída regulada do conversor buck-boost interno (fornece até 300 mA para circuitos externos).
3V3_EN (Pino 37)37Habilitação do regulador on-board. Conectar ao terra desativa a saída de 3,3V.
GND3, 8, 13, 18, 23, 28, 33, 380 VTerminais de referência de terra comum para sinais e alimentação.
GPIOs (GP0 a GP22)Vários3,3 VPinos digitais multifunção para entradas, saídas, barramentos I2C, SPI, UART e PWM.
ADC (GP26, GP27, GP28)31, 32, 340 – 3,3 VEntradas do conversor analógico-digital de 12 bits (identificadas como ADC0, ADC1 e ADC2).
ADC_VREF (Pino 35)353,3 VTensão de referência para conversões analógicas.
RUN (Pino 30)303,3 VPino de reset do processador. Puxar momentaneamente ao nível baixo reinicia o microcontrolador.

⚠️ Atenção: Todos os pinos de GPIO da Raspberry Pi Pico operam em nível lógico de 3,3V. A placa não é tolerante a 5V. Conectar diretamente saídas de 5V (como as do Arduino Uno) aos pinos da Pico danificará permanentemente o circuito interno do chip RP2040. Para integrar sensores ou placas de 5V, utilize resistores em divisor de tensão ou conversores de nível lógico bidirecionais.

💡 Dica: O pino físico GP25 está conectado internamente ao LED verde onboard da placa. Não é necessário conectar componentes externos para testar o funcionamento da placa.

Configuração na Arduino IDE

Para programar a Raspberry Pi Pico com a facilidade da linguagem Arduino, o ecossistema disponibiliza o pacote oficial mantido pela comunidade através do projeto arduino-pico (desenvolvido por Earle F. Philhower, III). Este core oferece suporte completo aos recursos da placa, além de excelente velocidade de compilação.

Passo 1: Instalação da IDE do Arduino

Caso já possua a Arduino IDE instalada em sua máquina (versão 1.8.x ou 2.x), passe diretamente para o próximo passo.

  1. Acesse a página oficial de downloads em arduino.cc/en/software;
  2. Escolha o instalador compatível com o seu sistema operacional (Windows, Linux ou macOS);
  3. Na página de contribuição opcional, clique no botão Just Download e execute o arquivo para concluir a instalação padrão.

Tela de download da IDE do Arduino no site oficial

Passo 2: Adicionando a URL do gerenciador de placas

  1. Abra a Arduino IDE;
  2. Acesse o menu superior Arquivo (File) ➔ Preferências (Preferences):

Acesso ao menu de preferências da Arduino IDE

  1. No campo URLs Adicionais para Gerenciadores de Placas (Additional Boards Manager URLs), clique no botão à direita para abrir a lista de endereços:

Ícone de edição de URLs adicionais de placas

  1. Insira a URL do core oficial da RP2040 no campo de texto:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Inserção da URL do pacote RP2040 nas preferências

  1. Clique em OK para fechar a caixa de URLs e novamente em OK para salvar as preferências.

Passo 3: Instalando a plataforma RP2040

  1. Acesse o menu Ferramentas (Tools) ➔ Placa (Board) ➔ Gerenciador de Placas… (Boards Manager…):

Abertura do Gerenciador de Placas na Arduino IDE

  1. No campo de busca do Gerenciador de Placas, digite RP2040;
  2. Localize o pacote intitulado Raspberry Pi Pico/RP2040 (mantido por Earle F. Philhower, III) e clique no botão Instalar (Install):

Instalação do pacote Raspberry Pi Pico no gerenciador de placas

  1. Aguarde o download de todas as ferramentas de compilação, cabeçalhos do SDK e utilitários de gravação.

Passo 4: Selecionando a placa Raspberry Pi Pico

  1. No menu superior, vá em Ferramentas (Tools) ➔ Placa (Board) ➔ Raspberry Pi RP2040 Boards ➔ Raspberry Pi Pico:

Seleção da placa Raspberry Pi Pico no menu de ferramentas

  1. Conecte a placa ao computador utilizando um cabo micro USB de boa qualidade (certifique-se de que o cabo seja de dados e não apenas de carga).

💡 Dica: Na primeira gravação, ou caso a porta COM ainda não apareça listada, segure o botão BOOTSEL pressionado enquanto pluga o cabo USB ao computador e solte-o em seguida. O sistema operacional reconhecerá a placa em modo UF2. Ao clicar em Carregar (Upload) na Arduino IDE, o firmware será instalado e a porta serial virtual será configurada automaticamente.

Exemplos de programação

Para validar o funcionamento do microcontrolador e o ambiente de desenvolvimento, utilize o clássico exemplo Blink para alternar o estado do LED onboard a cada 1 segundo:

  1. Acesse o menu Arquivo ➔ Exemplos ➔ 01.Basics ➔ Blink ou copie o código abaixo diretamente no editor:

Abertura do exemplo Blink na Arduino IDE

// Definição do pino do LED integrado (LED_BUILTIN é o GP25 na Raspberry Pi Pico padrão)
const int pinoLed = LED_BUILTIN;

void setup() {
  // Inicializa o pino do LED como uma saída digital
  pinMode(pinoLed, OUTPUT);
}

void loop() {
  // Envia nível lógico ALTO (3,3V) para ligar o LED
  digitalWrite(pinoLed, HIGH);
  // Aguarda 1000 milissegundos (1 segundo) com o LED ligado
  delay(1000);

  // Envia nível lógico BAIXO (0V) para desligar o LED
  digitalWrite(pinoLed, LOW);
  // Aguarda 1000 milissegundos (1 segundo) com o LED desligado
  delay(1000);
}
  1. Clique no botão de seta Carregar (Upload) na barra de ferramentas;
  2. Aguarde o término da compilação e a mensagem Done uploading. O LED onboard começará a piscar imediatamente.

Exemplo 2: Leitura do sensor de temperatura interno do RP2040

O microcontrolador RP2040 possui um sensor de temperatura integrado conectado internamente ao canal analógico ADC4. O código a seguir realiza a leitura periódica do sensor, converte a tensão analógica em graus Celsius e transmite os dados para o Monitor Serial da Arduino IDE:

// Canal analógico interno conectado ao sensor de temperatura do RP2040
const int canalSensorInterno = 4;

void setup() {
  // Inicia a comunicação serial com taxa de transferência de 115200 bps
  Serial.begin(115200);
  // Aguarda até 3 segundos para abertura do Monitor Serial
  while (!Serial && millis() < 3000);
  
  // Imprime cabeçalho informativo de inicialização
  Serial.println("==============================================");
  Serial.println("RoboBuilders - Leitura de Temperatura RP2040");
  Serial.println("==============================================");
}

void loop() {
  // Lê o valor bruto do conversor analógico-digital (faixa de 0 a 1023 ou 4095)
  int leituraBruta = analogRead(canalSensorInterno);
  
  // Converte a leitura de bits para tensão (tensão de referência ADC_VREF = 3,3V)
  float tensaoVolts = leituraBruta * (3.3f / 1023.0f);
  
  // Converte a tensão para temperatura em graus Celsius conforme a fórmula do datasheet do RP2040
  // Fórmula oficial: T = 27 - (V - 0.706) / 0.001721
  float temperaturaCelsius = 27.0f - ((tensaoVolts - 0.706f) / 0.001721f);
  
  // Imprime a temperatura calculada no Monitor Serial
  Serial.print("Temperatura interna do chip: ");
  Serial.print(temperaturaCelsius, 2);
  Serial.println(" °C");
  
  // Aguarda 1,5 segundo antes da próxima leitura
  delay(1500);
}

Exemplo 3: Controle de servo motor com a Raspberry Pi Pico

A arquitetura flexível de temporização da Raspberry Pi Pico permite controlar servomotores padrão (como o SG90 ou MG995) com extrema estabilidade utilizando a biblioteca nativa Servo.h:

// Inclusão da biblioteca de controle de servomotores
#include <Servo.h>

// Instanciação do objeto de controle do servo motor
Servo meuServo;

// Definição do pino de controle conectado à linha de sinal do servo
const int pinoServo = 15;

void setup() {
  // Vincula o objeto do servo ao pino GP15 da placa
  meuServo.attach(pinoServo);
}

void loop() {
  // Posiciona o eixo do servo no ângulo de 0 graus
  meuServo.write(0);
  // Aguarda 1 segundo para estabilização mecânica
  delay(1000);

  // Posiciona o eixo do servo no ângulo central de 90 graus
  meuServo.write(90);
  // Aguarda 1 segundo para estabilização mecânica
  delay(1000);

  // Posiciona o eixo do servo no ângulo máximo de 180 graus
  meuServo.write(180);
  // Aguarda 1 segundo para estabilização mecânica
  delay(1000);
}

Resolução de dúvidas frequentes (FAQ)

PerguntaCausa ProvávelSolução Recomendada
A porta COM da Raspberry Pi Pico não aparece no menu Ferramentas da Arduino IDE.A placa está no modo de fábrica ou com firmware anterior que não inicializou o canal USB CDC serial.Mantenha o botão BOOTSEL pressionado enquanto conecta o cabo USB ao computador. Solte o botão após a conexão. A placa abrirá a unidade RPI-RP2. Clique diretamente no botão Carregar na IDE; a porta COM passará a ser reconhecida nas gravações seguintes.
O processo de compilação ou upload falha com erro de gravação UF2.Cabo USB com defeito (somente de carga) ou unidade montada sem permissão de escrita.Troque o cabo micro USB por um modelo certificado de dados. Verifique se o antivírus não está bloqueando o acesso temporário à unidade removível RPI-RP2.
Posso alimentar a placa com 5V no pino VSYS?Sim, o circuito de regulação interna suporta até 5,5V.O pino VSYS (Pino 39) possui um regulador interno tipo buck-boost com faixa de 1,8V a 5,5V. É perfeitamente seguro alimentá-lo com 5V de fontes chaveadas ou baterias de lítio. Não confunda com os pinos GPIO (que operam estritamente em 3,3V).
Posso conectar sensores de 5V (como o sensor ultrassônico HC-SR04) aos pinos da Pico?O chip RP2040 não suporta tensões superiores a 3,3V em suas entradas.Para sinais de saída do sensor de 5V em direção à Pico, use um divisor resistivo (ex.: resistor de 1 kΩ e 2 kΩ) no pino de retorno (ECHO) para reduzir o nível de sinal para 3,3V.
Como restaurar a placa caso eu queira voltar a usar MicroPython?A gravação em C/C++ substitui a memória Flash externa onde ficava o interpretador.Baixe o arquivo oficial de firmware .uf2 do MicroPython na página da Raspberry Pi. Conecte a Pico em modo BOOTSEL e arraste o arquivo .uf2 para dentro da unidade RPI-RP2.

Conclusão

Este manual abordou de forma completa como configurar, programar e utilizar a placa Raspberry Pi Pico com a IDE do Arduino, integrando conceitos de hardware e etapas práticas de programação:

  • O que é e arquitetura RP2040: plataforma dual-core ARM Cortex-M0+ de 32 bits a 133 MHz, alta capacidade de memória e periféricos PIO exclusivos;
  • Variantes disponíveis: modelos padrão com conector micro USB (RB1052), versão moderna com conector USB Tipo-C (RB1733) e placa miniatura RP2040-Zero (RB1470);
  • Especificações técnicas: detalhamento de alimentação, clock, interfaces seriais (UART, SPI, I2C), conversores ADC e temporizadores;
  • Pinagem e conexões: distribuição dos 40 terminais físicos, mapeamento de GPIOs e advertência crucial sobre a operação estrita em nível lógico de 3,3V;
  • Configuração na Arduino IDE: instalação do core especializado da comunidade Earle Philhower, configuração de URLs de placas e seleção do ambiente;
  • Exemplos práticos de código: upload através do modo BOOTSEL, teste de Blink do LED onboard, leitura do sensor térmico interno do chip RP2040 e acionamento de servo motor;
  • Solução de problemas (FAQ): diagnóstico de portas seriais ausentes, modo de recuperação UF2 e compatibilidade elétrica.

Com seu processador de alto desempenho, periféricos flexíveis e a facilidade de desenvolvimento da Arduino IDE, a Raspberry Pi Pico representa uma das soluções mais eficientes e acessíveis para entusiastas e engenheiros criarem projetos embarcados de robótica e IoT.

Solução de problemas

Olá! Sou o assistente técnico da RoboBuilders. Descreva seu problema com o Como Usar a Raspberry Pi Pico com Arduino: Manual Técnico Completo e eu ajudarei a encontrar a solução.

O assistente usa IA e pode errar. Confirme informações críticas no datasheet oficial do fabricante.