# 🔌 Подключение: ESP32 DevKit v1 + ICS-43434

## Таблица подключения

| ICS-43434 | ESP32 DevKit v1 | Назначение |
| :--- | :--- | :--- |
| VDD | 3.3V | Питание. **Только 3.3V** — большинство готовых модулей рассчитаны на 1.6–3.6В (типовое значение для этого чипа), 5В может повредить микрофон. |
| GND | GND | Земля |
| SD  | GPIO19 | Serial Data — выход 24-битных сэмплов |
| WS  | GPIO18 | Word Select (LRCLK) — определяет, в каком слоте (левом/правом) сейчас данные |
| SCK | GPIO5  | Serial Clock (BCLK) — тактовый сигнал для каждого бита данных |
| L/R (иногда подписан **SEL**) | GND **или** 3.3V | Выбор стереослота — см. ниже |

Пины GPIO5/18/19 заданы по умолчанию в [`Ics43434.h`, Config](include/Ics43434.h#L25-L32) — измените
их там или передайте свою `Ics43434::Config` в конструктор, если разводка другая.

## L/R (SEL): выбор канала

ICS-43434 — моно-микрофон, но, как и большинство I2S MEMS-микрофонов, передаёт данные в одном
из двух стереослотов I2S в зависимости от напряжения на пине L/R (на части модулей подписан
**SEL**):

| L/R / SEL | Слот на шине I2S | `Channel` в коде |
| :--- | :--- | :--- |
| GND | LEFT | `Ics43434::Channel::Left` (значение по умолчанию) |
| VDD / 3.3V | RIGHT | `Ics43434::Channel::Right` |

Если подключили L/R к 3.3V, а в коде оставили `Channel::Left` (или наоборот), `mic.read()` будет
исправно возвращать `ESP_OK`, но все сэмплы окажутся нулевыми — микрофон отдаёт данные в слот,
который драйвер не слушает.

**Если в метре громкости (см. [README.md](README.md)) вы видите только `peak=0 rms=0.0`, а
`isAlive=1`** — первое, что нужно проверить: соответствие пина L/R и поля `Config::channel`.

## Проверка перед первым включением

1. Мультиметром между VDD и GND — должно быть в пределах 3.3В (не 5В).
2. L/R (SEL) подключен либо к GND, либо к 3.3V — не оставлен "в воздухе".
3. Все сигнальные линии (VDD, GND, SD, WS, SCK, L/R) на своих местах.

## Если нужны другие GPIO

I2S на ESP32 можно переключить почти на любые GPIO. Не годятся:
- `GPIO0`, `GPIO2` — участвуют в загрузке платы (bootstrapping).
- `GPIO6–11` — заняты встроенной Flash-памятью.
- `GPIO34–39` — только вход, без подтяжки; для SCK/WS (выходы ESP32 → микрофон) не подойдут, но
  теоретически годятся для SD (вход в ESP32).

## Для уроков с камертоном

Для [Lesson.md](Lesson.md) держите микрофон и камертон на расстоянии 5–15 см — слишком близко
сигнал будет клиппинговать (см. метр громкости, `dBFS` близко к 0), слишком далеко — потонет в
фоновом шуме помещения. Камертон стандартно возбуждают лёгким ударом резиновым молотком по
концу вилки, не по самому микрофону.
