Неправильное подключение датчика к контактам GPIO — самая частая причина, по которой Raspberry Pi 3B перестаёт загружаться или теряет периферию: плата не имеет защиты от перенапряжения на линиях ввода-вывода, и подача 5 В на логический вход способна вывести процессор из строя. Поэтому перед первым экспериментом с разъёмом нужно точно знать распиновку — какой контакт отвечает за питание, какой за данные и какое напряжение допустимо.
В этой статье разберём полную распиновку 40-контактного разъёма Raspberry Pi 3 Model B: нумерацию пинов, назначение шин UART, I2C, SPI и PWM, ограничения по току и практические правила безопасного подключения. Материал подойдёт и для модели 3B+ — распиновка у них идентична.
Общий вид разъёма GPIO и нумерация контактов
На плате Raspberry Pi 3B установлен 40-контактный двухрядный штыревой разъём с шагом 2,54 мм. Это стандарт, который появился начиная с модели B+ и сохраняется во всех последующих полноразмерных платах. Контакты расположены в два ряда по 20 штук вдоль длинного края платы.
Существует две системы нумерации, и их путаница — частый источник ошибок. Нумерация BOARD — это физические номера контактов от 1 до 40. Нумерация BCM — это номера каналов GPIO процессора Broadcom, которые используются в коде. Например, физический контакт 11 соответствует GPIO17 в нумерации BCM. В библиотеках вроде RPi.GPIO режим нумерации задаётся явно:
import RPi.GPIO as GPIOGPIO.setmode(GPIO.BCM) # нумерация по процессору
или GPIO.setmode(GPIO.BOARD) — по физическим контактам
Ориентир на плате — контакт 1, он находится у края платы со стороны разъёма microSD, ближе к углу. Рядом с ним на шёлкографии обычно есть метка P1. Нечётные контакты идут по одному ряду, чётные — по другому.
Контакты питания: 5V, 3V3 и GND
Часть контактов разъёма отведена под питание, и их нельзя использовать как линии данных. На разъёме доступны два уровня напряжения: 5 В (контакты 2 и 4) и 3,3 В (контакты 1 и 17). Земля (GND) разведена на восемь контактов: 6, 9, 14, 20, 25, 30, 34 и 39.
Линия 5 В подключена к входному питанию платы практически напрямую, поэтому ток здесь ограничен в основном блоком питания и полифюзом платы. Линия 3,3 В питается от встроенного стабилизатора, и её возможности заметно скромнее — нагружать эту линию мощной периферией не стоит. Точный допустимый ток зависит от ревизии платы и подключенных устройств, поэтому для прожорливых датчиков лучше использовать внешний источник.
⚠️ Внимание: все логические входы и выходы Raspberry Pi 3B работают с уровнями 3,3 В и не толерантны к 5 В. Подача 5 В от датчика или Arduino напрямую на GPIO может необратимо повредить процессор. Используйте делитель напряжения или преобразователь уровней.
Таблица распиновки 40 контактов
Ниже — ключевые контакты разъёма с назначением в обеих нумерациях. Полная схема симметрична: левый (нечётный) и правый (чётный) ряды чередуют сигнальные линии, питание и землю.
| Физ. контакт | BCM | Основная функция | Альтернативная функция |
|---|---|---|---|
| 1 | — | 3,3 В | Питание |
| 3 | GPIO2 | SDA1 (I2C) | Данные шины I2C |
| 5 | GPIO3 | SCL1 (I2C) | Тактирование I2C |
| 7 | GPIO4 | GPCLK0 | Общий цифровой пин |
| 8 | GPIO14 | TXD (UART) | Передача последовательного порта |
| 10 | GPIO15 | RXD (UART) | Приём последовательного порта |
| 12 | GPIO18 | PWM0 | Аппаратный ШИМ |
| 19 | GPIO10 | MOSI (SPI0) | Данные SPI |
| 21 | GPIO9 | MISO (SPI0) | Данные SPI |
| 23 | GPIO11 | SCLK (SPI0) | Тактирование SPI |
Контакты 27 и 28 (GPIO0 и GPIO1, обозначаются как ID_SD и ID_SC) зарезервированы под шину EEPROM плат расширения HAT. Использовать их в своих проектах не рекомендуется — система может обращаться к ним при загрузке для определения подключённых плат.
💡Распиновка Raspberry Pi 3B идентична моделям 3B+, 2B и B+ — схемы и платы расширения для этих моделей взаимозаменяемы.