Руководства · 15 мин чтения

Raspberry Pi или Arduino: в чём разница и что выбрать

Raspberry Pi или Arduino: Linux-компьютер против микроконтроллера. Сравниваем время загрузки, питание, GPIO, аналоговые входы, язык и цену, плюс подбор проектов и код.

Разница между Raspberry Pi и Arduino умещается в одно предложение: Raspberry Pi — это компьютер размером с банковскую карту, на котором работает операционная система Linux, а Arduino — это плата микроконтроллера, которая снова и снова выполняет одну загруженную в неё программу. К Pi можно подключить клавиатуру, мышь и монитор, сидеть в интернете, обрабатывать изображения с камеры на Python или держать дома небольшой сервер. Arduino начинает работать сразу после подачи питания, читает датчики с микросекундной точностью, управляет моторами и светодиодами без единой заминки и может днями работать от батареек.

Коротко: Raspberry Pi лучше подходит для проектов, где нужны камера, обработка изображений, графический интерфейс или сетевые сервисы, а Arduino выигрывает, когда нужны датчики, моторы, точные тайминги и низкое потребление. В этом руководстве мы сравниваем две платформы на реальных цифрах: время загрузки, потребление энергии, GPIO и аналоговые входы, язык программирования, работа в реальном времени и цена. Затем в таблице показываем, что выбрать для какого проекта, даём пример кода, который запускает обе платы вместе через USB-кабель, и объясняем, где место Raspberry Pi Pico: несмотря на название, он гораздо ближе к Arduino.

Плата микроконтроллера Arduino Uno R3
Arduino Uno R3: операционной системы на ней нет; ATmega328P на 16 MHz выполняет единственную загруженную программу сразу после подачи питания.

Что такое Raspberry Pi и что такое Arduino?

Raspberry Pi — это одноплатный компьютер (SBC), разработанный британским фондом Raspberry Pi Foundation. У Raspberry Pi 5 четырёхъядерный процессор Arm Cortex-A76 на 2,4 GHz, от 1 до 16 ГБ ОЗУ, два выхода HDMI 4K, USB 3.0, гигабитный Ethernet, Wi-Fi и Bluetooth. Вместо жёсткого диска у него карта microSD (или NVMe SSD на плате расширения), а работает он под управлением основанной на Debian Raspberry Pi OS. Иными словами, это маленький и дешёвый родственник твоего настольного компьютера; единственное отличие — 40-контактная гребёнка GPIO по краю платы, к которой можно напрямую подключать светодиоды, кнопки и датчики.

Arduino же — открытая платформа на микроконтроллерах, появившаяся в Италии. Её самая распространённая плата, Arduino Uno R3, построена на 8-битном ATmega328P с частотой 16 MHz: процессор, 2 КБ ОЗУ, 32 КБ памяти программ и аналого-цифровой преобразователь находятся внутри одной маленькой микросхемы. Здесь нет ни операционной системы, ни файловой системы, ни видеовыхода. Код, написанный в Arduino IDE на компьютере, компилируется и записывается во флеш-память платы; при каждом включении один раз выполняется setup(), а затем бесконечно — loop(). Чтобы познакомиться с платформой поближе, прочитай статью Что такое Arduino?.

Быстрый ответ: что выбрать в какой ситуации?

Твоя ситуацияВыборПочему?
Первые шаги в электроникеArduino UnoПросто, надёжно, напрямую работает с модулями на 5 V
Камера, распознавание лиц или объектовRaspberry PiВычислительная мощность, ОЗУ, поддержка OpenCV и камер
Машинка-робот, сервопривод, шаговый двигательArduinoНепрерывные и точные тайминги
Веб-сервер, база данных, центр умного домаRaspberry PiLinux, сетевые сервисы, хранилище
Датчик, который днями работает от батареекArduino или PicoПотребление в милливаттах, а не в ваттах
Устройство с экраном, клавиатурой и мышьюRaspberry PiРабочий стол, браузер, HDMI
Изучение Python и управление железомRaspberry Pi Pico или Raspberry PiMicroPython или полноценный Python
Обработка изображений вместе с управлением моторамиRaspberry Pi + ArduinoPi принимает решения, Arduino их исполняет

Сравнительная таблица: Raspberry Pi 5, Arduino Uno и Raspberry Pi Pico

