Если вам понравится этот разбор, поддержите меня подпиской!
Я делаю это на чистом энтузиазме и ваша обратная связь важна для меня!
Привет! Если ты новичок в электронике или просто любишь экспериментировать с микроконтроллерами, эта статья для тебя. Сегодня я разберу, как собрать схему в которой 3 провода от esp32 будут управлять 40 светодиодами (LED).
Для этого мы используем цепочку из пяти сдвиговых регистров 74HC595 — это микросхемы, которые помогают "расширять" возможности твоего контроллера. Представь: вместо того, чтобы подключать каждый LED отдельно (что заняло бы кучу пинов), мы передаём данные по цепочке, и всё работает как часы!
С регистрами ты можешь подключить не 8, а 40 LED, и даже больше, если добавишь ещё регистров (74HC595). В предыдущей статье мы разбирали один регистр и 8 LED — теперь масштабируем до 5 регистров и 40 LED, сохраняя те же пины подключения (GPIO 23 для данных, 18 для такта, 5 для защёлки).
1.Необходимые компоненты
- ESP32 (любой модуль)
- 5 штук сдвиговых регистров 74HC595
- 40 светодиодов
- 40 резисторов 220-330 Ом
- Две макетные платы — большая, чтобы поместились все 5 чипов и LED.
- Перемычки (провода) — много, разных цветов: красные для плюса, чёрные для минуса, другие для сигналов.
- Источник питания
- Arduino IDE на компьютере для загрузки кода.
2. Введение в сдвиговые регистры
Сдвиговый регистр 74HC595 — это как "удлинитель". Он берёт данные по одному проводу (последовательно), а выдаёт их параллельно на 8 выходов. В цепочке из 5 штук данные "проталкиваются" от первого к последнему, и в итоге мы управляем 40 выходами. ESP32 отправляет биты (0 или 1) по data-пину, такт (clock) синхронизирует , а защёлка (latch) фиксирует состояние. Это экономит количество используемых пинов и упрощает схему. Плюс, можно добавлять эффекты, как бегущий огонь, который мы реализуем в коде.
3. Пин-аут сдвигового регистра 74HC595
Каждый 74HC595 имеет 16 контактов.
- QA-QH (пин 15, 1-7): Это выходы для LED. Каждый управляет одним светодиодом: QA — первый, QH — восьмой. Они выдают 0 (выкл) или 1 (вкл).
- GND (пин 8): Земля — подключаем к минусу.
- VCC (пин 16): Питание — плюс 3.3V или 5V.
- SRCLR (пин 10): Сброс — подключаем к плюсу.
- OE (Output Enable, пин 13): Включение выходов — подключаем к минусу.
- SER (пин 14): Вход данных (DS) — сюда приходят биты от ESP32.
- SRCLK (пин 11): Такт (SHCP) — каждый импульс сдвигает данные.
- RCLK (пин 12): Защёлка (STCP) — импульс фиксирует данные на выходах.
- QH' (пин 9): Выход для цепочки — подключаем к SER следующего чипа.
Совет: На сдвиговом регистре 74HC595 есть метка (точка или выемка) у Пина 1 — ориентируемся по ней.
4. Сборка схемы шаг за шагом
1. Установка сдвиговых регистров 74HC595 на макетную плату
1.1 Вставка микросхемы: Вставь первый 74HC595 так, чтобы пины были по разные стороны центральной канавки (это предотвращает короткое замыкание). Пин 1 (QB) слева, пин 16 (VCC) справа. Добавьте второй регистр рядом, и так до пятого. Оставим место для LED и резисторов.
2. Подключение питания и контрольных сигналов
2.1 Управление выходами (OE): Подключите пин 13 (OE) каждого регистра к минусовой шине проводом, чтобы активировать выходы (OE активен на низком уровне).
2.2 Подключение земли (GND): Соедините пин 8 (GND) всех контактов с минусовой шиной проводом для завершения цепи питания.
2.3 Подключение питания (VCC): Соедините пин 16 (VCC) всех 74HC595 с плюсовой шиной макетной платы (5V для лучшей яркости LED или 3.3V от ESP32).
2.4 Отключение сброса (SRCLR): Подключите пин 10 (SRCLR) каждого регистра к плюсовой шине проводом, чтобы отключить сброс.
3. Подключение ESP32 к сдвиговым регистрам
3.1 Data (DS): Соединяем GPIO 23 ESP32 с пином 14 (SER) первого сдвигового регистра.
3.2 Clock (SHCP): Соединяем — GPIO 18 с пином 11 всех сдвиговых регистров (общий на все 5 чипов).
3.3 Latch (STCP): Соединяем — GPIO 5 с пином 12 всех сдвиговых регистров (общий на все 5 чипов).
3.4 Цепочка регистров: Соединяем — QH' (пин 9) первого к SER (14) второго, второго к третьему, и так до пятого.
4. Подсоединение выходов QA-QH, резисторов и светодиодов
4.1 Подсоединение выходов QA-QH, резисторов и светодиодов
Подключаем LED, главное, не перепутать полярность (длинная ножка анод к резистору, короткая катод к минусу).
4.2 Подготовка выходов QA-QH: Для каждого 74Hc595 разместим перемычки от пинов 15,1-7 в свободные ряды — чтобы удобно цеплять резисторы.
4.3 Последовательность подключения LED: Для первого регистра: (пин 15, 1-7) → перемычка → резистор → анод LED → катод к минусу.
4.4 Подключение резисторов: Возьмем 40 резисторов 330 Ом. Они защищают LED от перегорания.
5. Подключение внешнего источника питания
- 5.1 Подключение: Подключим внешний источник питания 5V к шинам (плюс к красной, минус к чёрной).
5. Схема проекта
6. Код для управления 40 светодиодами с 74HC595 и ESP32
Этот код — сердце нашего проекта, который поочередно зажигает 40 светодиодов с помощью цепочки из 5 сдвиговых регистров 74HC595 и ESP32. Он простой и идеально подходит для создания впечатляющих эффектов. Давай разберём его по частям.
Настройка пинов: Здесь мы задаём пины ESP32, которые будут управлять цепочкой 74HC595. DataPin (GPIO 23) — это вход данных (DS), ClockPin (GPIO 18) — тактовый сигнал (SHCP), а LatchPin (GPIO 5) — сигнал защёлки (STCP). Эти пины стабильны и готовы к работе с пятью регистрами!
Инициализация и запуск: В функции setup() мы объявляем пины как выходы (OUTPUT), чтобы ESP32 мог отправлять сигналы. Serial.begin(115200) включает монитор для отладки. Сначала очищаем все регистры (sendData(0)), чтобы светодиоды были выключены при старте, и выводим сообщение в монитор для подтверждения.
Зажигание светодиодов: Функция sendData() — наш главный инструмент. Она опускает защёлку (LOW), отправляет 40-битный паттерн, разбитый на 5 байт, через shiftOut() (старший бит первым, MSBFIRST), а потом поднимает защёлку (HIGH), чтобы все светодиоды зажглись в соответствии с паттерном. Это позволяет управлять всеми 40 LED!
Бесконечный цикл: В loop() реализован эффект "бегущий огонь": светодиоды зажигаются по очереди от первого до сорокового, затем возвращаются обратно, повторяя цикл дважды с паузой.
7. Заключение
Мы собрали проект с 40 LED на ESP32! А также сохранили простоту (те же пины с предыдущего проекта), добавили цепочку и эффект бегущего огня. Это не только круто выглядит, но и учит работе с регистрами — основой для больших проектов.