AO3400 — это мощный N-канальный MOSFET с низким сопротивлением в открытом состоянии (Rds(on) = 28 мОм) и малым током утечки, идеально подходящий для отключения делителя во время сна, когда батарея подключена, а вот ESP не выполняет свои основные задачи.
Так скажем
🔌 Схема подключения с AO3400
📝 Компоненты:
Компонент | Назначение |
---|---|
AO3400 | N-канальный MOSFET (SOT-23) |
Резисторы R1, R2 | Делитель напряжения (например, 1 МОм + 1 МОм) |
Резистор R3 | Подтягивающий к GND (1 МОм) |
Конденсатор C1 | 0.1 мкФ (керамический, фильтрация) |
🛠 Соединения:
Батарея (+) ----[R1]----+----[GPIO35] (АЦП) | [R2] | Сток (D) AO3400 | Исток (S) ---- GND | Затвор (G) --[10кОм]-- GPIO_CTRL (например, GPIO4) | [1МОм] <-- Подтяжка к GND
-
R1, R2 = 1 МОм: Снижают ток делителя до ~2.1 мкА (при 4.2V).
-
R3 = 1 МОм: Подтягивает затвор к GND в режиме сна.
-
C1 = 0.1 мкФ: Фильтрует шумы на GPIO35.
⚡ Принцип работы:
-
Активный режим:
-
GPIO_CTRL = HIGH
(3.3V) → MOSFET открыт → делитель подключён к GND. -
АЦП измеряет напряжение на GPIO35.
-
-
Режим сна:
-
GPIO_CTRL = LOW
(0V) → MOSFET закрыт (подтяжка R3 удерживает затвор в GND). -
Ток утечки: Только через R3 (< 1 мкА).
-
📝 Оптимизированный код:
const int MOSFET_PIN = 4; // GPIO для управления AO3400 const int ADC_PIN = 35; // GPIO35 (АЦП) void setup() { pinMode(MOSFET_PIN, OUTPUT); digitalWrite(MOSFET_PIN, LOW); // Закрываем MOSFET сразу } float readBattery() { digitalWrite(MOSFET_PIN, HIGH); // Открываем MOSFET delay(10); // Ждём стабилизации (~10 мс) float voltage = analogRead(ADC_PIN) * (3.3 / 4095.0) * 2; // Для R1=R2=1МОм digitalWrite(MOSFET_PIN, LOW); // Закрываем MOSFET return voltage; } void enterDeepSleep() { digitalWrite(MOSFET_PIN, LOW); // Гарантированно закрываем MOSFET esp_sleep_enable_timer_wakeup(10e6); // Спим 10 секунд esp_deep_sleep_start(); } void loop() { Serial.printf("Voltage: %.2f V\n", readBattery()); enterDeepSleep(); }
✅ Преимущества AO3400:
-
Низкое Rds(on): Минимальные потери напряжения в открытом состоянии.
-
Малый ток утечки: В закрытом состоянии — наноАмперы.
-
Компактность: Корпус SOT-23 удобен для монтажа.
⚠️ Критические проверки:
-
Напряжение на затворе:
-
AO3400 полностью открывается при Vgs > 2.5V. Убедитесь, что ESP32 даёт стабильные 3.3V на GPIO.
-
-
Полярность MOSFET:
-
Не перепутайте сток (D) и исток (S)! Сток подключается к R2, исток — к GND.
-
-
Тестирование мультиметром:
-
В режиме сна проверьте, что напряжение на GPIO35 близко к 0V (делитель отключён).
-
🎯 Итоговые рекомендации:
-
Резисторы R1, R2: Выбирайте 1 МОм для минимизации тока (2.1 мкА при 4.2V).
-
Подтягивающий резистор (R3): Обязателен для гарантированного закрытия MOSFET в сне.
-
Потребление: В режиме сна — < 5 мкА (суммарно от ESP32 и делителя).
Пример реальных замеров с AO3400:
Активный режим: 2.1 мкА (через делитель) + 5 мкА (ESP32 ADC) Режим сна: 0.1 мкА (утечка MOSFET) + 2 мкА (подтяжка R3)
Схема с AO3400 — это оптимальный баланс между точностью измерений и энергопотреблением!