Главная → Контроллеры

Raspberry Pi Pico на RP2040: чем он лучше Arduino и где проигрывает

6 октября 2026 · Контроллеры

Что это за плата

Raspberry Pi Pico — не уменьшенный «Raspberry Pi», а отдельная линейка микроконтроллерных плат на собственном чипе RP2040. Linux тут нет: прошивка заливается в flash и исполняется напрямую, как на Arduino. Но внутри RP2040 заметно больше ресурсов, чем в привычном ATmega328P, и часть возможностей — вроде блоков PIO — на обычных Arduino просто нет. Цифры ниже — из официального Raspberry Pi Pico Datasheet и RP2040 Datasheet.

Чип RP2040 и начинка платы

Сердце платы — RP2040: два ядра Cortex-M0+ с тактовой до 133 МГц, частоту каждого ядра можно менять через встроенный PLL. На кристалле — 264 КБ SRAM, разбитых на шесть независимых банков, что разгружает шину при параллельном доступе ядер и DMA. Собственной flash-памяти в чипе нет — на плате распаян отдельный чип Winbond W25Q16JV на 2 МБ, подключённый по QSPI; при тактовой 125 МГц интерфейс SPI с него выдаёт порядка 62,5 МГц. Код исполняется в режиме XIP прямо из flash, с кэшем 16 КБ на кристалле.

Фишка RP2040, которой нет у Arduino — два блока PIO (Programmable I/O) по восемь state machines. Это крошечные программируемые сопроцессоры: гоняют простые ассемблерные программы независимо от основных ядер и формируют на лету протоколы вроде SPI, VGA или эмуляции SD-карты без нагрузки на CPU.

Питание и GPIO — здесь легко обжечься

У Pico на борту buck-boost преобразователь, который принимает питание в диапазоне VSYS 1,8–5,5 В и выдаёт стабильные 3,3 В для чипа и периферии. Это удобно: можно питать плату хоть от одной литиевой банки, хоть от трёх батареек АА. Вход VBUS — это отдельный пин, который берёт напряжение прямо с USB-разъёма (номинально 5 В ±10%) и физически не связан с логикой VSYS.

Главный источник проблем у новичков, пришедших с Arduino: GPIO Raspberry Pi Pico жёстко зафиксированы на 3,3 В и НЕ толерантны к 5 В. Воткнуть сюда сигнал с 5-вольтового датчика или Arduino Uno напрямую — верный способ спалить вход. Нужен делитель или логический преобразователь уровня. Из 30 линий RP2040 на разъём выведено 26: GPIO0–22 чисто цифровые, GPIO26–28 можно использовать и как АЦП. У линий 26–29 есть встроенный защитный диод на шину 3V3 — поэтому превышать напряжение на них даже при выключенной плате нельзя, диод «протечёт» в питание. Четыре линии (GPIO23–25, 29) заняты внутри платы — управлением SMPS, светодиодом и измерением напряжений — и на разъём не выведены.

Вывод 3V3 можно использовать для питания внешней мелочи, но производитель рекомендует не превышать нагрузку 300 мА — это именно рекомендация по датащиту, не абсолютный предел чипа, но превышать её не стоит.

Характеристики по datasheet

Параметр Значение
Процессор 2× ARM Cortex-M0+, до 133 МГц
SRAM 264 КБ, 6 независимых банков
Flash 2 МБ (Winbond W25Q16JV, внешний чип по QSPI)
GPIO 26 выведенных линий из 30 на чипе, фиксированные 3,3 В, НЕ 5В-толерантны
АЦП 12 бит, 500 ksps, GPIO26–28 (+ внутренний канал ADC3 на VSYS/3)
Периферия 2×UART, 2×I2C, 2×SPI, 16×PWM, 2 блока PIO по 8 state machines
USB USB 1.1 controller/PHY, режимы device и host
Питание VSYS 1,8–5,5 В (встроенный buck-boost SMPS → 3,3 В)
Питание VBUS 5 В ±10% от USB-разъёма
Лимит на 3V3-выход рекомендовано не более 300 мА нагрузки
Ток в DORMANT около 0,8–1,4 мА по VBUS @5В (из таблиц datasheet)
Размер платы 51×21 мм, 40 пинов, шаг 2,54 мм (DIP-совместимый)
Рабочая температура −20…+85 °C (с учётом самонагрева)

