FastLED — адресные светодиоды WS2812
Ленты, матрицы, эффекты, HSV-цвета
Библиотека FastLED: сотни светодиодов по одному проводу, палитры HSV, радуга, бегущие огни, правила питания и уровень сигнала.
Прогресс раздела0/66 · 0%
- WS2812: как один провод управляет сотнями светодиодовРазбираем однопроводной протокол WS2812: NRZ-биты по 1,25 мкс, чип-ретранслятор в каждом пикселе, защёлка 50 мкс и честная арифметика времени show().16 мин
- FastLED: установка библиотеки и первый скетчСтавим FastLED через менеджер библиотек, собираем первый скетч на addLeds и setBrightness и получаем чек-лист на случай, когда лента молчит.14 мин
- Подключение ленты WS2812B: питание, данные, резисторСхема подключения WS2812B: отдельные 5 В, общая земля, резистор 330 Ом в линию данных, конденсатор 1000 мкФ на входе и лимит тока кодом.18 мин
- Музыкальная подсветка: микрофон и спектр на лентеМузыкальная подсветка на Arduino: микрофон MAX4466, огибающая громкости и спектр через FFT.16 мин
- Эффекты без delay: FastLED в millis-циклеАнимация FastLED на таймере millis() вместо delay(): период кадра как ручка скорости, бюджет show(), переполнение millis() и кнопки, которые больше не умирают.16 мин
- Итоговый проект: умная гирлянда с пультомИтоговый проект раздела: гирлянда на WS2812 с пультом ИК и микрофоном MAX4466.17 мин
- Ночник на ленте: три режима и память в EEPROMНочник на WS2812: тёплый тусклый, красный ночной на 10 процентов и выключено — кнопка листает по кругу, EEPROM.put помнит режим после выдёргивания вилки.16 мин
- Лента-индикатор погоды: данные из SerialWS2812 как погодный индикатор: Serial.parseInt принимает код 1, 2 или 3, лента красится сценариями солнце, облака и дождь; на плате числа шлёт ESP32.16 мин
- Обратный отсчёт на ленте: время тает как полосаТаймер на WS2812: 60 секунд тают по 30 пикселям, последние 10 мигают с бипом, финал — вспышки; кнопка рестартует, всё на millis без единого delay.17 мин
- Диммер на потенциометре: яркость без рывковДиммер WS2812 на потенциометре: map из 0-1023 в setBrightness, скользящее среднее из 8 замеров и мёртвая зона 4 единицы — тёплый белый без дёрганья.16 мин
- Ёлка: три сцены на ленте и кнопкаНовогодняя лента с тремя сценами: переливы fill_rainbow, звёзды из случайных вспышек и гирлянда-вспышки.16 мин
- Лампа с энкодером: крутишь ручку — ярчеЛампа на WS2812 с энкодером KY-040: тик ручки ставит цель яркости, loop доводит шагом 4 за 15 мс, кнопка SW меняет тёплый на холодный, ноль — FastLED.clear().16 мин
- PartyColors_p и готовые палитры: когда смешивать вручную не нужноPartyColors_p и HeatColors_p без ручной смеси: 48 байт на палитру, ColorFromPalette с LINEARBLEND против NOBLEND-полос и выбор между палитрой и fill_rainbow.16 мин
- nblend и плавный переход: тянем ленту к цвету вместо заливкиnblend подмешивает долю цели за кадр: переход без вспышки против fill_solid, доля 24 и кадр 30 мс, почему RGB едет через грязь и куда встаёт fadeToBlackBy.16 мин
- beatsin8: волна по ленте без delay и фаза каждого пикселяbeatsin8 качает байт между low и high с темпом в BPM: фаза на пиксель делает волну бегущей, длина волны из шага фазы, движение без delay и шлейф fadeToBlackBy.17 мин
- Своя палитра из пяти цветов: шкала для чисел с датчикаПалитра CRGBPalette16 из пяти опорных как шкала прибора: индекс от датчика через map и constrain, яркость маркера отдельным аргументом, зоны на NOBLEND.16 мин
- Кроссфейд палитр: сцены гирлянды перетекают самиСмена сцен через кроссфейд палитр: nblendPaletteTowardPalette из TwinkleFox, лимит 24 байта за вызов, ручной nblend по ячейкам и хвост недоезда.16 мин
- Автолимит питания: setMaxPowerInVoltsAndMilliamps и лента на USBАвтолимит тока на FastLED: setMaxPowerInVoltsAndMilliamps(5, 400), модель 16/11/15 мА по каналам, индикаторный светодиод и зазор на заниженный белый цвет.17 мин
- Дождь на ленте: капли падают, разгоняются и разбиваютсяВертикальная лента WS2812 под дождь: массив капель-слотов, спавн по случайному интервалу, разгон в полёте, след через fadeToBlackBy и всплеск у земли.16 мин
- Мерцание свечи: живое пламя вместо случайной стрельбыПочему случайная яркость каждый кадр выглядит поломкой: живое мерцание свечи собирают из медленного дрейфа, редких рывков и тёплого оттенка, а не из random.16 мин
- Светомузыка без микрофона: фейковый бит по millisПодсветка колонки в такт без микрофона: бочка и снейр из математики millis, огибающая удара с затуханием, ручка BPM и три паттерна.16 мин
- fill_palette: палитра одним вызовом и автосмена палитрfill_palette красит ленту градиентом одним вызовом: startIndex двигает картину, deltaHue растягивает или режет её на повторы, палитры сменяются без щелчка.16 мин
- Огонь с двух концов ленты: зеркальный камин и палитровое пламяFire2012 на два фронта: два поля жара с концов ленты навстречу, зеркальный вывод, раскраска пламени палитрой вместо HeatColor и искры-угольки поверх огня.17 мин
- Подсветка за монитором: bias-свет, ночь и питание по токуBias-подсветка за монитором на WS2812: сколько пикселей нужно, ток по сценариям, тёплый ночной режим и датчик света с гистерезисом вместо стрекота на пороге.16 мин
- beatsin8 и синусные волны: дыхание и океан на лентеbeatsin8 против sin8: время и позиция.16 мин
- Лента-змейка как матрица 16x16: своя функция XYМатрица 16x16 из ленты: своя функция XY с чётными и нечётными рядами, рисование точки и линии в координатах, диагональ как тест топологии и ток 256 пикселей.16 мин
- Ночник-рассвет на WS2812: 30 минут подъёма солнцаРассвет на WS2812: 30 минут подъёма от тлеющего угля к тёплому белому через blend, 60 ступеней по 30 секунд, кнопка-отмена и будильник DS3231.17 мин
- Конфетти: случайные вспышки с длинными хвостамиКонфетти на WS2812: затухание 20 и случайные вспышки каждые 30 мс, арифметика плотности живых ячеек, насыщенность 200 против кислотной 255 и ловушка randomSeed.15 мин
- Вихрь и лесенка: циклический сдвиг лентыЦиклический сдвиг ленты: почему leds[i+1] при i++ размазывает луч, обход с конца и memmove, лесенка из fadeToBlackBy и вихрь из двух лучей с реверсом.16 мин
- Шум Перлина на ленте: inoise8 простыми словамиШум Перлина простыми словами: решётка высот, байт 0-255, масштаб входа и счётчик времени, ловушка статичного вызова и вердикт, когда хватает sin8.16 мин
- Часы-кольцо: 60 пикселей как циферблатЧасы на кольце из 60 пикселей: минутная стрелка с плавным перекрытием, часовая по формуле, маркеры четвертей, время на millis и подстройка по Serial.16 мин
- WS2811 на 12 В: строка пикселей, отличие от WS2812BWS2811 на 12 В: чип на три диода, NUM_LEDS по чипам вместо диодов, инъекция каждые 2-3 метра против метра у 5 В, ток на метр и грубеющие градиенты.15 мин
- Лента на улице: герметизация, монтаж и температурные хвостыЛента IP67 на улице: конденсат в трубке и дренаж 2 мм, нейтральный силикон в торцах, клипсы против морозного скотча, петля на вводе и точки подачи.16 мин
- CRGB и fill_solid: заливаем ленту цветомЧто такое CRGB в FastLED: каналы R-G-B, именованные цвета, fill_solid для заливки ленты, сколько тока ест белый цвет и как красить участки циклом.14 мин
- HSV в FastLED: колесо цвета вместо RGBКолесо оттенков FastLED: hue от 0 до 255, CHSV против CRGB, насыщенность и яркость, дрейф оттенка и восемь режимов гирлянды без таблиц и switch.15 мин
- Радуга на ленте: fill_rainbow и параметр huefill_rainbow в FastLED: стартовый оттенок и шаг deltaHue, полный круг при 256, движение радуги по кадрам и ручной вариант циклом с CHSV.16 мин
- Лента-ночник: тёплый свет 1900K и плавное включение по кнопкеНочник на WS2812 в цвете тлеющего уголька: пропорция каналов 1900K, плавное включение по кнопке за 2,5 секунды, рампа яркости на millis без delay.16 мин
- Лента-эквалайзер: звук в столбикиЭквалайзер на матрице 16x8: огибающая abs с атакой и спадом, пик-держатель, столбики по уровню, MAX4466 против MAX9814 и честная оговорка про спектр.17 мин
- Последний эффект помнит EEPROM: кнопка листает, память сохраняетКнопка на D2 листает эффекты по фронту, номер пишется EEPROM.update(0) по событию, при старте читается с проверкой мусора 0xFF: ресурс ячейки 100 000 циклов.16 мин
- Матрица 8x8 из ленты WS2812: зигзаг и своя XYЛента WS2812, свёрнутая змейкой в матрицу 8x8: функция XY с разворотом нечётных строк, диагональная волна на FastLED и тест-пиксель для ловли ориентации.15 мин
- Тепловая карта на ленте: значения в цветВосемь точек нагрева — восемь пикселей WS2812: analogRead с термисторов, map в индекс палитры HeatColors_p, сглаживание и мигающая тревога при перегреве.15 мин
- Лента в такт музыке: амплитуда и пикМикрофон MAX4466 на A0: окно максимумов собирает амплитуду, яркость ленты дышит вместе с громкостью, пик выше порога бьёт белой вспышкой и гаснет с затуханием.16 мин
- Свои палитры: градиент из опорных цветовСвоя палитра FastLED: CRGBPalette16 из опорных цветов, ColorFromPalette с индексом 0–255, LINEARBLEND против ступеней, вращение по времени и закат в симуляторе.16 мин
- Волны на ленте: sin8 и beat88Волны на WS2812: sin8 укладывает синус в байт, beat8 и beat88 бегут фазой со скоростью BPM, beatsin8 даёт готовую волну — движение ленты без float-тормозов.17 мин
- Дыхание LED: плавная пульсация яркостиДыхание LED на FastLED: синус вместо счётчика, beatsin8 с темпом 15 BPM, подушка минимума против квантования и scale8 для квадратичного сглаживания выдоха.16 мин
- Искры и стробоскопы: random8 и затуханиеСлучайные искры на затухающей ленте: скелет из fadeToBlackBy и редких вспышек, из которого собираются конфетти, мерцание и стробоскоп.16 мин
- Яркость и ток: setBrightness и бюджет питанияСколько тока ест лента WS2812: 60 мА на пиксель белым, бюджет под USB и блок, setBrightness как ручка яркости и тока.16 мин
- Питание WS2812: блок 5 В и инжекция по длинеПочему ленту WS2812 не питают от Arduino: просадка на длинном проводе, бюджет 5 В и инжекция питания по длине.17 мин
- Уровень сигнала 3.3 В: согласование с ESP32Почему ESP32 с сигналом 3,3 В конфликтует с WS2812: порог 0,7×VDD, диод-хак, буферный первый пиксель и шифтер 74AHCT125.16 мин
- Матрица 8x8 из WS2812: индексация XYМатрица 8x8 из WS2812 — лента-змейка: формула XY переводит координаты в номер пикселя.16 мин
- Рисуем на матрице: фигуры, линии и буквыРисуем на матрице 8x8 из WS2812: рамка, линии и цифры 3x5 из массива байтов.16 мин
- Бегущая строка на матрице: шрифт из массиваШрифт 5x7 из массива байтов: каждый бит — пиксель.16 мин
- Змейка на матрице 8x8: своя первая играЗмейка на матрице 8x8 из WS2812: игровой цикл на millis(), поворот одной кнопкой, еда, столкновения со стеной и хвостом, счёт в Serial и рестарт.17 мин
- Несколько лент на разных пинах: FastLED.addLedsДве ленты WS2812 в одном скетче: два addLeds на пинах 6 и 9, независимые сцены, синхронные эффекты одним show() и бюджет питания большой гирлянды.16 мин
- Бегущий огонь: цикл по ленте и сдвигБегущий огонь на WS2812: сдвиг массива leds в цикле, порядок обхода, кольцевое движение без обрыва и хвост из буфера.16 мин
- Градиенты FastLED: fill_gradient_rgb и CHSVПлавный переход по ленте: fill_gradient_rgb для платы, ручной CHSV-градиент в цикле, почему RGB-середина темнеет и как выбрать направление обхода круга.16 мин
- fadeToBlackBy: затухание и шлейфы эффектовКак работает fadeToBlackBy: доля затухания за кадр, длина шлейфа от числа и таймера, вспышка-молния в симуляторе, след кометы и точечное затухание пикселя.17 мин
- FastLED.show и время кадра: FPS и блокировкиСколько миллисекунд занимает FastLED.show() на WS2812: 30 мкс на пиксель, бюджет кадра 20–33 мс, почему Serial-печать и тяжёлая математика роняют FPS.16 мин
- Выбор эффекта по Serial: команда меняет режимПлейлист эффектов WS2812 по Serial: команды raduga, kometa, iskry и stop, available() перед чтением, trim() и честные ответы — проверьте в симуляторе.16 мин
- Кнопка листает эффекты: пульт гирляндыГирлянда WS2812 с кнопкой на D2: клик листает эффекты, удержание меняет яркость, выбор переживает выключение в EEPROM.17 мин
- Огонь на WS2812: классический эффект FireКлассический огонь на WS2812: алгоритм Fire2012 — массив жара, остывание, подъём пламени и вспышки.16 мин
- Перлин-шум в FastLED: inoise8 для живых эффектовПерлин-шум inoise8 в FastLED: плавная случайность вместо дёрганого random.16 мин
- Палитры FastLED: CRGBPalette16 и HeatColors_pПалитры FastLED: CRGBPalette16 и ColorFromPalette — индекс 0-255 в цвет с плавными переходами.15 мин
- FastLED: подключаем ленту WS2812 и зажигаем первые пикселиПодключаем WS2812 к Arduino через FastLED: один провод данных, резистор 330 Ом, конденсатор 1000 мкФ, ловушка GRB вместо RGB и первые пиксели в симуляторе.20 мин
- HSV-цвета и палитры: плавные переливы без болиHSV в FastLED: оттенок 0–255, насыщенность и яркость, CHSV и fill_rainbow.18 мин
- Эффекты на FastLED: радуга, огонь и бегущая волнаСобираем эффекты на FastLED: millis-кадр 30 мс, fadeToBlackBy с хвостами, бегущая точка, волна из счётчика и упрощённый огонь на красно-оранжевых CHSV.22 мин
Гайды по теме раздела
- Эффекты WS2812 на Arduino: радуга и бегущий огоньЭффекты на WS2812 и NeoPixel: радуга через колесо цвета, бегущий огонь со шлейфом, Adafruit_NeoPixel setPixelColor и show.
- Симулятор адресной ленты NeoPixel онлайн: 16 светодиодов WS2812Онлайн-симулятор NeoPixel: 16 светодиодов WS2812, Adafruit_NeoPixel, дыхание, радуга и конфетти.