ELECTRONICS

ESP32: распиновка DevKit V1, характеристики и особенности выводов

15 цифровых8 аналоговых

ESP32 — это не Arduino, а другая платформа, но программируют её в той же среде и почти теми же командами. Берут её ради Wi-Fi и Bluetooth: они встроены в чип, а не добавляются модулем.

По мощности разница огромная: два ядра на 240 мегагерц против одного на 16, и полмегабайта оперативной памяти против двух килобайт. Плата при этом стоит дешевле, чем Arduino UNO.

Расплата — напряжение логики. У ESP32 оно 3,3 вольта, и пятивольтовые модули напрямую подключать нельзя: вывод выгорит. Это главное, на чём спотыкаются переходящие с Arduino.

Распиновка

Наведите на любой вывод платы — расскажем, зачем он. Цвет точки означает роль: питание, земля, цифровой, аналоговый, служебный.

Все выводы списком

ВыводНазначение
GPIO23SPI MOSIЛиния данных «от платы» на шине SPI.
GPIO22I2C SCLТактовая линия шины I2C — по умолчанию именно она.
GPIO1UART TXПередача по последовательному порту. Занята при прошивке — вешать на неё ничего нельзя.
GPIO3UART RXПриём по последовательному порту, тоже занят при прошивке.
GPIO21I2C SDAЛиния данных шины I2C по умолчанию.
GPIO19SPI MISOЛиния данных «к плате» на шине SPI.
GPIO18SPI SCKТактовый сигнал SPI.
GPIO5SPI SSВыбор устройства на шине SPI. При загрузке коротко выдаёт импульс — реле на него вешать не стоит.
GPIO17UART2 TXВторой последовательный порт, свободен для ваших модулей.
GPIO16UART2 RXВторой последовательный порт.
GPIO4ADC2 · touchОбычный вывод, умеет и АЦП, и ёмкостное касание.
GPIO2светодиод · загрузкаК нему припаян встроенный светодиод. Участвует в выборе режима загрузки.
GPIO15загрузкаУчаствует в выборе режима загрузки: если притянут к земле, плата стартует молча.
GNDЗемля.
3V3Выход стабилизатора. Отсюда питают датчики, но ток ограничен примерно 500 мА.
ENСброс. Замыкание на землю перезапускает плату.
GPIO36только вход · ADC1Только вход. Цифровым выводом быть не умеет и подтяжки не имеет.
GPIO39только вход · ADC1Только вход, как и GPIO36.
GPIO34только вход · ADC1Только вход. Хороший выбор для аналогового датчика: этот АЦП работает даже при включённом Wi-Fi.
GPIO35только вход · ADC1Только вход, АЦП первого блока.
GPIO32ADC1 · touchПолноценный вывод с АЦП первого блока и сенсором касания.
GPIO33ADC1 · touchПолноценный вывод с АЦП первого блока.
GPIO25ЦАП · ADC2Умеет выдавать настоящее аналоговое напряжение — на плате всего два таких вывода.
GPIO26ЦАП · ADC2Второй вывод с настоящим цифро-аналоговым преобразователем.
GPIO27ADC2 · touchОбычный вывод с АЦП второго блока и сенсором касания.
GPIO14ADC2 · touchОбычный вывод. При загрузке коротко выдаёт импульс.
GPIO12загрузкаУчаствует в выборе напряжения флеш-памяти: если при старте притянут к питанию, плата не загрузится.
GPIO13ADC2 · touchОбычный вывод.
GNDЗемля.
VINВход внешнего питания, 5 В. Отсюда же питается плата, когда воткнут USB.

Характеристики

Микроконтроллер
ESP32-WROOM-32
Ядра
2Xtensa LX6
Тактовая частота
до 240 МГц
Напряжение логики
3,3 Впятивольтовые модули напрямую нельзя
Оперативная память
520 КБ
Флеш-память
4 МБу большинства плат
Беспроводная связь
Wi-Fi 802.11 b/g/n, Bluetooth 4.2
Выводов на плате
30у версии DevKit V1
АЦП
12 разрядов0–4095, но шкала нелинейная
ЦАП
2 канала8 разрядов, GPIO25 и GPIO26
ШИМ
на любом выводеделается программно, до 16 каналов
Ток с одного вывода
12 мАпредельный 40 мА
Питание
5 В на VIN или USB

Чем отличается от соседей

Arduino UNO

Медленнее в пятнадцать раз и без всякой сети, зато пятивольтовая: любой модуль подключается напрямую, без согласования уровней. Для первых шагов проще.

ESP8266

Предшественник ESP32: одно ядро, только Wi-Fi, один аналоговый вход. Дешевле, и для «включить лампочку по вайфаю» этого хватает.

ESP32-S3

Более новая версия: те же два ядра, но добавлены ускорители для нейросетей и нормальный USB прямо в чипе. Берут под камеры и распознавание.

На чём попадаются

Аналоговый вход перестаёт работать при включении Wi-Fi

У ESP32 два блока АЦП, и второй физически используется радиомодулем. Выводы, помеченные ADC2, при активном Wi-Fi просто возвращают мусор. Лечится переносом датчика на любой вывод из первого блока: GPIO32–GPIO39.

Выводы 6–11 не работают

Их нет на большинстве плат не случайно: к ним подключена флеш-память самого чипа. Если добраться до них и что-то подключить, плата перестанет загружаться.

Плата не прошивается без нажатия кнопки

На дешёвых платах не хватает конденсатора в цепи автосброса. Приходится держать кнопку BOOT в момент, когда среда пишет «Connecting…». Это не брак, а экономия производителя.

Пятивольтовый датчик сжёг вывод

Логика ESP32 рассчитана на 3,3 вольта, и вход пятивольтовой не терпит. Датчик, работавший с Arduino, здесь требует делителя напряжения или преобразователя уровней.

GPIO34–39 не тянутся вверх

У этих выводов физически нет подтягивающих резисторов, и они умеют только читать. Кнопку на них повесить можно, но резистор придётся ставить свой.

Что к ней подключают

Схемы подключения, библиотеки и рабочие скетчи для датчиков, дисплеев и драйверов — в разделе компонентов. Каждый скетч проверен компиляцией именно под эту плату.

Перейти к компонентам