Подключение к Arduino и ESP32

Pico не заменяет Arduino в проекте — он скорее отдельный узел, который ставят рядом или вместо него. Для датчиков на 3,3 В (I2C-дисплеи, большинство современных модулей) GPIO подключаются напрямую, как на ESP32. Если нужно завести на Pico сигнал с 5-вольтовой логики Arduino Uno — между выходом Arduino и входом Pico ставят делитель напряжения или преобразователь уровня (74HC4050 или аналог); в обратную сторону делитель не нужен — 3,3 В Arduino Uno воспринимает как логическую единицу.

Схема минимального запуска: VSYS Pico — на 5 В от USB-блока питания или батарейного модуля (в пределах 1,8–5,5 В), GND — общий с остальной схемой, GPIO для датчика — через делитель, если источник сигнала 5-вольтовый.

// MicroPython для Raspberry Pi Pico: мигаем встроенным светодиодом
// и читаем аналоговый датчик на GPIO26 (ADC0).
// Важно: напряжение на GPIO26 не должно превышать 3,3 В.

from machine import Pin, ADC
import time

led = Pin(25, Pin.OUT)      # встроенный LED подключён именно к GPIO25
sensor = ADC(Pin(26))       # GPIO26 = ADC0, диапазон 0-3,3 В

while True:
    raw = sensor.read_u16()         # 0..65535
    voltage = raw * 3.3 / 65535     # пересчёт в вольты
    print("ADC0:", round(voltage, 3), "V")

    led.toggle()
    time.sleep(0.5)

Частые ошибки

  1. Подают 5 В прямо на GPIO. Самая частая причина убитых Pico. Любой сигнал от Arduino Uno, старого датчика или реле на 5 В идёт через делитель или level shifter.
  2. Путают VSYS и 3V3. VSYS — вход для внешнего питания (1,8–5,5 В), 3V3 — выход встроенного стабилизатора: питание на него подавать нельзя, можно только брать нагрузку до 300 мА.
  3. Ищут питание на GPIO23–25 и 29. Эти линии не выведены на разъём — заняты управлением SMPS, светодиодом и измерением VSYS/3.
  4. Ждут от Pico Wi-Fi «из коробки». У обычного Pico на RP2040 беспроводного модуля нет — для Wi-Fi/BLE нужна версия Pico W с чипом CYW43439.
  5. Загружают прошивку не в BOOTSEL-режиме. Чтобы плата появилась как флешка для записи .uf2, нужно держать кнопку BOOTSEL при подключении USB — иначе Pico стартует в обычном режиме и диск не монтируется.

Когда брать Pico, а когда Arduino или ESP32

Для PIO-трюков (программный VGA, нестандартные протоколы) или когда нужны два ядра и много SRAM за несколько долларов — Pico выигрывает у классической Arduino Uno или Nano по производительности. Для IoT-проекта с Wi-Fi из коробки проще взять ESP32 или Pico W. А для простого учебного старта без непривычного MicroPython классическая Arduino с её IDE и готовыми примерами удобнее новичку.

Информация собрана из открытых источников и паспортов производителей и не является истиной в последней инстанции. Характеристики, распиновку и совместимость проверяйте по документации конкретной партии модуля перед покупкой и подключением.

Читайте дальше

Датчики

Ультразвуковой дальномер HC-SR04: обзор и подключение

Для чего он нужен HC-SR04 — ультразвуковой дальномер, с которого начинается почти каждый проект про роботов и умные вещи. Два «глаза» на…

Читать обзор →
Датчики

Датчик DHT22 (AM2302): характеристики, подключение к Arduino и частые ошибки

DHT22 — самый простой способ научить устройство измерять температуру и влажность. Один датчик, один сигнальный провод, готовая библиотека — и через десять…

Читать обзор →
Контроллеры

Обзор: ESP32 против ESP8266 — что брать новичку в 2026 году

Что это такое ESP8266 и ESP32 — два самых ходовых Wi-Fi-чипа в самоделках: вокруг них построены NodeMCU, Wemos D1 Mini и десятки…

Читать обзор →