Неправильное подключение датчика к контактам 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 GPIO

GPIO.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 ВПитание
3GPIO2SDA1 (I2C)Данные шины I2C
5GPIO3SCL1 (I2C)Тактирование I2C
7GPIO4GPCLK0Общий цифровой пин
8GPIO14TXD (UART)Передача последовательного порта
10GPIO15RXD (UART)Приём последовательного порта
12GPIO18PWM0Аппаратный ШИМ
19GPIO10MOSI (SPI0)Данные SPI
21GPIO9MISO (SPI0)Данные SPI
23GPIO11SCLK (SPI0)Тактирование SPI

Контакты 27 и 28 (GPIO0 и GPIO1, обозначаются как ID_SD и ID_SC) зарезервированы под шину EEPROM плат расширения HAT. Использовать их в своих проектах не рекомендуется — система может обращаться к ним при загрузке для определения подключённых плат.

💡

Распиновка Raspberry Pi 3B идентична моделям 3B+, 2B и B+ — схемы и платы расширения для этих моделей взаимозаменяемы.