Address strip WS2812B: различия между версиями

Нет описания правки
Строка 29: Строка 29:
Обращаю внимание на то, что не рекомендуется тестировать конфигурацию более чем на 5 светодиодах, такого количества будет достаточно, чтобы понять как выглядит световая картинка в том или ином алгоритме. Подключение большего количества светодиодов может привести к выгоранию USB-порта на компе, т.к. там обычно предельно допустимый ток 350мА, а один светодиод на такой ленте потребляет около 50мА.
Обращаю внимание на то, что не рекомендуется тестировать конфигурацию более чем на 5 светодиодах, такого количества будет достаточно, чтобы понять как выглядит световая картинка в том или ином алгоритме. Подключение большего количества светодиодов может привести к выгоранию USB-порта на компе, т.к. там обычно предельно допустимый ток 350мА, а один светодиод на такой ленте потребляет около 50мА.


==Заливаем первую прошивку==
==Первый скетч==
Заливаем первую прошивку.
 
Подразумевается что на PC уже установлена среда разработки VSCode и расширение PlatformIO. Создадим новый проект.
Подразумевается что на PC уже установлена среда разработки VSCode и расширение PlatformIO. Создадим новый проект.


[[Файл:Pio-create-prj.jpg]]
[[Файл:Pio-create-prj.jpg]]
закодим src/main.cpp, чтобы понимать, что esp32 работает, сделаем код, который постоянно зажигает и тушит встроенный светодиод синего цвета.
запускаем это дело в виде асинхронной функции.
<syntaxhighlight lang="c++">
#include <Arduino.h>
void ledON() {
  digitalWrite(LED_PIN, LOW);
}
void ledOFF() {
  digitalWrite(LED_PIN, HIGH);
}
void ledBlink( void * parameter ) {
  const TickType_t xDelay = 1000 / portTICK_PERIOD_MS;
  while(1) {
    ledON();
    vTaskDelay(xDelay);
    ledOFF();
    vTaskDelay(xDelay);
  }
}
void setup() {
    ledBlink();
}
void loop(){}
</syntaxhighlight>
сейчас можно залить попробовать скомпилировать прошивку, для этого в нижней панели жмём кнопку [[Файл:Снимок экрана 2023-12-06 205145.jpg]]
если всё собралось, только можно шить это дело в esp32:
* подключаем esp32 к компу при помощи microUSB data кабеля
* инициируем заливку прошивки при помощи кнопки [[Файл:Снимок экрана 2023-12-06 205336.jpg]], когда система напишет "Connecting..." - зажимаем кнопку Boot на dev-плате esp32
* если прошивка залилась успешно, перезагружаем esp32 соответствующей кнопкой, после этого у вас должен замигать синий светодиод на плате
==Библиотека для работы с адресной лентой==


Далее нам нужно подключить к проекту библиотеку для работы с лентой, они есть разные, я использовал FastLED
Далее нам нужно подключить к проекту библиотеку для работы с лентой, они есть разные, я использовал FastLED
Строка 241: Строка 286:
</syntaxhighlight>
</syntaxhighlight>


сейчас можно залить попробовать скомпилировать прошивку, для этого в нижней панели жмём кнопку [[Файл:Снимок экрана 2023-12-06 205145.jpg]]
прошиваемся, в случае успеха у вас должна заработать лента, алгоритм будет менять каждые 5 секунд, всего 12 алгоритмов
 
если всё собралось, только можно шить это дело в esp32:
* подключаем esp32 к компу при помощи microUSB data кабеля
* инициируем заливку прошивки при помощи кнопки [[Файл:Снимок экрана 2023-12-06 205336.jpg]], когда система напишет "Connecting..." - зажимаем кнопку Boot на dev-плате esp32
* если прошивка залилась успешно, перезагружаем esp32 соответствующей кнопкой, после этого у вас должна заработать лента, алгоритм будет менять каждые 5 секунд, всего 12 алгоритмов


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

правки