ХарактеристикаRaspberry Pi 5Arduino Uno R3Raspberry Pi Pico
ТипОдноплатный компьютерПлата микроконтроллераПлата микроконтроллера
ПроцессорBCM2712, 4 ядра Cortex-A76, 2,4 GHzATmega328P, 8 бит, 16 MHzRP2040, 2 ядра Cortex-M0+, 133 MHz
ОЗУ (RAM)1, 2, 4, 8 или 16 ГБ2 КБ264 КБ
ХранилищеКарта microSD или NVMe SSD32 КБ флеш-памяти2 МБ флеш-памяти
Операционная системаRaspberry Pi OS (Linux)НетНет
Время загрузкиОколо 15–40 секундМеньше 1 секундыМеньше 1 секунды
ПотреблениеОколо 3 W в простое, 7–8 W под нагрузкойОколо 0,25 W (50 mA)Около 0,1 W (20–25 mA)
ПитаниеUSB-C, рекомендуется 5 V 5 AUSB 5 V или гнездо питания 7–12 VUSB 5 V или 1,8–5,5 V на VSYS
Логическое напряжение3,3 V (5 V не выдерживает)5 V3,3 V (5 V не выдерживает)
GPIO28 GPIO на 40-контактной гребёнке20 (14 цифровых + 6 аналоговых)26
Аналоговый вход (АЦП)Нет (нужен внешний АЦП)6 каналов, 10 бит3 канала, 12 бит
Аппаратный ШИМНа 4 пинах (GPIO 12, 13, 18, 19)6 пиновНа всех GPIO, 16 каналов
Беспроводная связьWi-Fi 5 + Bluetooth 5.0НетНет (Wi-Fi + Bluetooth на Pico W)
Видео и звук2 × HDMI 4K, 2 разъёма для камерНетНет
ПрограммированиеPython, C/C++, Node.js и почти любой язык LinuxArduino C/C++MicroPython, C/C++ SDK, Arduino
Реальное времяНет (планировщик Linux)Да, на уровне микросекундДа, а с PIO ещё точнее
Внезапное отключение питанияКарта SD может повредитьсяБез проблемБез проблем
Рекомендованная цена (октябрь 2026)От 45 $ (1 ГБ) до более чем 300 $ (16 ГБ)Оригинал около 25–30 $, клон 5–10 $4 $ (Pico W 6 $, Pico 2 5 $)

Пара слов о ценах: микросхемы памяти LPDDR4, которые стоят в Raspberry Pi 4 и 5, сильно подорожали из-за спроса со стороны дата-центров для ИИ, поэтому с декабря 2025 года Raspberry Pi несколько раз поднимала цены; на октябрь 2026 года Pi 5 с 2 ГБ стоит 77,50 $. Цена Pi Zero 2 W, где используется более старая память, осталась на уровне 15 $. Кроме того, Pi нужны карта microSD, блок питания USB-C на 27 W и желательно охлаждение, а это ещё 20–30 $ к общей сумме. Arduino Uno или Pico нужен только USB-кабель.

Фундаментальная разница между Linux-компьютером и микроконтроллером

На Raspberry Pi написанная тобой программа на Python — лишь один из сотен процессов, которыми Linux управляет одновременно. Ядро по очереди отдаёт процессор сетевому подключению, дисплею, USB-устройствам, фоновым службам и твоей программе. Это очень мощная схема: можно одновременно писать логи в файлы, держать веб-сервер и видеопоток с камеры, а код править по SSH из соседней комнаты. На Arduino процессор выполняет только твой код. Между ним и железом нет операционной системы, поэтому вызов digitalWrite меняет состояние пина за несколько микросекунд, и каждый раз за одно и то же время. На практике эта разница означает следующее:

  • Многозадачность: Pi одновременно запускает браузер, скрипт на Python и базу данных; Arduino выполняет один loop(), а несколько задач приходится распределять вручную с помощью millis().
  • Хранилище: на Pi можно держать гигабайты фото, логов и баз данных; на Uno программа должна уместиться в 32 КБ, а переменные — в 2 КБ ОЗУ.
  • Сеть: Pi подключается к интернету по Wi-Fi и Ethernet прямо из коробки; у Uno нет сетевого подключения, поэтому нужен ESP32 или дополнительный модуль.
  • Обслуживание: Pi — это компьютер, поэтому ему нужны обновления, пароль пользователя и забота о безопасности; код в Arduino загружается один раз, и она годами работает одинаково.
  • Когда что-то идёт не так: если программа на Pi падает, система продолжает работать и сообщение об ошибке можно прочитать; если код на Arduino зависает, плата молча останавливается, но сторожевой таймер (watchdog) может автоматически её перезагрузить.

Время загрузки и внезапное отключение питания

После подачи питания на Arduino программа стартует меньше чем за секунду; даже при нажатии кнопки сброса загрузчик ждёт лишь мгновение. Raspberry Pi сначала загружает свой загрузчик, затем ядро Linux и службы; в зависимости от модели и скорости карты SD до рабочего стола проходит 15–40 секунд. Это важно для устройств, которые должны работать сразу после отключения электричества: дверного звонка, сигнализации или системы полива. Выключение ещё критичнее: Linux постоянно пишет на карту SD, и если питание пропадёт посреди записи, файловая система может повредиться, а Pi может больше не загрузиться. Программа Arduino хранится во флеш-памяти неизменной, поэтому вилку можно выдернуть когда угодно.

