Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Поднимайтесь как можно выше по дереву, собирайте цветы и дарите их близким.
Вас ждут уникальные награды и 22 выгодных промокода!

Пикаджамп

Аркады, Казуальные, На ловкость

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Arduino + Светодиоды

С этим тегом используют

Электроника Ardublock Самоделки YouTube Своими руками Вертикальное видео Видео ВК Led Освещение Электрика Лампа Все
32 поста сначала свежее
dxxp
dxxp
28 дней назад

Какие номиналы резисторов самые ходовые? Резистор металлаплёночный 1% 0.25Вт 1/4W⁠⁠

Пополняю ассортимент своего магазина. Хотел спросить у более сведущих в этой сфере людей. Какое сопротивление резисторов самое ходовое? Как лучше закупить и каких побольше?

Техника Электроника Электрика Технари Радиокомпоненты Компоненты Радиотехника Самоделки Arduino Stm32 Arduino Nano V3 Радиодетали Резистор Транзистор Сопротивление Физика Запчасти Радио Светодиоды Диоды Текст
13
5
DELETED
7 месяцев назад

Светодиоды мощные сверхъяркие⁠⁠

Короче решил собрать себе ручной прожектор, на светодиодах фирмы CREE XM- L3 или Lumenus SST 40 или 90.

По даташитам они 3х вольтные 10ваттные.

Рабочий ток CREE до 5А

Рабочий ток Lumenus до 5А - чуть ярче и более прожорливые

Яркость от 1200 люменов

По таблицам зависимостей ток-напряжение - яркость - при 3.2В и потреблении 3500мА - (безопасны уровень питания )- светоизлучение достигает 90%яркости светодиода.

Заказал их с интернет магазина Beriled.biz, решил протестировать через лабораторный блок питания (хочу через микроникс и ардуинку, организовать различные режимы шим модуляции)- параметры 3.2в ток 4А - запускаю и имею следующую картину - потребление 1.5W - даже и близко не к номиналу, - при токе 548мА, крутил регулятор Амперов, выше это значения не поднимается, только если я не начну поднимать напряжение.

Уже при 4В (а это смерть для светодиода) смог добиться потребления в 10W и токе в 2А - Яркости это особо не дало.

Собственно вопрос - может мой ЛБП не может при таком маленьком напряжении отдать 3-4 Ампера, либо магазин Beriled.biz - петушары конченные, продали мне китайские диоды от фирмы LB (копируют Кри) по цене крыла самолета.

помогите разобраться и гдеможно купить настоящий кри или люменус

Электричество Электроника Arduino Материнская плата Сборка Светодиоды Самоделки Электрика Пайка Мастерская Led Инженер Нужна помощь в ремонте Текст
21
12
A.Kristina
A.Kristina
8 месяцев назад
Интересный AliExpress

Классная светодиодная лента⁠⁠

Светодиодная лента с чипом WS2812B, где индивидуально работает каждый светодиод.

Важно! Для работы требуется источник питания DC 5V и светодиодный контроллер, без них лента работать не будет. Ссылка на ленту.

Показать полностью
Светодиоды AliExpress Товары Китайские товары Электроника Светильник Контроллер Arduino Свет Видео
5
64
Buterbrott
1 год назад
Arduino & Pi

Светодиодные матрицы для "чайников" (часть 2)⁠⁠

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

Во многих подобных конструкциях раскладка светодиодов не имеет строк и столбцов, а порой она и вовсе хаотичная. Да и и соединены диоды не рядами, а как было удобно для разводки платы.

Возьмем, к примеру, мою новогоднюю звезду . Диоды там уложены концентрическими звездами, да еще и змейкой.

Светодиодные матрицы для "чайников" (часть 2) Arduino, Программирование, Длиннопост, Светодиоды, Видео, Без звука

Но отчаиваться не будем, попробуем мыслить логически. У каждого диода на звезде есть реальные координаты центра в миллиметрах, или координаты на картинке в пикселях.

