Найти в Дзене
П-Электроник Лаб

Управление 8 светодиодами с помощью микроконтролера ESP32 и сдвигового регистра 74HC595

Если вам понравится этот разбор-поддержите меня подпиской! Я делаю это на чистом энтузиазме и ваша обратная связь важна для меня! В этой статье я шаг за шагом разберу, как создать простой проект: схему с использованием сдвигового регистра 74HC595 и микроконтроллера ESP32. Это идеальный старт для тех, кто только начинает погружаться в мир электроники и программирования. Сдвиговый регистр 74HC595 — это 8-битный чип, который принимает данные по очереди от микроконтроллера и преобразует их в параллельные сигналы. Благодаря встроенной защёлке (latch), он надёжно фиксирует сигналы, чтобы всё работало как надо. Такой подход особенно полезен, если у твоего микроконтроллера, например ESP32, не хватает выводов для проектов с большим количеством компонентов. С 74HC595 ты можешь легко расширить возможности и создать что-то по-настоящему впечатляющее! В этой статье мы подробно разберём схему подключения 74HC595 к ESP32 и предоставим код для управления восемью светодиодами. А в следующей статье я по
Оглавление

Если вам понравится этот разбор-поддержите меня подпиской!

Я делаю это на чистом энтузиазме и ваша обратная связь важна для меня!

В этой статье я шаг за шагом разберу, как создать простой проект: схему с использованием сдвигового регистра 74HC595 и микроконтроллера ESP32. Это идеальный старт для тех, кто только начинает погружаться в мир электроники и программирования.

1. Введение

Сдвиговый регистр 74HC595 — это 8-битный чип, который принимает данные по очереди от микроконтроллера и преобразует их в параллельные сигналы. Благодаря встроенной защёлке (latch), он надёжно фиксирует сигналы, чтобы всё работало как надо. Такой подход особенно полезен, если у твоего микроконтроллера, например ESP32, не хватает выводов для проектов с большим количеством компонентов. С 74HC595 ты можешь легко расширить возможности и создать что-то по-настоящему впечатляющее! В этой статье мы подробно разберём схему подключения 74HC595 к ESP32 и предоставим код для управления восемью светодиодами. А в следующей статье я покажу, как управлять 40 светодиодами с помощью ESP32.

-2

2. Пин-аут сдвигового регистра 74HC595

-3
  • QA-QH (пин 15, 1-7): Выходные пины, управляющие светодиодами
  • GND (пин 8): Подключение к земле
  • VCC (пин 16): Подключение к источнику питания
  • SRCLR (пин 10): Сброс регистра
  • OE (Output Enable, пин 13): Управление выходами
  • SER (пин 14): Вход данных для последовательной передачи (подключается к пину данных микроконтроллера)
  • SRCLK (пин 11): Тактовый сигнал для сдвига данных
  • RCLK (пин 12): Сигнал защёлкивания для передачи данных на выходы
  • QH' (пин 9): Выход для каскадирования нескольких регистров (подключается к SER следующего регистра, если используется)

3. Сборка схемы шаг за шагом

1. Установка сдвигового регистра 74HC595 на макетную плату

Начнём с правильной установки чипа на макетную плату, чтобы всё работало без проблем.

  • 1.1 Вставьте чип. Осторожно вставьте 74HC595 в центр макетной платы так, чтобы пин 1 и пин 16 оказались по разные стороны от центральной канавки. Это предотвратит замыкание и повреждение чипа. Убедись, что все пины плотно вошли в гнёзда.
-4

2 . Подключение питания и контрольных сигналов

  • 2.1 Подключение питания (VCC). Соединим пин 16 (VCC) с плюсовой шиной на макетной плате с помощью провода, чтобы подать питание (3.3V).
  • 2.2 Отключение сброса (SRCLR). Подключим пин 10 (SRCLR) к плюсовой шине проводом, чтобы отключить сброс регистра.
  • 2.3 Подключение земли (GND). Соединим пин 8 (GND) с минусовой шиной при помощи провода для завершения цепи питания.
  • 2.4 Управление выходами (OE). Подключи пин 13 (OE) к минусовой шине проводом, чтобы активировать выходы регистра (OE активен на низком уровне).

3. Подсоединение выходов QA-QH, резисторов и светодиодов

  • 3.1. Подготовка выходов QA-QH. Эти пины будут управлять светодиодами. Подготовь их, разместив перемычки в соседние ряды на макетной плате (например, рядом с 74HC595), чтобы удобно подключить резисторы. (ниже будет последовательность подключения перемычек)
  • 3.2. Подключение резисторов. Возьми 8 резисторов (330 Ом для ограничения тока).
  • 3.3. Подключаем 8 светодиодов (LED)

Последовательность подключения:

  1. QA (пин 15): Перемычка → резистор 330 Ом → анод LED → катод к GND.
  2. QB (пин 1): Перемычка → резистор 330 Ом → анод LED → катод к GND.
  3. QC (пин 2): Перемычка → резистор 330 Ом → анод LED → катод к GND.
  4. QD (пин 3): Перемычка → резистор 330 Ом → анод LED → катод к GND.
  5. QE (пин 4): Перемычка → резистор 330 Ом → анод LED → катод к GND.
  6. QF (пин 5): Перемычка → резистор 330 Ом → анод LED → катод к GND.
  7. QG (пин 6): Перемычка → резистор 330 Ом → анод LED → катод к GND.
  8. QH (пин 7): Перемычка → резистор 330 Ом → анод LED → катод к GND.