Не выключай Raspberry Pi, выдёргивая вилку: сначала выполни sudo poweroff или выбери «Завершение работы» (Shutdown) на рабочем столе и подожди несколько секунд. Для устройства, которое будут часто отключать от сети, систему можно сделать доступной только для чтения с помощью параметра Overlay File System в разделе Performance Options утилиты raspi-config. Для Pi 5 используй блок питания USB-C на 5 V 5 A (27 W); при слабом источнике появится предупреждение о низком напряжении, vcgencmd get_throttled вернёт значение, отличное от 0x0, а плата может перезагружаться под нагрузкой.

Потребление энергии и работа от батарей

По потреблению разница в 10–30 раз. Raspberry Pi 5 потребляет около 3 W в простое и 7–8 W при полной загрузке процессора, а с USB-накопителем и камерой ещё больше. Arduino Uno берёт около 50 mA, то есть 0,25 W при 5 V, а Pico — около 0,1 W. В таблице ниже приведено примерное время работы от пауэрбанка на 10 000 mAh. Расчёт такой: 10 000 mAh на этикетке указаны для элементов на 3,7 V, это примерно 37 Wh; после потерь на преобразование в 5 V остаётся около 30 Wh. Раздели это на потребление платы в ваттах. Для своей схемы воспользуйся калькулятором времени работы от батареи.

ПлатаТипичное потреблениеОт пауэрбанка на 10 000 mAh
Raspberry Pi 5 (простой)Около 3 WОколо 10 часов
Raspberry Pi 5 (полная нагрузка)7–8 WОколо 4 часов
Raspberry Pi Zero 2 WОколо 0,6 WОколо 2 дней
Arduino Uno R3Около 0,25 WОколо 5 дней
Raspberry Pi PicoОколо 0,1 WОколо 12 дней (если пауэрбанк не отключится)
Спящая Arduino Pro Mini (без светодиода и стабилизатора)МикроамперыМесяцы прямо от батарей
Большинство пауэрбанков сами отключаются, когда ток падает ниже 50–100 mA, поэтому маломощные устройства на Pico или Arduino могут погаснуть через несколько секунд. Для таких проектов используй батареи напрямую, аккумулятор 18650 или пауэрбанк с режимом «всегда включён» (always on). Для беспроводных датчиков, которые должны месяцами работать от батарей, отличный вариант — глубокий сон ESP32.

Пины GPIO и аналоговый вход

На 40-контактной гребёнке Raspberry Pi 28 GPIO; GPIO 0 и 1 зарезервированы под ID EEPROM плат HAT, и их обычно не трогают. Эти пины работают на 3,3 V, не выдерживают 5 V и отдают лишь несколько миллиампер на пин (максимум около 16 mA): светодиод через последовательный резистор зажечь можно, но катушку реле или мотор напрямую подключать нельзя. Самый большой пробел — отсутствие аналоговых входов: аналога analogRead на Pi нет, поэтому для чтения аналогового датчика вроде потенциометра, фоторезистора (LDR) или датчика влажности почвы нужна внешняя микросхема АЦП. У Arduino Uno 6 аналоговых входов, и почти любой датчик на 5 V подключается к ней напрямую.

ПараметрRaspberry PiArduino UnoRaspberry Pi Pico
Логический уровень3,3 V5 V3,3 V
Ток на пинНесколько mA, максимум около 16 mAРекомендуется 20 mA, абсолютный максимум 40 mA4 mA по умолчанию, настраивается до 12 mA
Аналоговое чтениеНет; нужен MCP3008 или ADS1115analogRead(), 0–1023ADC(26).read_u16(), 0–65535
ШИМАппаратный на 4 пинах, программный на остальныхanalogWrite() на 6 пинахАппаратный на каждом пине
Нумерация пиновНомер GPIO не совпадает с физическим пином (GPIO17 = пин 11)Номер, напечатанный на платеНомер GP (GP15 = пин 20)
Модули на 5 V, например HC-SR04Нужен делитель напряженияНапрямуюНужен делитель напряжения

Подключить аналоговый датчик к Pi можно двумя способами. Первый — модуль АЦП, например 8-канальный 10-битный MCP3008 на SPI или 4-канальный 16-битный ADS1115 на I2C; библиотека gpiozero поддерживает MCP3008 из коробки. Второй — подключить датчики к Arduino или Pico и отправлять показания на Pi по USB; код для этого приведён ниже. Как работает аналоговое чтение, рассказано в статье Что такое АЦП?, а карты пинов плат есть в утилите распиновки.

Язык программирования и среда разработки