Светодиодные матрицы для "чайников" (часть 2) Arduino, Программирование, Длиннопост, Светодиоды, Видео, Без звука

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

uint16_t mapTable[][2] = {

{ 206, 340 },

{ 181, 354 },

{ 156, 369 },

{ 132, 383 },

{ 107, 398 },

{ 89, 404 },

{ 89, 385 },

{ 95, 357 },

{ 101, 329 },

{ 107, 301 },

{ 114, 273 },

... // и так далее, для всех 180 диодов

};

struct ledCoords {

uint16_t x;

uint16_t y;

};

ledCoords mapIdxToXY( byte index ) {

return { mapTable[index][0], mapTable[index][1] };

}

void loop() {

for ( byte i = 0; i < NUM_LEDS; i++ ) {

ledCoords lc = mapIdxToXY(i);

leds[i] = effectColorByCoords(lc.x, lc.y);

}

FastLED.show();

}

На практике это оказывается не очень удачным решением. Координаты - штука относительная. У кого-то линейка в дюймах, а у кого-то 4К картинка с четырехзначными координатами. Замучаешься подгонять масштаб анимации под каждое устройство. Чтобы избежать этого выполняют нормализацию координат.
Звучит страшно, но на практике это просто пересчет в некую фиксированную систему координат. Например, давай примем за правило, что минимальная координата по X среди всех диодов это 0 в нашей "нормализованной" системе, а максимальная - 1. И все остальные координаты пересчитаем пропорционально Xn = ( x - Xmin )/(Xmax - Xmin). Аналогично поступим с координатами Y.

Теперь у нас все координаты на любом устройстве лежат в пространстве 0..1
Такой подход используется в программируемых контроллерах Pixelblaze.

Казалось бы, можно закончить занудствовать на этом, но позволь еще немного помучать тебя.

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

  • Во-вторых, некоторые алгоритмы эффектов требуют расчета по всей площади, а не только в точках расположения диодов. Например операция размытия (blur) требует значения цветов всех соседних точек в пределах радиуса размытия.

  • Ну и в-третьих, тут уж мое личное мнение, куча дробных чисел в формулах снижает читабельность кода, а отладка такого кода вызывает у меня тихий ужас.

И тут ты подкидываешь наивную идею: "А можно как-то так чтобы координаты остались целыми, но не такими большими и более-менее схожей размерности на разных устройствах?"

Можно!

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

Светодиодные матрицы для "чайников" (часть 2) Arduino, Программирование, Длиннопост, Светодиоды, Видео, Без звука

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

byte mapTable[][2] = {

{ 12, 18 },

{ 11, 19 },

{ 9, 20 },

{ 7, 21 },

{ 6, 22 },

{ 5, 22 },

{ 5, 21 },

{ 5, 19 },

{ 6, 18 },

{ 6, 16 },

{ 6, 15 },

... // и так далее, для всех 180 диодов

}

Вроде неплохо получается.

А чтобы все алгоритмы были похожи на работу с обычной прямоугольной матрицей,можно развернуть мэппинг. Будем хранить в таблице не координаты, а индексы диодов для каждой ячейки нашей матрицы 27x23
Только как же быть с пустыми клеточками, ведь их нужно как-то пропустить при обработке? Да запиши в них просто какое-то значение индекса которое ты отловишь в цикле и пропустишь обработку. Например любое число большее общего количества диодов. И таблица примет такой вид:

byte mapTableIndex[23][27] = {

{ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 27,

255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },

{ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 26, 255,

28, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },

{ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 25, 77,

29, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },

{ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 78, 255,

76, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },

{ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 24, 255, 255,

255, 30, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },

{ 255, 255, 255, 255, 255, 255, 255, 255, 255, 23, 255, 79, 117,

75, 255, 31, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },

... // и еще 17 строк

}

Тогда функция мэппинга и рабочий цикл будут выглядеть как-то так:

byte mapXYtoIdx( byte x, byte y ) {

return mapTableIndex[y][x];

}

