Цифровой выход: управляем внешним светодиодом

Выводим управление за пределы платы — к настоящему светодиоду на макетке.

Цифровой выход — режим вывода GPIO, в котором он выдаёт одно из двух напряжений: 3.3 В (логическая 1) или 0 В (логический 0).

Схема подключения

Светодиод нельзя подключать к выводу напрямую — он сгорит от слишком большого тока. Нужен токоограничивающий резистор. Вот схема:

  GPIO23 ----[ R 330 Ом ]----|>|---- GND
                          светодиод
                      (длинная ножка +)

Длинная ножка светодиода (анод) идёт к резистору и пину, короткая (катод) — к земле.

Считаем резистор

По закону Ома: R = (U_питания − U_светодиода) / I. Для красного светодиода падение ~2 В, желаемый ток ~10 мА. Посчитаем на обычном Python:

u_supply = 3.3      # вольт, выход ESP32
u_led = 2.0         # падение на красном светодиоде
i_target = 0.010    # 10 мА в амперах

r = (u_supply - u_led) / i_target
print("Нужен резистор:", round(r), "Ом")
print("Берём ближайший стандартный: 130-150 Ом, безопасно 220-330 Ом")

Вывод:

Нужен резистор: 130 Ом
Берём ближайший стандартный: 130-150 Ом, безопасно 220-330 Ом

На практике берут 220–330 Ом: светодиод чуть тусклее, зато ток заведомо безопасен и для пина, и для диода.

Код управления

from machine import Pin
import time

led = Pin(23, Pin.OUT)

# Плавно «дышим» вкл/выкл с разной паузой
for delay in (0.1, 0.2, 0.4, 0.8):
    led.on()
    time.sleep(delay)
    led.off()
    time.sleep(delay)

Как работает под капотом

Внутри ESP32 каждый GPIO в режиме выхода подключён к паре транзисторов (push-pull). При value(1) верхний транзистор соединяет ножку с 3.3 В, при value(0) нижний — с землёй. Максимальный ток одного вывода ограничен (около 12–40 мА в зависимости от настройки), поэтому мощную нагрузку (мотор, лента) напрямую не подключают — для этого нужны транзисторы или реле, о которых поговорим в проектах.

Частые ошибки

  • Подключить светодиод без резистора. Сгорит либо светодиод, либо вывод чипа.
  • Перепутать полярность. Светодиод пропускает ток только в одну сторону; если не горит — переверните.
  • Вешать мощную нагрузку прямо на пин. Реле и моторы превышают допустимый ток — нужен ключ.

Итог

  • Цифровой выход выдаёт 3.3 В или 0 В.
  • Светодиод подключают через токоограничивающий резистор (220–330 Ом — безопасно).
  • Один вывод выдаёт ограниченный ток; мощную нагрузку коммутируют через реле или транзистор.
Проверьте себя
1. Зачем светодиоду нужен токоограничивающий резистор?
AДля красоты
BЧтобы ограничить ток и не сжечь светодиод или вывод чипа
CЧтобы увеличить яркость
DЧтобы светодиод работал на 5 В
2. Что произойдёт, если подключить светодиод в обратной полярности?
AОн сгорит сразу
BОн просто не загорится (ток не течёт в обратную сторону)
CОн будет мигать сам
DСгорит вся плата
3. Почему мотор или мощное реле нельзя вешать прямо на вывод GPIO?
AGPIO выдаёт переменный ток
BИх ток превышает допустимый для вывода, нужен транзистор или реле-ключ
CGPIO не умеет включаться
DЭто разрешено и безопасно