Распиновка Raspberry Pi 3 нужна уже при первом подключении датчика, реле или дисплея к 40-контактному разъёму — ошибка всего на один контакт способна вывести из строя процессор Broadcom BCM2837, потому что его линии GPIO рассчитаны строго на 3,3 В и не имеют защиты от перенапряжения. Прежде чем подавать сигналы на плату, необходимо точно знать, где находятся контакты питания, земли и логических линий.
В этой статье разберём распиновку Raspberry Pi 3 Model B и Model B+: назначение каждого из 40 выводов, различия нумерации BCM и BOARD, интерфейсы UART, I2C, SPI и PWM, а также типичные ошибки при подключении периферии. Схема разъёма у обеих ревизий третьего поколения одинакова и совместима с Raspberry Pi 2 и Pi 4.
Общий вид разъёма GPIO
Разъём GPIO на Raspberry Pi 3 представляет собой двухрядную гребёнку 2×20 контактов с шагом 2,54 мм. Первый контакт (3,3 В) находится у края платы со стороны разъёма, ближайшего к углу, где расположены диоды — по нему принято ориентироваться при отсчёте. Нечётные контакты образуют ряд у края платы, чётные — внутренний ряд.
Распиновка условно делится на четыре функциональные группы:
- 🔌 Питание: контакты 5 В (2 и 4) и 3,3 В (1 и 17) — используются для питания внешних модулей;
- ⏚ Земля (GND): восемь контактов, равномерно распределённых по разъёму;
- 📡 Цифровые линии GPIO: 26 программируемых выводов общего назначения;
- 🔧 Служебные интерфейсы: UART, I2C, SPI, PWM и линии ID EEPROM для плат расширения HAT.
Разъём GPIO у Raspberry Pi 3 — 40 контактов, логика строго 3,3 В, нумерация ведётся от контакта 1 у края платы.
Питание: контакты 5 В, 3,3 В и GND
Контакты 5 В (физические 2 и 4) напрямую соединены с входом питания платы через защитную цепь. С них можно запитать компактные модули — например, вентилятор или релейный модуль, — но суммарная нагрузка ограничена возможностями блока питания и цепей платы. Превышать разумные токи не стоит: это приводит к просадке напряжения и нестабильной работе самого Raspberry Pi.
Линия 3,3 В (контакты 1 и 17) питается от встроенного стабилизатора и предназначена для маломощной периферии: датчиков, микросхем логики, модуляторов. Здесь допустимая нагрузка заметно ниже, чем на 5-вольтовой линии, поэтому мощные потребители на неё подключать нельзя.
⚠️ Внимание: все входы GPIO Raspberry Pi 3 работают с уровнями 3,3 В и не толерантны к 5 В. Подача 5-вольтового сигнала на логический вход может необратимо повредить процессор. Для согласования с 5-вольтовыми устройствами используйте преобразователь уровней или делитель напряжения.
Перед первым включением схемы прозвоните мультиметром цепь между контактом питания модуля и GPIO — так вы исключите случайное замыкание 5 В на логическую линию.
Нумерация контактов: BCM против BOARD
Одна из главных причин ошибок при работе с распиновкой — путаница между двумя системами нумерации. Режим BOARD использует физический номер контакта на разъёме (от 1 до 40), а режим BCM — номер линии GPIO процессора Broadcom. Один и тот же вывод имеет разные обозначения: например, физический контакт 12 соответствует GPIO18.
В библиотеке RPi.GPIO для Python режим задаётся командой в начале скрипта:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) # или GPIO.BOARD
Какую систему выбрать? Для совместимости со сторонними библиотеками и платами HAT удобнее BCM — большинство примеров в документации используют именно номера процессора. Режим BOARD нагляднее при ручном подключении по схеме, но требует постоянного сверения с таблицей.
Таблица распиновки основных контактов
Ниже приведены ключевые выводы разъёма. Полную официальную схему стоит сверять с документацией Raspberry Pi Foundation, особенно если проект критичен к точности подключения.
| Физ. контакт | Название | Назначение |
|---|---|---|
| 1 | 3V3 | Питание 3,3 В |
| 2 | 5V | Питание 5 В |
| 3 | GPIO2 (SDA1) | I2C, линия данных |
| 5 | GPIO3 (SCL1) | I2C, линия тактирования |
| 7 | GPIO4 | Линия общего назначения |
| 8 | GPIO14 (TXD) | UART, передача |
| 10 | GPIO15 (RXD) | UART, приём |
| 12 | GPIO18 (PWM0) | Аппаратный ШИМ |
| 19 | GPIO10 (MOSI) | SPI0, данные к устройству |
| 21 | GPIO9 (MISO) | SPI0, данные от устройства |
| 23 | GPIO11 (SCLK) | SPI0, тактирование |
| 6, 9, 14, 20, 25, 30, 34, 39 | GND | Земля |
Посмотреть актуальную распиновку прямо в терминале платы можно командой:
pinout
Утилита выводит цветную схему разъёма с указанием модели платы и назначения каждого контакта — это удобная проверка перед подключением проводов.
Интерфейсы UART, I2C и SPI
Последовательный порт UART (контакты 8 и 10, GPIO14/GPIO15) применяется для отладочной консоли и связи с микроконтроллерами, GPS-модулями, GSM-модемами. У Raspberry Pi 3 есть особенность: основной аппаратный UART по умолчанию задействован модулем Bluetooth, а на выводы разъёма выведен упрощённый mini-UART, чья скорость зависит от частоты ядра. Для стабильной работы через /boot/config.txt и конфигуратор raspi-config можно переназначить порты, но конкретные параметры зависят от версии ОС — сверяйтесь с актуальной документацией.
Шина I2C (контакты 3 и 5) позволяет подключить множество устройств по двум проводам — у каждого свой адрес. Перед использованием интерфейс включается через raspi-config в разделе Interface Options. Проверить, видит ли плата подключённое устройство, помогает команда:
sudo i2cdetect -y 1
Интерфейс SPI (контакты 19, 21, 23 плюс линии выбора чипа CE0/CE1) быстрее I2C и подходит для дисплеев, АЦП и карт памяти. Он тоже включается через raspi-config.
⚠️ Внимание: при подключении UART-устройств линия TX передатчика соединяется с RX приёмника и наоборот. Прямое соединение «TX к TX» — частая причина «молчащего» порта, а несогласованные уровни напряжения — причина выхода GPIO из строя.
Зачем на контактах 27 и 28 линии ID_SD и ID_SC
Это выделенная шина I2C для EEPROM плат расширения стандарта HAT. При загрузке Raspberry Pi считывает с неё данные о плате и автоматически настраивает GPIO. Использовать эти контакты как обычные GPIO не рекомендуется.
ШИМ (PWM) и управление нагрузкой
Аппаратный PWM доступен на ограниченном числе выводов — в частности, GPIO18 (контакт 12) и GPIO13 (контакт 33). Аппаратная генерация даёт стабильную частоту без дрожания, что важно для сервоприводов и диммирования. На остальных GPIO возможен программный ШИМ, но его точность зависит от загрузки процессора.
Нагрузку напрямую к GPIO подключать нельзя: линия выдаёт лишь небольшой ток, достаточный для светодиода с резистором. Двигатели, реле и светодиодные ленты коммутируются через транзистор, MOSFET или готовый драйвер, а индуктивная нагрузка требует защитного диода.
☑️ Проверка перед подачей питания на собранную схему
Типичные ошибки при работе с распиновкой
Чаще всего начинающие пользователи допускают несколько повторяющихся промахов:
- ❌ Подача 5 В на логический вход — самая разрушительная ошибка для процессора;
- 🔀 Перепутанная нумерация BCM/BOARD, из-за которой сигнал уходит не на тот контакт;
- 🔋 Питание мощной периферии от линии 3,3 В, рассчитанной на малые токи;
- 🧲 Отсутствие общей земли между платой и внешним модулем — сигналы «плавают»;
- 📌 Использование контактов 27/28 (ID EEPROM) как обычных GPIO.
⚠️ Внимание: подключать и отключать провода на разъёме GPIO следует только при обесточенной плате. «Горячее» подключение нередко вызывает броски напряжения и повреждение портов ввода-вывода.
Безопасная работа с GPIO сводится к трём правилам: логика 3,3 В, общая земля, проверка схемы перед подачей питания.
Часто задаваемые вопросы
Сколько контактов GPIO у Raspberry Pi 3?
Разъём содержит 40 контактов, из которых 26 — программируемые линии GPIO. Остальные выводы — питание 5 В и 3,3 В, земля и служебные линии ID EEPROM.
Можно ли подключать 5-вольтовые датчики к GPIO?
Напрямую — нет: входы рассчитаны на 3,3 В. Необходим преобразователь логических уровней или резистивный делитель на линиях, идущих от датчика к плате.
Чем отличается распиновка Raspberry Pi 3 от Pi 4?
Распиновка 40-контактного разъёма совпадает, поэтому платы расширения и схемы подключения, как правило, совместимы. Отличия касаются внутренней периферии и некоторых альтернативных функций выводов, которые задаются программно.
Как узнать назначение контактов без интернета?
Выполните в терминале команду pinout — она покажет схему разъёма именно вашей модели платы.
Почему UART на Raspberry Pi 3 работает нестабильно?
Возможная причина — использование mini-UART, скорость которого привязана к частоте ядра и меняется при её регулировке. Проверьте настройки последовательного порта в raspi-config и конфигурацию Bluetooth в /boot/config.txt, сверяясь с документацией вашей версии ОС.