Да, это адресные светодиоды, по картинке судя и злобным комментам покупателей
Да, это адресные светодиоды, по картинке судя и злобным комментам покупателей
оооо, а я вас тоже знаю, вы тоже мой личный хейтер))) вот тут не точка а ?! должны быть наверное… хотя это не код, и тут так писать можно)))
lilik такой девайс появился, если надо совсем маленькое что то
Waveshare ESP32-S3 с RGB
Интересный калибр ![]()
Осталось матрицу заменить дисплеем, МК плату - флешкой, разъём другого типа и будет красиво ! Вставил флешку, а на боковой поверхности фото хозяина с номером телефона - чтоб вернуть так сказать случайно утерянное.
Все три подключены на D2, причем D2 никуда больше не выведена.
А могли бы вывести с 3 адресного светодиода дальше на ленту вывод ![]()
Купить платку 8х8 мини и приклеить её наоборот этой платы, выйдет дешевле, чем BABOS советует.
конечно дешевле))) https://aliexpress.ru/item/1005006325461480.html (вроде она) я ту ссылку скидывал из за того что там видео работы ее есть
Можно попробовать цвета гармонизировать. В интернете есть онлайн калькуляторы. А можно - наеборот, использовать близкие цвета
Описание креативненькое ))
Не Ешьте эту светодиодную сетку только потому, что она такая красочная и размером с укус!
Это да ![]()
А так да, можно делать светодиодный бейдж по типу 8Х(8,8,8,8)
Или в футляр деревянный как покупатель ниже этого Энрики
Ещё жалуются, но я и сам заметил - светодиод включения синий-яркий, а с 13 пина жёлтый-тусклый, на фоне синего почти не виден ![]()
Тут я не пришёл к решению
В моих вариантах с адресными светодиодами всегда фигурирует М - псевдомощность(яркость) свечения от 0-255. В конкретно этих узорах цветоперебор реализован в виде
strip.setPixelColor(N,(cv%2)*M,((cv/2)%2)*M ,((cv/4)%2)*M );
с условными номерами цветов 0-7. Поэтому вопрос как подбирать комплект цветов с регулировкой их псевдояркости остаётся открытым.
Как вариант использовать не RGB, а HSV. В Adafruit_NeoPixel это вроде есть. В нестандартной есть(GitHub - HardProg/Adafruit-NeoPixel-With-HSV: This is the Adafruit NeoPixel library https://github.com/adafruit/Adafruit_NeoPixel WITH HSV), а в FastLED есть по умолчанию. Насыщенность сделать на всю(для красивости) и с яркостью работать проще.
Надо подумать на досуге. Плохо, что аппаратно то светодиоды работают именно в RGB пространстве.
Вот, номера цветов на этом конусе. Осталось яркость вставить
Хех, походу, в HSV чаще работают не яркостью, а насыщенностью. В Fast led куча разных готовых функций и в большинстве эффектов “красявости” достигаются именно насыщенностью - типа fadeToBlackBy
не особо актуально, но в чем состоит “возможность клеить на бумажный скотч”?..
Можно ведь и термоклеем приклеить хоть что хоть куда, к слову ))
щас куплю матрицу 16 на 16, потом кто то сделает проект на 32 х32…)))
вроде не неопиксель не фаст лед не умеют и цвета менять, и яркость, разве что сделать кучу переменных, и для каждого пикселя выводить несколько раз в секунду, я давно так сделал проект за денежку… но сейчас вроде что то изменилось…
вроде работает, но кажется ваш эффект отвалился))) и появился другой(хорошо или плохо это я не знаю, у меня матрица 8 на 8))) ) если хорошо, то скиньте пж видео работы)))
// примеры для ws2812b
//Arduino UNO
#include "Adafruit_NeoPixel.h"
#define line_ 256 //число пикселей в ленте
uint8_t dataPin = 6;// вывод для подключения
Adafruit_NeoPixel strip = Adafruit_NeoPixel(line_, dataPin, NEO_GRB + NEO_KHZ800);// Создаем переменную strip для управления нашей лентой.
byte M = 2;//мощность свечения
// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
byte massiv_per[16][16] = {
{207, 199, 71, 79, 251, 243, 115, 123, 184, 176, 48, 56, 140, 132, 4, 12}, //1
{223, 215, 87, 95, 250, 242, 114, 122, 168, 160, 32, 40, 141, 133, 5, 13}, //2
{206, 198, 70, 78, 235, 227, 99, 107, 185, 177, 49, 57, 156, 148, 20, 28}, //3
{205, 197, 69, 77, 219, 211, 83, 91, 186, 178, 50, 58, 172, 164, 36, 44}, //4
{222, 214, 86, 94, 234, 226, 98, 106, 169, 161, 33, 41, 157, 149, 21, 29}, //5
{239, 231, 103, 111, 249, 241, 113, 121, 152, 144, 16, 24, 142, 134, 6, 14}, //6
{255, 248, 119, 127, 247, 240, 112, 120, 136, 128, 0, 8, 143, 135, 7, 15}, //7
{238, 230, 102, 110, 233, 225, 97, 105, 153, 145, 17, 25, 158, 150, 22, 30}, //8
{221, 213, 85, 93, 218, 210, 82, 90, 170, 162, 34, 42, 173, 165, 37, 45}, //9
{204, 196, 68, 76, 203, 195, 67, 75, 187, 179, 51, 59, 188, 180, 52, 60}, //10
{220, 212, 84, 92, 202, 194, 66, 74, 171, 163, 35, 43, 189, 181, 53, 61}, //11
{237, 229, 101, 109, 217, 209, 81, 89, 154, 146, 18, 26, 174, 166, 38, 46}, //12
{254, 246, 118, 126, 232, 224, 96, 104, 137, 129, 1, 9, 159, 151, 23, 31}, //13
{253, 245, 117, 125, 216, 208, 80, 88, 138, 130, 2, 10, 175, 167, 39, 47}, //14
{236, 228, 100, 108, 201, 193, 65, 73, 155, 147, 19, 27, 190, 182, 54, 62}, //15
{252, 244, 116, 124, 200, 192, 64, 72, 139, 131, 3, 11, 191, 183, 55, 63} //16
};
byte massiv_kolzo[16] = {2, 2, 2, 2, 0, 0, 0, 0, 6, 6, 5, 6, 0, 0, 0, 0};// начальный набор цветов
///RGB
void setup() { strip.begin(); }
void loop() {
for (int i = 0; i < 16; i++) { gruppa(i, massiv_kolzo[i]); }
strip.show(); delay(200); kolzo();
if (millis() % 5 == 0) {
massiv_kolzo[0] = random(0, 8);
M = random(1, 255); }// Изменение яркости случайным образом
if (millis() % 5 == 1) { massiv_kolzo[0] = 0; }
}
void gruppa(byte n, byte cv) {
for (int in = 0; in < 16; in++) {
strip.setPixelColor(massiv_per[n][in], (cv % 2) * M, ((cv / 2) % 2) * M, ((cv / 4) % 2) * M); }
}
void kolzo() {
byte V = 0;
for (int in = 0; in < 16; in++) {
if (in != 0 && in != 15) { massiv_kolzo[in] = massiv_kolzo[in + 1]; }
if (in == 0) { V = massiv_kolzo[in]; massiv_kolzo[0] = massiv_kolzo[1]; }
if (in == 15) { massiv_kolzo[in] = V;}
}
}
код писал ИИ!)))
В гладкой, ровной поверхности двух склеиваемых плат.
Он не даёт “нулевой” толщины между скреплёнными платами, не позволяет многократно перезакреплять платы или крепить неразборно.
Оно не поможет, узоры псевдослучайны. Если 8х8 сделали по подобию, то отрезаем мысленно визуально четверть и сравниваем со своим вариантом.