Arduino программируют на языке Arduino, основанном на C/C++: код пишется в Arduino IDE на компьютере, компилируется и загружается в плату по USB. На Raspberry Pi код пишется и запускается прямо на самой Pi, без отдельного шага загрузки. Самый популярный язык — Python, а в Raspberry Pi OS заранее установлены редактор Thonny и библиотека gpiozero. Можно использовать и любой другой язык, который работает в Linux: C, C++, Node.js, Go или Java. Вот как выглядит на Pi программа на Python «светодиод горит, пока нажата кнопка»:

Python
1from gpiozero import LED, Button
2from signal import pause
3
4led = LED(17)       # GPIO17 = fiziksel pin 11 / GPIO17 = physical pin 11
5buton = Button(27)  # GPIO27 = fiziksel pin 13, dahili pull-up açık / physical pin 13, internal pull-up on
6
7buton.when_pressed = led.on    # Basınca LED yanar / LED on when pressed
8buton.when_released = led.off  # Bırakınca söner / LED off when released
9
10pause()  # Programı açık tut, olayları bekle / keep running and wait for events

Подключи кнопку между GPIO27 и GND, а светодиод к GPIO17 через резистор 220 Ω; класс Button включает встроенный подтягивающий резистор автоматически. Сохрани файл как buton_led.py и запусти, набрав в терминале python3 buton_led.py. Обрати внимание: на Raspberry Pi 5 пинами GPIO управляет новая микросхема RP1, поэтому старая библиотека RPi.GPIO не работает и падает с ошибкой «RuntimeError: Cannot determine SOC peripheral base address» (не удаётся определить базовый адрес периферии); в новых проектах используй gpiozero. Если в актуальной Raspberry Pi OS команда pip install выдаёт ошибку «externally-managed-environment» (окружение управляется системой), установи пакет через sudo apt install python3-... или создай виртуальное окружение (venv). На Raspberry Pi Pico те же знания Python применяются в MicroPython.

Работа в реальном времени: почему для моторов и датчиков Arduino?

Linux делит процессор между программами, поэтому твой код на Python иногда может приостанавливаться на несколько миллисекунд, и предсказать, когда это случится, невозможно. Для веб-страницы это неважно, а вот для железа, которое зависит от таймингов, это серьёзная проблема. Несколько конкретных примеров:

  • Ультразвуковой датчик расстояния HC-SR04: звуку нужно около 58 µs на путь туда и обратно на каждый 1 см расстояния. Если при измерении времени эха вкрадётся задержка в 100 µs, показание будет неверным на 1,7 см; на Pi такие отклонения — обычное дело.
  • Сервопривод: положение сервопривода задаётся импульсом 1–2 мс в сигнале 50 Hz, и 1 градус соответствует примерно 5,5 µs. Сервопривод, управляемый программным ШИМ на Pi, дрожит; на Arduino он стоит неподвижно.
  • Светодиодная лента WS2812B: каждый бит длится 1,25 µs, а тайминг требует точности 0,15 µs; Pi справляется с этим только с помощью аппаратного SPI или ШИМ вместе с DMA, а Arduino или Pico управляют лентой напрямую.
  • Шаговые двигатели и энкодеры: тысячи шаговых импульсов в секунду или быстрые сигналы энкодера Arduino ловит без пропусков с помощью прерываний.
Если на Pi действительно нужны точные тайминги, используй пины аппаратного ШИМ (GPIO 12, 13, 18, 19) или 16-канальную плату драйвера сервоприводов PCA9685. Более чистое решение — отдать тайминги Arduino или Pico, а с Pi только обмениваться командами; блоки PIO в Pico созданы именно для этого (см. PIO и два ядра Pico).

Что выбрать для какого проекта?

ПроектЛучшая платаПочему?
Камера, распознающая лица или объектыRaspberry Pi 5OpenCV, Picamera2, ИИ-ускорители
Камера наблюдения по Wi-Fi с отправкой фотоESP32-CAM или Raspberry Pi Zero 2 WДля простых снимков хватит ESP32-CAM, для видеопотока и записи нужна Pi
Робот, объезжающий препятствия или следующий по линииArduinoТочный непрерывный цикл для датчиков и моторов
Робот, который ориентируется с помощью камерыRaspberry Pi + ArduinoPi видит и решает, Arduino управляет моторами
Автополив растенийArduino или ESP32Аналоговый датчик влажности, низкое потребление, мгновенный старт
Центр умного дома (Home Assistant)Raspberry PiПостоянно включённый сервер, база данных, веб-интерфейс
МетеостанцияESP32 или Pico WWi-Fi и низкое потребление одновременно
Ретро-приставка, медиаплеерRaspberry PiHDMI, звук, USB-геймпад
Регистратор данных на батарейкахArduino Pro Mini или PicoОчень низкое потребление в режиме сна
Уроки электроники, первые схемыArduino Uno5 V, выносливые пины, масса примеров