void loop() {

for ( byte y = 0; y < 23; y++ ) {

for ( byte x = 0; x < 27; x++ ) {

byte ledIndex = mapXYToIdx(x,y);

if ( ledIndex == 255 ) continue;

leds[ledIndex] = effectColorByCoords(x, y);

}

}

FastLED.show();

}

Конечно, хранить такие большие массивы с таблицами мэппинга в оперативной памяти не стоит, обычно их загоняют во flash используя PROGMEM.

Собираем все полученные знания в кучу и зажигаем)

(Продолжение следует, stay tuned)

Показать полностью 3 1
[моё] Arduino Программирование Длиннопост Светодиоды Видео Без звука
0
87
Buterbrott
1 год назад
Arduino & Pi

Светодиодные матрицы для "чайников" (часть 1)⁠⁠

Дружок, присаживайся поудобнее, расскажу тебе что такое матрицы из адресных светодиодов.

Светодиодные матрицы для "чайников" (часть 1) Arduino, Программирование, Длиннопост, Светодиоды, Видео, Без звука

Итак, адресный RGB светодиод отличается от обычного трехцветного наличием встроенного контроллера, вон тот черный прямоугольник на картинке. Эта чудесная микросхема принимает со входа Din пакет данных, откусывает от него первые 24 бита и отправляет оставшиеся данные на выход Dout. А откушенный кусочек превращает в прекрасное свечение определенного цвета.

На мой взгляд, определение “адресный” не совсем подходит для этого контекста, так как адреса и нет вовсе, а есть только порядковый номер диода в конкретной конструкции. Если снесут дом на улице, остальные дома останутся при своих номерах, а если убрать на светодиодной ленте первый диод, то второй станет первым.

В программе контроллера работа с адресными диодами обычно сводится к созданию массива с количеством элементов равным количеству диодов в сборке, где каждый элемент определяет цвет соответствующего диода. Этот массив нужно передать на диодную сборку.На примере самой популярной библиотеки FastLED это выглядит так:

CRGB leds[NUM_LEDS];
leds[0] = CRGB::Red;
FastLED.show();

И все, мы зажгли первый светодиод на ленте красным цветом.

Я опустил инициализацию библиотеки для конкретной ленты, подсмотришь в последующих примерах или документации на FastLED.

Большинство эффектов для светодиодных конструкций представляют собой некую функцию определяющую цвет светодиода в текущий момент времени по его координатам в конструкции.

С лентами вроде все понятно, одномерный объект, одна координата равная порядковому номеру диода на ленте.

А как быть с матрицами? Они уже двумерные, там у каждого диода есть две координаты - столбец и строка. Не паникуй, оказывается среднестатистическая матрица это та же лента уложенная рядочками. Так что, технически, обращение к конкретному диоду выполняется все так же, по его номеру. Слышу твое возмущение, и ты конечно же прав, матрица двумерная и обращаться к диодам хотелось бы по понятным двум координатам. Выручит небольшая функция, которая будет пересчитывать две координаты в номер диода. В общем случае, для прямоугольной матрицы размером WIDTH х HEIGHT, получится как-то так:

int XY( int x, int y ) {
return y * WIDTH + x;
}

Это преобразование обычно называют мэппингом ( mapping )

Ты уже подпрыгиваешь на месте и хочешь собрать что-то сверкающее и красивое? Не вижу причин отказывать тебе в этом, погнали.

Берем самую распространенную китайскую матрицу 16х16 с диодами WS2812, первый диод в левом верхнем углу, там же и начало координат. Все координаты и индексы начинаются с нуля. Цепляем матрицу по схемам из интернета к контроллеру и пишем первую программу.

#include <FastLED.h>
#define DATA_PIN 12
#define WIDTH 16
#define HEIGHT 16
#define NUM_LEDS WIDTH * HEIGHT

CRGB leds[NUM_LEDS];

byte XY( byte x, byte y ) {
return y * WIDTH + x;
}

void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
FastLED.clear();
for ( byte y = 0; y < HEIGHT; y++ ) {
for ( byte x = 0; x < WIDTH; x++ ) {
leds[XY(x,y)] = CRGB::Red;
FastLED.show();
delay(100);
}
}
}

