Распиновка Raspberry Pi Zero W — это 40-контактный разъём GPIO, полностью совместимый по расположению сигналов со старшими моделями вроде Raspberry Pi 3, но с одним важным нюансом: на заводе контакты не распаяны, и гребёнку придётся припаивать самостоятельно либо использовать беспаечные варианты. Именно ошибка в нумерации пинов — причина номер один, из-за которой датчики и дисплеи отказываются работать после подключения.
Ниже разберём назначение каждой группы контактов, различия между нумерацией BOARD и BCM, а также ограничения по току и напряжению, которые критичны именно для компактной платы Zero W. Вся информация соответствует официальной схеме распиновки от Raspberry Pi Foundation.
Общая схема: 40 контактов и два типа нумерации
Разъём GPIO на Raspberry Pi Zero W состоит из двух рядов по 20 контактов. Существует две системы обозначения: физическая нумерация (BOARD) — просто порядковый номер пина от 1 до 40, и нумерация BCM — по номеру канала процессора Broadcom. В коде на Python библиотека RPi.GPIO требует явно указать режим:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) # или GPIO.BOARD
Путаница между режимами — частая причина «нерабочего» скрипта: вы обращаетесь к пину 11, ожидая GPIO17, а получаете совсем другой контакт. Перед запуском кода сверьтесь, какая нумерация используется в примере, и какой физический пин вы реально задействовали.
Ориентир на плате простой: контакт 1 находится со стороны, ближней к надписи на шелкографии, рядом с квадратной (а не круглой) площадкой паяного отверстия. Это 3.3V. Нечётные пины — левый ряд, чётные — правый.
Всегда уточняйте, в какой нумерации (BOARD или BCM) написан пример кода — подключение «по номеру пина» вместо «по номеру GPIO» ломает схему.
Контакты питания: 5V, 3.3V и земля
На разъём выведены контакты питания, и их нужно чётко различать. Пины 2 и 4 — это 5V, напрямую связанные с входом питания платы. Пины 1 и 17 — 3.3V, выход встроенного стабилизатора. Земля (GND) разведена на восьми контактах: 6, 9, 14, 20, 25, 30, 34 и 39.
⚠️ Внимание: все линии GPIO работают с логическими уровнями 3.3V и не толерантны к 5V. Подача 5 вольт от датчика или Arduino напрямую на вход GPIO с высокой вероятностью выведет пин или весь процессор из строя. Используйте делитель напряжения или преобразователь уровней.
Линия 3.3V рассчитана на весьма скромный ток — это питание для мелкой периферии, а не для моторов и светодиодных лент. Для нагрузки берите 5V и управляйте ею через транзистор или реле.
- 🔌 Пины 2, 4 (5V) — питание периферии, можно запитать саму плату через них (без защиты, на свой риск).
- 🔋 Пины 1, 17 (3.3V) — только маломощная периферия: датчики, микросхемы логики.
- ⏚ GND — восемь контактов земли, выбирайте ближайший к сигнальному пину.
- ⚡ Ток одного GPIO — единицы миллиампер; суммарный бюджет всех пинов тоже ограничен, точные безопасные значения лучше уточнять в официальной документации.
Таблица распиновки основных контактов
Ниже — ключевые пины разъёма. Полная схема всех 40 контактов доступна в официальной документации Raspberry Pi; здесь собраны те, что используются чаще всего.
| Пин (BOARD) | Название (BCM) | Функция |
|---|---|---|
| 1 | 3.3V | Питание 3.3 вольта |
| 3 | GPIO2 | I2C SDA (данные) |
| 5 | GPIO3 | I2C SCL (тактирование) |
| 8 | GPIO14 | UART TXD (передача) |
| 10 | GPIO15 | UART RXD (приём) |
| 12 | GPIO18 | Аппаратный PWM |
| 19 | GPIO10 | SPI MOSI |
| 21 | GPIO9 | SPI MISO |
| 23 | GPIO11 | SPI SCLK |
| 24 | GPIO8 | SPI CE0 |
Обратите внимание: многие пины имеют альтернативные функции, но по умолчанию после загрузки ОС работают как обычные цифровые входы/выходы. Специальные интерфейсы включаются через конфигурацию системы.
Интерфейсы I2C, SPI и UART на Zero W
Для подключения датчиков чаще всего нужен I2C: это пины 3 (SDA) и 5 (SCL). По умолчанию интерфейс выключен. Активируется он через утилиту настройки:
sudo raspi-config
Далее — раздел Interface Options, где включаются I2C, SPI и Serial. После включения I2C проверить подключённое устройство можно командой i2cdetect -y 1 — она покажет адреса отвечающих чипов на шине.
UART (пины 8 и 10) на Zero W имеет особенность: по умолчанию последовательный порт может использоваться системной консолью. Если подключаете GPS-модуль или другой UART-девайс, консоль нужно отключить в том же raspi-config, иначе устройство и система будут конфликтовать за линию.
Особенности именно Zero W: пайка гребёнки и компактность
Главное конструктивное отличие Zero W от «больших» моделей — отсутствие распаянной гребёнки. У вас три пути: припаять стандартную штыревую гребёнку 2×20, использовать разъём типа hammer header (запрессовывается без пайки, но требует аккуратности) либо паять провода напрямую в отверстия, если проект компактный и постоянный.
⚠️ Внимание: при пайке гребёнки не перегревайте площадки — плата многослойная, а отверстия металлизированные. Длительный нагрев одним жалом паяльника может отслоить контактную площадку. Работайте быстро, с флюсом, и проверяйте каждый шов на отсутствие перемычек между соседними пинами.
☑️ Проверка перед первым включением с периферией
Ещё один нюанс — физический доступ. Из-за компактного корпуса и близкого расположения разъёма к краю платы не каждый шлейф и HAT-плата садится без проставок. Проверяйте механическую совместимость до покупки расширений.
Чем Zero W отличается от Zero 2 W по распиновке
Распиновка 40-контактного разъёма у Raspberry Pi Zero 2 W сохранена той же самой — расположение пинов, питания и интерфейсов идентично. Отличия в производительности процессора и тепловыделении, но схемы подключения периферии полностью взаимозаменяемы.
Типичные ошибки при работе с GPIO
Разберём сценарии, которые чаще всего приводят к «плате-кирипичу» или неработающей схеме. Во-первых, подключение периферии при включённой плате: горячее подключение проводов к GPIO — лотерея, особенно если случайно замкнуть 5V на соседний сигнальный пин. Всегда обесточивайте плату перед изменением схемы.
Во-вторых, отсутствие общей земли. Если датчик питается от отдельного источника, а его сигнальный провод идёт на GPIO, без соединения GND обоих контуров показания будут хаотичными или их не будет вовсе. Это банально, но именно эта ошибка встречается постоянно.
- 🔧 Проверьте контакт — окисленная или плохо пропаянная гребёнка даёт «плавающие» сбои, которые сложно диагностировать.
- 🔍 Прозвоните схему мультиметром до подачи питания: убедитесь, что 5V не замкнуто на 3.3V или сигнальные линии.
- 📄 Сверяйтесь с datasheet датчика — логические уровни выхода должны быть 3.3V-совместимыми.
Для отладки удобно вывести состояние пина в терминал: команда gpio readall (при установленном пакете wiringpi-подобных утилит) показывает актуальную таблицу всех пинов с их режимами — так вы сразу увидите, тот ли контакт настроен.
FAQ: частые вопросы по распиновке Zero W
Совместима ли распиновка Zero W с Raspberry Pi 3/4?
Да, расположение сигналов на 40-контактном разъёме идентично. HAT-платы и схемы подключения от старших моделей подходят, но учитывайте механику: гребёнку на Zero W нужно распаять, а форм-фактор платы меньше.
Можно ли запитать Zero W через пины GPIO?
Технически питание 5V можно подать на пины 2 или 4 (плюс GND), и плата заработает. Однако такой способ обходит часть защитных цепей входа питания, поэтому при сомнениях в качестве источника безопаснее использовать штатный micro-USB разъём PWR IN.
Какой максимальный ток можно взять с пина GPIO?
Отдельный пин рассчитан лишь на единицы миллиампер, а суммарный ток всех GPIO ограничен. Светодиод через резистор — допустимо, реле или мотор напрямую — нет, только через транзисторный ключ. Точные пределы для вашей ревизии платы уточняйте в официальной документации.
Почему не работает UART-устройство на пинах 8 и 10?
Вероятная причина — последовательный порт занят системной консолью. Откройте sudo raspi-config, в разделе интерфейсов отключите serial console, но оставьте сам serial port включённым, затем перезагрузитесь.
Нужен ли резистор при подключении кнопки к GPIO?
Да, кнопке нужен подтягивающий или стягивающий резистор, иначе вход будет «плавать» и ловить помехи. Можно задействовать внутренние подтяжки процессора — они включаются программно, например параметром pull_up_down в библиотеке RPi.GPIO.
Распиновка Zero W повторяет стандартный 40-пиновый разъём Raspberry Pi: 3.3V-логика, I2C на пинах 3/5, UART на 8/10, SPI на 19–24. Главные риски — перепутанная нумерация BCM/BOARD и подача 5V на вход GPIO.