Камеры и обработка изображений — самая сильная сторона Raspberry Pi. Модуль Camera Module 3 на 12 Мп с автофокусом подключается к разъёму камеры на плате шлейфом; фото можно сделать командой rpicam-still -o photo.jpg, а обнаружение движения, отслеживание цвета, чтение QR-кодов или распознавание лиц реализуются на Python с библиотеками Picamera2 и OpenCV. Для более тяжёлых моделей ИИ можно добавить плату-ускоритель вроде AI HAT+ или взять AI Camera, которая обрабатывает изображение прямо внутри камеры. Разъёмы камер у Raspberry Pi 5 меньше (22-контактные), чем у старых моделей, поэтому для старых камер нужен подходящий переходной шлейф. В 2 КБ ОЗУ Arduino Uno не поместится даже одна маленькая фотография; если нужно просто делать снимки и отправлять их в Telegram, хорошая золотая середина — недорогая ESP32-CAM.

А вот в датчиках и моторах у Arduino практически нет конкурентов. Она работает на 5 V, поэтому большинство модулей на рынке, например HC-SR04, модули реле, драйвер моторов L298N и символьные LCD, подключаются без дополнительных схем, а шилды с драйверами моторов, реле и датчиками вставляются прямо сверху на плату. В машинке-роботе Arduino десятки раз в секунду читает датчик расстояния и останавливает моторы в тот же миг, как видит препятствие; время реакции никогда не зависит от того, насколько занята операционная система. Сервоприводы и шаговые двигатели работают на Arduino плавно по той же причине.

Ультразвуковой датчик HC-SR04
Ультразвуковой датчик HC-SR04
Сервопривод SG90
Сервопривод SG90
Драйвер моторов L298N
Драйвер моторов L298N
Датчик DHT11
Датчик DHT11

Вместе: Raspberry Pi + Arduino

В большинстве продвинутых проектов лучшее решение — использовать обе платы. Представь человеческое тело: Raspberry Pi — это мозг; она обрабатывает изображение с камеры, выходит в интернет, ведёт записи и принимает решения. Arduino — это спинной мозг и мышцы; она читает датчики, управляет моторами и в экстренной ситуации реагирует рефлекторно, не спрашивая Pi. Например, в машинке-роботе с камерой Pi находит линию на изображении и отправляет команду «поверни налево»; Arduino переводит её в скорости моторов и сама останавливается, если появится препятствие. Распространённые способы соединить две платы:

ПодключениеКак?На что обратить внимание
Последовательный порт по USB (проще всего)Подключи Arduino к USB-порту Pi; она появится как /dev/ttyACM0 или /dev/ttyUSB0Pi заодно питает Arduino, преобразователь уровней не нужен
UART (GPIO 14 и 15)TX Pi → RX Arduino, TX Arduino → RX Pi, общая GNDДля сигнала TX Arduino на 5 V нужен делитель напряжения
I2CPi — ведущий, Arduino — ведомый с адресом вроде 0x08Рекомендуется преобразователь уровней
Wi-Fi / MQTTESP32 отправляет показания по сети MQTT-брокеру на PiБез проводов, но с некоторой сетевой задержкой
  1. Загрузи приведённый ниже код Arduino в плату с компьютера (можно загрузить его и с Pi через arduino-cli).
  2. Подключи Arduino к Pi USB-кабелем и узнай имя порта, набрав в терминале ls /dev/ttyACM* /dev/ttyUSB*. Оригинальная Uno обычно видна как /dev/ttyACM0, клоны с микросхемой CH340 — как /dev/ttyUSB0.
  3. Если библиотека pyserial не установлена, установи её командой sudo apt install python3-serial.
  4. Если у твоего пользователя нет доступа к последовательному порту, введи sudo usermod -a -G dialout $USER, затем выйди из системы и войди снова.
  5. Сохрани код на Python как pi_arduino.py и запусти командой python3 pi_arduino.py; если в Arduino IDE открыт монитор порта, сначала закрой его.