void loop() {
}

Компилируем, прошиваем. Работает!!!

Так, стоп! У нас цикл для X идет по возрастанию от 0 до 15, почему же тогда каждая вторая строка матрицы заполняется в обратном порядке?
Помнишь я говорил что матрица это лента уложенная рядочками? Так вот ленту удобнее укладывать змейкой, что производители и делают) Раскладка так и называется - serpentine ( aнгл. змеевидный ).

Что же делать с нашим примером, ведь мы хотим зажечь диод с координатами (2,1) а зажигается диод (13,1). Немного поскрипим извилинами и изменим функцию мэппинга так чтобы каждый второй ряд считался в обратном порядке.

byte XY( byte x, byte y ) {
if ( y%2 == 0 ) {
return y * WIDTH + x;
} else {
return ( y + 1 ) * WIDTH - x - 1;
}
}

Не буду разжевывать математику, прикинешь на пальцах, сообразишь сам что к чему.

Теперь все ок.

С адресацией матрицы разобрались, можем творить красоту.

(Продолжение следует. Stay tuned)

Показать полностью 3
[моё] Arduino Программирование Длиннопост Светодиоды Видео Без звука
19
21
AnatoliyB
AnatoliyB
1 год назад
Arduino & Pi

Пол – это лава⁠⁠

Тег [моё], т.к я полностью сам разработал, спаял и запрограммировал эту штуку, готов ответить на ваши вопросы.

А для тех, кому интересно последить за развитием проекта, оставлю ссылку на мой телеграм канал: Pixel Quest – канал о разработке. Пишу там исключительно сам и не чаще одного раза в 4-7 дней, маркетинговой информации и рекламы не будет, больше планирую рассказывать про техническую составляющую проекта с постепенным уклоном в IT.

Показать полностью
[моё] Игровая комната Электроника Raspberry pi Светодиоды Видео Пиксельные игры Arduino Самоделки
6
31
Nick.Geek
Nick.Geek
2 года назад
TECHNO BROTHER

Сделал себе подсветку из адресной ленты⁠⁠

Собирал по проекту гайвера. Жду комментов о том, что можно было купить готовый контроллер с Али)

Все файлы для сборки тут - https://alexgyver.ru/ws2812b-fx/

[моё] Электроника Радиотехника Arduino Светодиоды Своими руками Видео Вертикальное видео
12
2
PASuslov
PASuslov
2 года назад

Магический куб Music Visualizer на Led RGB Matrix Panel⁠⁠

скетч с библиотеками здесь Hyper music computer.zip - Google Диск

PCLedEQ - YouTube

Инструкция:

Вам понадобятся светодиодная панель соответствующая требованиям библиотеки(читай мануал к библиотеке) , блок питания и esp32 как в этом посте Часы с погодой RGB на LED P4 panel и ESP32. | Пикабу (pikabu.ru)

подключать звук к 32 и 33 пинам через Jack 3.5 лучше через Аудио разделительные трансформаторы. сама панель подключается напрямую к ESP32 проводками или шлейфом к следующим пинам (библиотека модифицирована под конкретно мою панель, перед покупкой панели ознакомьтесь с поддерживаемыми вариантами библиотеки) :

#define R1_PIN 1

#define G1_PIN 2

#define B1_PIN 4

#define R2_PIN 5

#define G2_PIN 18

#define B2_PIN 19

#define A_PIN 21

#define B_PIN 22

#define C_PIN 23

#define D_PIN 25

#define E_PIN 26

#define LAT_PIN 14

#define OE_PIN 27

#define CLK_PIN 12

#define GPIO_PWM0A_OUT GPIO_NUM_12

#define GPIO_SYNC0_IN GPIO_NUM_25

Показать полностью
[моё] Светомузыка Неоновая подсветка RGB Моддинг Светодиоды Светодиодная панель Arduino Электроника Самоделки Видеообзор Дискотека 2D анимация 3D анимация Led Музыкальное оборудование Видео YouTube
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии