Распиновка 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)Функция
13.3VПитание 3.3 вольта
3GPIO2I2C SDA (данные)
5GPIO3I2C SCL (тактирование)
8GPIO14UART TXD (передача)
10GPIO15UART RXD (приём)
12GPIO18Аппаратный PWM
19GPIO10SPI MOSI
21GPIO9SPI MISO
23GPIO11SPI SCLK
24GPIO8SPI 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, иначе устройство и система будут конфликтовать за линию.

📊 Для чего вы используете GPIO на Raspberry Pi Zero W?
Датчики и мониторинг (I2C)
Дисплеи и индикация (SPI)
Управление реле и нагрузкой
UART-устройства (GPS, GSM)

Особенности именно Zero W: пайка гребёнки и компактность

Главное конструктивное отличие Zero W от «больших» моделей — отсутствие распаянной гребёнки. У вас три пути: припаять стандартную штыревую гребёнку 2×20, использовать разъём типа hammer header (запрессовывается без пайки, но требует аккуратности) либо паять провода напрямую в отверстия, если проект компактный и постоянный.

⚠️ Внимание: при пайке гребёнки не перегревайте площадки — плата многослойная, а отверстия металлизированные. Длительный нагрев одним жалом паяльника может отслоить контактную площадку. Работайте быстро, с флюсом, и проверяйте каждый шов на отсутствие перемычек между соседними пинами.

☑️ Проверка перед первым включением с периферией

Выполнено: 0 / 5

Ещё один нюанс — физический доступ. Из-за компактного корпуса и близкого расположения разъёма к краю платы не каждый шлейф и 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.