Вот ещё вариант:
Спойлер
/////////////////////////////////////
// примеры для ws2812b
//Arduino UNO
#include "Adafruit_NeoPixel.h"
#define line_ 256 //число пикселей в ленте
uint8_t dataPin = 6;// вывод для подключения
Adafruit_NeoPixel strip = Adafruit_NeoPixel(line_, dataPin , NEO_GRB + NEO_KHZ800); // Создаем переменную strip для управления нашей лентой.
byte M = 2; //мощность свечения
byte massiv_per2[4][64] = {{120, 121, 137, 153, 169, 168, 167, 166, 165, 164, 148, 132, 116, 100, 84, 68, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 208, 192, 176, 160, 144, 128, 112, 96, 80, 64, 48, 32, 16, 0}, //1
{135, 134, 118, 102, 86, 87, 88, 89, 90, 91, 107, 123, 139, 155, 171, 187, 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, 178, 162, 146, 130, 114, 98, 82, 66, 50, 34, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255}, //2
{136, 152, 151, 150, 149, 133, 117, 101, 85, 69, 70, 71, 72, 73, 74, 75, 76, 92, 108, 124, 140, 156, 172, 188, 204, 220, 219, 218, 217, 216, 215, 214, 213, 212, 211, 210, 209, 193, 177, 161, 145, 129, 113, 97, 81, 65, 49, 33, 17, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, //3
{119, 103, 104, 105, 106, 122, 138, 154, 170, 186, 185, 184, 183, 182, 181, 180, 179, 163, 147, 131, 115, 99, 83, 67, 51, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 253, 252, 251, 250, 249, 248, 247, 246, 245, 244, 243, 242, 241, 240}, //4
};
byte massiv_kolzo2[64] = {0, 0, 0, 0, 1, 1, 1, 1, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 5, 5, 5, 5, 7, 7, 7, 7, 0, 0, 0, 0, 6, 6, 6, 6, 4, 4, 4, 4, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 5, 5, 5, 5, 0, 0, 0, 0}; // начальный набор цветов фрагмента
///RGB
void setup() {
strip.begin();
}
void loop() {
for (int i = 0; i < 64; i++) {
gruppa2(i, massiv_kolzo2[i]);
}
strip.show();
delay(75);//быстрота смены узора
kolzo2();
if (millis() % 5 == 0) {
massiv_kolzo2[0] = random(0, 8);
}
if (millis() % 5 == 1) {
massiv_kolzo2[0] = 0;
}
}
/////////////////////////////////////
void gruppa2(byte n, byte cv) {
for (int in = 0; in < 4; in++) {
strip.setPixelColor(massiv_per2[in][n], (cv % 2)*M, ((cv / 2) % 2)*M , ((cv / 4) % 2)*M );
}
//strip.show();
}
/////////////////////////////////////
void kolzo2() {
byte V = 0;
for (int in = 0; in < 64; in++) {
if (in != 0 && in != 63) {
massiv_kolzo2[in] = massiv_kolzo2[in + 1];
}
if (in == 0) {
V = massiv_kolzo2[in];
massiv_kolzo2[0] = massiv_kolzo2[1];
}
if (in == 63) {
massiv_kolzo2[in] = V;
}
}
}
/////////////////////////////////////

Этот будет работать только на 16х16, потому что базовый фрагмент не квадрат или треугольник, а спираль.