C++ (Arduino IDE)
1// Arduino Uno: A0 değerini Pi'ye gönderir, Pi'den gelen komutla LED'i yönetir
2// Arduino Uno: sends the A0 reading to the Pi and drives the LED on the Pi's command
3const int SENSOR_PIN = A0;      // LDR ya da potansiyometre / LDR or potentiometer
4const int LED_PIN = 13;         // Dahili LED / built-in LED
5unsigned long sonGonderim = 0;  // Son gönderim zamanı / time of the last send
6
7void setup() {
8  Serial.begin(115200);         // Pi tarafıyla aynı hız / same baud rate as the Pi
9  pinMode(LED_PIN, OUTPUT);
10}
11
12void loop() {
13  // Pi'den komut geldi mi? / has a command arrived from the Pi?
14  if (Serial.available()) {
15    String komut = Serial.readStringUntil('\n');  // Satır sonuna kadar oku / read up to the newline
16    komut.trim();                                  // Boşluk ve \r karakterlerini sil / strip spaces and \r
17    if (komut == "LED1") digitalWrite(LED_PIN, HIGH);
18    else if (komut == "LED0") digitalWrite(LED_PIN, LOW);
19  }
20
21  // 500 ms'de bir ölçüm gönder, loop'u bekletmeden / send a reading every 500 ms without blocking
22  if (millis() - sonGonderim >= 500) {
23    sonGonderim = millis();
24    int deger = analogRead(SENSOR_PIN);  // 0-1023
25    Serial.print("A0:");
26    Serial.println(deger);               // Örnek: A0:512 / example: A0:512
27  }
28}
Python
1import time
2import serial  # sudo apt install python3-serial
3
4# Orijinal Uno: /dev/ttyACM0, CH340'lı klon: /dev/ttyUSB0 / genuine Uno: /dev/ttyACM0, CH340 clone: /dev/ttyUSB0
5ser = serial.Serial("/dev/ttyACM0", 115200, timeout=1)
6time.sleep(2)             # Port açılınca Arduino yeniden başlar / opening the port resets the Arduino
7ser.reset_input_buffer()  # Eski verileri temizle / drop stale data
8
9ESIK = 300                # Karanlık eşiği, sensörüne göre ayarla / darkness threshold, tune it for your sensor
10led_durum = None
11
12while True:
13    satir = ser.readline().decode("utf-8", errors="ignore").strip()
14    if not satir.startswith("A0:") or not satir[3:].isdigit():
15        continue          # Boş ya da yarım satırı atla / skip empty or partial lines
16    deger = int(satir[3:])
17    print("Sensor:", deger)
18
19    yeni = "LED1" if deger < ESIK else "LED0"  # Karanlıkta LED'i yak / LED on in the dark
20    if yeni != led_durum:                      # Yalnız değişince gönder / send only on change
21        ser.write((yeni + "\n").encode())
22        led_durum = yeni

Каждые 500 мс Arduino отправляет строку вида «A0:512» и слушает команды «LED1» или «LED0», заканчивающиеся переводом строки; благодаря millis() ожидание команд никогда не задерживает измерения. На стороне Python важна строка time.sleep(2): когда Pi открывает последовательный порт, Arduino автоматически перезагружается, и всё, что отправлено в первые две секунды, теряется. Подбери порог 300 под свой датчик; в зависимости от того, как подключён фоторезистор, значение в темноте может расти или падать. Подробнее о последовательной связи — в статьях Последовательная связь Arduino и Python и Что такое UART?.

Если подключить Arduino не через USB, а к пинам GPIO 14 (TX) и GPIO 15 (RX) на Pi, линия TX Arduino выдаёт 5 V и может повредить пин RX на Pi. Поставь между ними делитель напряжения: 1 kΩ последовательно с TX Arduino и 2 kΩ между RX Pi и GND дают 5 × 2 / (1 + 2) = 3,33 V. Сигнал TX от Pi на 3,3 V Arduino обычно читает правильно; для I2C и SPI используй преобразователь логических уровней.

Где место Raspberry Pi Pico: Raspberry Pi по названию, микроконтроллер по сути

Здесь чаще всего возникает путаница. Хотя Raspberry Pi Pico выпускает Raspberry Pi, это не компьютер, а плата микроконтроллера, как Arduino: у неё нет операционной системы, она стартует мгновенно, потребляет около 0,1 W и работает в реальном времени. В её основе двухъядерная микросхема RP2040, которую Raspberry Pi разработала сама (в Pico 2 стоит RP2350 на 150 MHz). По сравнению с Arduino Uno у неё гораздо больше ОЗУ (264 КБ), 12-битный АЦП и блоки PIO для задач с критичными таймингами, а программируют её на MicroPython, C/C++ или в Arduino IDE. За 4 $ она дешевле Arduino Uno, но работает на 3,3 V, поэтому с модулями на 5 V нужна осторожность. Подробности — в статье Что такое Raspberry Pi Pico?.

Плата микроконтроллера Raspberry Pi Pico
Raspberry Pi Pico: несмотря на название Raspberry Pi, операционной системы на ней нет; как и Arduino, это плата микроконтроллера на 3,3 V, которая выполняет одну программу.

Главное преимущество Pico в этом сравнении в том, что она работает на том же уровне 3,3 V, что и Raspberry Pi: её пины UART можно соединить с Pi напрямую без преобразователя уровней или просто подключить её по USB и использовать как Arduino. Приведённый ниже код на MicroPython отправляет данные в том же формате «A0:значение», что и код Arduino выше, и слушает те же команды для светодиода, так что скрипт на Python на Pi работает без единого изменения. Сохрани код на Pico как main.py через Thonny, а затем закрой Thonny, чтобы последовательный порт освободился для скрипта на Pi.

