Найти тему
Электроника, ESP32, Arduino

Управление RGB светодиодом на ESP32-S3

На плате расположен адресный RGB светодиод.

ESP32-S3-DevKitC-1/ESP32-S3-WROOM-1-N16R8 (YD-ESP32-23 2022-V1.3)
ESP32-S3-DevKitC-1/ESP32-S3-WROOM-1-N16R8 (YD-ESP32-23 2022-V1.3)

Помигать таким светодиодом, используя стандартный Ардуиновский блинк из примеров разумеется не выйдет.

Схема адресного светодиода из документации.
Схема адресного светодиода из документации.

Цвета устанавливаются одной ногой DIN, нога DOUT нужна если мы собираемся подключить несколько светодиодов гирляндой - фактически это кусок обычной адресной светодиодной ленты состоящий из одного светодиода. Каждый цвет имеет 255 градаций - таким образом можно мигать 255*255*255 = 16'581'375 вариантами цвета.

У меня не оригинальная плата ESP32-S3-DevKitC-1/ESP32-S3-WROOM-1-N8R8 от Espressif Systems (стоит она очень даже недешево)

ESP32-S3-DevKitC-1
ESP32-S3-DevKitC-1

а её недорогой аналог из Китая. /Китай копирует даже Китайские разработки/
ESP32-S3-DevKitC-1/ESP32-S3-WROOM-1-N16R8

ESP32-S3-DevKitC-1/ESP32-S3-WROOM-1-N16R8
ESP32-S3-DevKitC-1/ESP32-S3-WROOM-1-N16R8

Стоит такая платка в 4 раза дешевле. На обратной стороне платы есть надпись.
YD-ESP32-23 2022-V1.3

YD-ESP32-23 2022-V1.3
YD-ESP32-23 2022-V1.3

По качеству пока ничего сказать не могу - так как только еще начинаю работать с этой платформой. В отличии от оригинальной платы, где светодиод уже привязан к GPIO48 - на "реплике" необходимо капнуть капельку припоя на перемычку RGB.

-6

Перемычка соединит GPIO48 с входом DIN светодиода. Данная опция удобна - если встроенный светодиод в проекте не нужен, оставляем все как есть и смело используем данную ногу в своих целях.

Перед началом работы необходимо установить поддержку плат ESP32 в среде Arduino IDE. Как это сделать можно прочитать тут:

Прошивать плату ESP32-S3-DevKitC-1 будем старинным дедовским способом через встроенный переходник USB-UART на микросхеме CH343(правый разъем)

Прошивка ESP32-S3-DevKitC-1 через встроенный USB-UART мост
Прошивка ESP32-S3-DevKitC-1 через встроенный USB-UART мост

После подключения платы к ПК в Windows появился виртуальный COM порт с номером 15 (у Вас может быть и другой номер)

-8

Запускаем среду разработки Arduino IDE. В настройках выбора платы ищем "esp32s3 dev module" и выбираем COM порт:

-9

Работа с адресными светодиодами в среде Arduino IDE из коробки не поддерживается. Для работы подойдет любая библиотека умеющая работать с адресными светодиодными лентами например - Adafruit NeoPixel

GitHub - adafruit/Adafruit_NeoPixel: Arduino library for controlling single-wire LED pixels (NeoPixel, WS2812, etc.)

Её можно установить и непосредственно из среды Arduino IDE.

-10

Осталось написать код программы. Данный светодиод на полной яркости сильно бьет по глазам - поэтому максимальную яркость лучше ограничить.

-11

Библиотека отправляет 3 байта информации в которых закодированы яркость каждого из светодиодов.

-12

Схему из предыдущей статьи придется исправить, есть платы где питание светодиода подается именно с отдельного GPIO - в этой плате адресный светодиод подключен к источнику питания постоянно - есть только GPIO управления.

Этот функционал проверен на практике
Этот функционал проверен на практике

А зачем может потребоваться адресный светодиод на самой плате? Это удобный способ откладки кода и проверки железа, когда нет возможности организовать удобный вывод через порт компьютера.

Например свою самодельную подводную лодку я ходил тестировать в бассейн.

Модель самодельного глубоководного аппарата
Модель самодельного глубоководного аппарата

Для определения дифферента использовался IMU-сенсор на 10 степеней свободы:

Добавьте описание
Добавьте описание

а поскольку в момент теста модель находилась в прямой видимости, встроенный в плату Arduino светодиод гас в тот момент когда дифферент выходил за пределы нормы - показывая работу сенсора. Паять отдельный светодиод смысла не было - пульт бьет почти на 1км, и в условиях реальной эксплуатации его все равно не разглядеть, а для тестов самое оно - не тащить же с собой в бассейн ноутбук.

В следующей статье погоняем из среды Arduino IDE интерфейс SPI, подключив какой-нибудь большой цветной дисплей.

Оглавление канала доступно тут

Всем удачи!