-7

3.4. Проверка подключения. Убедись, что все перемычки, резисторы и светодиоды плотно сидят в маетной плате, а провода не пересекаются, чтобы избежать короткого замыкания.

4. Подключение перемычек для шин питания

  • 4.1. Чтобы обеспечить стабильное питание для 74HC595 и светодиодов по всей макетной плате, соединим плюсовую и минусовую шины перемычками.
-8

5. Подключение ESP32 к сдвиговому регистру

Для управления сдвиговым регистром 74HC595 с помощью ESP32 подключим его к микроконтроллеру, используя пины (GPIO 23, 18, 5), которые не конфликтуют с загрузкой.

  • 5.1. Подключение Data Pin (DS). Соединяем пин 14 (DS) на 74HC595 с GPIO 23 на ESP32 . Это линия данных для передачи информации.
  • 5.2. Подключение Clock Pin (SH_CP). Подключим пин 11 (SH_CP) на 74HC595 к GPIO 18 на ESP32 проводом. Этот пин отвечает за тактовый сигнал сдвига.
  • 5.3. Подключение Latch Pin (ST_CP). Соединим пин 12 (ST_CP) на 74HC595 с GPIO 5 на ESP32 проводом. Этот пин активирует защёлку для вывода данных на светодиоды.
  • 5.4. Проверка подключения. Убедимся, что все провода плотно сидят и хорошо припаяны
-9

6. Подключение внешнего источника питания

Для стабильной работы схемы подключим питание к макетной плате.

  • 6.1. Подключение питания. Подключаем внешний источник питания (или используем USB ESP32) к плюсовой и минусовой шине. Подаем 3.3V: плюсовую шину (VCC) соединим с 3.3V, минусовую (GND) — с землёй источника.
  • 6.2. Проверка напряжения. Возьмем мультиметр, установим режим измерения напряжения (DC) и проверим напряжение на пине 16 (VCC) 74HC595 относительно GND. Должно быть 3.3V.
  • 6.3. Убедись, что всё подключено надёжно, и напряжение соответствует — теперь схема готова к работе!
-10

4. Схема проекта

-11

5. Код для управления светодиодами с 74HC595 и ESP32

Этот код — сердце нашего проекта. Он простой и идеально подходит для начинающих. Давай разберём его по частям.

  • 1.1 Настройка пинов: Здесь мы задаём пины ESP32, которые будут управлять 74HC595. DataPin (GPIO 23) — это вход данных (DS), ClockPin (GPIO 18) — тактовый сигнал (SH_CP), а LatchPin (GPIO 5) — сигнал защёлки (ST_CP). Эти пины стабильны и готовы к работе!
-12
  • 1.2 Инициализация и запуск: В функции setup() мы объявляем пины как выходы (OUTPUT), чтобы ESP32 мог отправлять сигналы. Serial.begin(115200) включает монитор для отладки. Сначала выключаем все LED (sendData(0)), ждём секунду, а потом зажигаем первый светодиод (Q0) с помощью sendData(0x01) — и сразу видим результат на мониторе!
-13
  • 1.3 Работа светодиодов: Функция sendData() — наш главный инструмент. Она опускает защёлку (LOW), отправляет байт данных через shiftOut() (старший бит первым, MSBFIRST), а потом поднимает защёлку (HIGH), чтобы светодиоды зажглись.
-14
  • 1.4 Бесконечный цикл: Пока loop() пуст, светодиоды остаются в последнем состоянии (Q0 зажжён).
-15
  • 1.5 Полный код
-16
  • 1.6 Чтобы зажечь каждый светодиод по отдельности с использованием функции sendData(), нужно отправлять разные значения байта, так как каждый бит в 74HC595 соответствует одному выходу (Q0-Q7). Вот значения для каждого светодиода:
  • Зажечь Q0 (первый LED): sendData(0x01); // Бинарно: 00000001
  • Зажечь Q1 (второй LED): sendData(0x02); // Бинарно: 00000010
  • Зажечь Q2 (третий LED): sendData(0x04); // Бинарно: 00000100
  • Зажечь Q3 (четвёртый LED): sendData(0x08); // Бинарно: 00001000
  • Зажечь Q4 (пятый LED): sendData(0x10); // Бинарно: 00010000
  • Зажечь Q5 (шестой LED): sendData(0x20); // Бинарно: 00100000
  • Зажечь Q6 (седьмой LED): sendData(0x40); // Бинарно: 01000000
  • Зажечь Q7 (восьмой LED): sendData(0x80); // Бинарно: 10000000

Эти команды позволяют зажигать светодиоды по одному, просто меняя значение в sendData().

Заключение

Я завершил проект управления 8 светодиодами с 74HC595 и ESP32. Разобрал, как регистр преобразует данные в сигналы, собрал схему на макетной плате с детальным описанием пинов и компонентов, добавил фото. Ключ — экономия пинов: три сигнала (DS, SH_CP, ST_CP) управляют всеми выходами. Код с shiftOut и digitalWrite зажигает LED (например, 0x01 для Q0, 0x04 для Q2) по одному или в анимациях.

В следующем проекте я буду каскадировать регистры (до 32-40 LED).

Надеюсь, эта статья оказалась для вас полезной. Подписывайтесь, чтобы не пропустить следующие проекты!