MicroPython
1import sys, select, time
2from machine import ADC, Pin
3
4sensor = ADC(26)        # GP26 = ADC0 (fiziksel pin 31) / GP26 = ADC0 (physical pin 31)
5led = Pin(25, Pin.OUT)  # Pico dahili LED; Pico W'de Pin("LED") / onboard LED; use Pin("LED") on Pico W
6poll = select.poll()
7poll.register(sys.stdin, select.POLLIN)  # USB'den gelen veriyi dinle / listen for data over USB
8son = time.ticks_ms()
9
10while True:
11    # Pi'den komut var mı? / is there a command from the Pi?
12    if poll.poll(0):
13        komut = sys.stdin.readline().strip()
14        if komut == "LED1":
15            led.on()
16        elif komut == "LED0":
17            led.off()
18
19    # 500 ms'de bir, Arduino ile aynı biçimde gönder / every 500 ms, same format as the Arduino
20    if time.ticks_diff(time.ticks_ms(), son) >= 500:
21        son = time.ticks_ms()
22        deger = sensor.read_u16() >> 6  # 0-65535 -> 0-1023
23        print("A0:" + str(deger))

Да и границы становятся всё более размытыми. В 2025 году Arduino представила Arduino UNO Q, которая объединяет оба мира на одной плате: на этой плате размером с Uno стоят четырёхъядерный процессор Qualcomm с Debian Linux и микроконтроллер STM32U585, который выполняет скетчи Arduino в реальном времени. Иными словами, архитектура «Pi + Arduino» теперь умещается на одной плате. Логика при этом не меняется: сторона Linux отвечает за сеть, видео и приложение, а сторона микроконтроллера — за пины и тайминги. Если понимать различия из этой статьи, от таких гибридных плат можно получить гораздо больше.

Частые ошибки и заблуждения

  • «Raspberry Pi Pico — это маленькая Raspberry Pi»: нет; на ней не работает Linux и нет выхода HDMI. Pico — микроконтроллер, и место ей в одном классе с Arduino.
  • Сигнал 5 V на пин Pi: если пин ECHO датчика HC-SR04 или линию TX Arduino подключить прямо к GPIO, можно навсегда повредить пин или даже процессор; используй делитель напряжения.
  • Поиски analogRead на Pi: у Raspberry Pi нет аналоговых входов; используй MCP3008, ADS1115 или вспомогательную Arduino или Pico.
  • Выключение выдёргиванием вилки: это самый быстрый способ испортить карту SD; каждый раз используй sudo poweroff.
  • Питание Pi 5 от зарядки телефона: с источником, который не выдаёт 5 V 5 A, Pi 5 ограничивает суммарный ток USB-портов до 600 mA и может перезагружаться под нагрузкой.
  • Ошибка «Permission denied: '/dev/ttyACM0'»: твоего пользователя нет в группе dialout; выполни команду usermod и войди в систему снова. При ошибке «Device or resource busy» (устройство занято) порт держит другая программа (монитор порта или Thonny).
  • Мысль «Arduino устарела, теперь есть Pi»: это не конкуренты, а инструменты для разных задач; большинство устройств, от стиральных машин до автомобилей, и сегодня работают на микроконтроллерах.
Если непонятно, с чего начать, изучи основы электроники на Arduino Uno: со светодиодами, кнопками, датчиками и моторами ток, напряжение и тайминги видны на практике. Когда появится идея, для которой нужны камера, сеть или экран, добавь Raspberry Pi; к тому моменту опыт с Arduino поможет безопасно работать с GPIO на Pi. При выборе платы помогут и статьи Какую Arduino купить? и Arduino или ESP32?.

Итак, Raspberry Pi — это компьютер, который думает и видит, а Arduino — контроллер, который мгновенно превращает то, что чувствует, в действие; хороший проект часто объединяет сильные стороны обеих. В приложении BlueGrays есть десятки проектов на Arduino, ESP32 и Raspberry Pi Pico, от светодиодов и датчиков до роботов и проектов с Wi-Fi, у каждого — пошаговая схема подключения и готовый код, и начать можно с бесплатных.

Частые вопросы

Чем отличаются Raspberry Pi и Arduino?

Raspberry Pi — это одноплатный компьютер с операционной системой Linux; с экраном, клавиатурой, интернетом и камерой его используют как обычный ПК. Arduino — это плата микроконтроллера без операционной системы, которая мгновенно и в реальном времени выполняет одну загруженную программу. Pi сильна в сложных вычислениях и сетевых задачах, Arduino — в работе с датчиками, моторами и задачах с низким потреблением.

Что купить новичку: Raspberry Pi или Arduino?

Если цель — изучить электронику, начни с Arduino Uno: она напрямую работает с модулями на 5 V, прощает больше ошибок, и примеров для неё огромное количество. Если главная цель — Linux, программирование на Python, камеры или серверные проекты, лучшим первым шагом будет Raspberry Pi. Для тех, кому нравится Python и хочется освоить микроконтроллеры, недорогой промежуточный вариант — Raspberry Pi Pico.

Можно ли запустить код Arduino на Raspberry Pi?

Напрямую нельзя. Скетчи Arduino компилируются для микроконтроллеров вроде ATmega328P; на Raspberry Pi ту же логику придётся переписать на Python с библиотеками вроде gpiozero. Зато Raspberry Pi можно использовать как компьютер, чтобы загружать код в Arduino через arduino-cli.

Можно ли использовать Raspberry Pi и Arduino вместе?

Да. Проще всего подключить Arduino к Pi USB-кабелем и обмениваться данными через последовательный порт; на Python для этого достаточно библиотеки pyserial. В такой схеме Pi отвечает за камеру, сеть и решения, а Arduino — за датчики и моторы. Если соединять их по UART или I2C через пины GPIO, используй делитель напряжения или преобразователь уровней из-за разницы между 5 V и 3,3 V.

Raspberry Pi Pico — это Arduino?

Нет, но она того же класса: как и Arduino, Pico — плата микроконтроллера без операционной системы. Благодаря микросхеме RP2040 она быстрее Uno, у неё больше ОЗУ, и её можно программировать на MicroPython; при желании для неё можно писать код и в Arduino IDE. Главное отличие — она работает на 3,3 V, а не на 5 V.

Что лучше для робота: Raspberry Pi или Arduino?

Для робота, который объезжает препятствия, следует по линии или ездит на дистанционном управлении, Arduino достаточно, и она надёжнее: моторы и датчики она обслуживает без задержек. Если роботу нужно распознавать объекты камерой, строить карту или управляться через интернет, понадобится Raspberry Pi. В продвинутых роботах обычно используют обе: Pi принимает решения, а Arduino управляет моторами.

Все проекты
Мигающий светодиод
#1Новичок

Мигающий светодиод

Самое первое «привет» в электронике: включение и выключение одного светодиода. Arduino включает и выключает светодиод через короткие промежутки, поэтому свет быстро мигает. Ты самым простым способом в

4.6(188)
1127
Мигание встроенным светодиодом Raspberry Pi Pico (Pico и Pico W)
#147Новичок

Мигание встроенным светодиодом Raspberry Pi Pico (Pico и Pico W)

Первый проект серии Raspberry Pi Pico! Мигаем зелёным встроенным светодиодом, чтобы проверить, что плата работает, — классический первый опыт «Hello World». НИКАКИХ внешних компонентов, только Pico и USB-кабель. Код написан на MicroPython (официальном языке, поддерживаемом Raspberry Pi Foundation). Изучи в Thonny IDE класс machine.Pin, режим Pin.OUT, методы led.on()/off() и time.sleep(). Каждое переключение видно в выводе (REPL).

5.0(1)
10
Измерение освещённости с LDR
#11Новичок

Измерение освещённости с LDR

Хочешь увидеть яркость своей комнаты в виде числа? LDR — маленькая деталь, реагирующая на свет, — измеряет освещённость вокруг, а Arduino каждые полсекунды выводит значение на экран компьютера. Закрой

4.6(81)
139
Температура и влажность с DHT11
#55Средний

Температура и влажность с DHT11

Насколько тепло в твоей комнате и влажный ли воздух или сухой? Датчик DHT11 измеряет температуру и влажность, а Arduino выводит значения на двухстрочный LCD-экран и обновляет их каждые пару секунд. Ес

4.7(47)
73
Измерение расстояния HC-SR04 (вывод в порт)
#27Новичок

Измерение расстояния HC-SR04 (вывод в порт)

Датчик HC-SR04 работает совсем как летучая мышь, которая находит дорогу в темноте: он посылает звук, которого ты не слышишь, слушает эхо и измеряет, насколько далеко предмет перед ним. Arduino каждые

4.6(46)
71
Односторонняя связь между двумя Arduino
#57Средний
Premium

Односторонняя связь между двумя Arduino

Ты заставляешь две Arduino разговаривать по одному проводу: нажми кнопку на одной, и на другой загорится светодиод, нажми снова — погаснет. Плата-передатчик сообщает о нажатии кнопки коротким сообщени

4.4(37)
50
Клавиатура разработчика на Python
#66Средний
Premium

Клавиатура разработчика на Python

Если надоело снова и снова набирать одни и те же шаблоны при программировании, эта маленькая клавиатура создана для тебя. Arduino Leonardo подключается к компьютеру как обычная клавиатура, а каждая кл

4.6(35)
45
Умная станция полива
#83Продвинутый
Premium

Умная станция полива

Садовник, который сам поливает растения, чтобы они не засохли, пока ты в отпуске. Датчик влажности почвы измеряет, насколько влажная земля; когда она сохнет, Arduino на несколько секунд включает водян

5.0(42)
57