Гирлянда на окно из ста пятидесяти пикселей была моей гордостью ровно до первого белого режима. Блок на 5 В стоял честный, по бюджету из прошлого урока, но лента запитывалась с одного конца парой проводов по два метра, и картина была такая: у входа в ленту белый, к середине — тёплый белый, к дальнему концу — уже явно янтарный, будто кто-то налил в свет апельсиновый сок. Я переткнул ленту, посмотрел на маркировку, заподозрил брак и чуть не заказал новую. Виноват оказался не брак, а арифметика: шесть ампер через два метра тонкого провода — и вот у дальних пикселей вместо пяти вольт уже четыре с гаком.
Это железный урок без анимации: почему ленту нельзя питать от Arduino, как провод превращает 5 В в 4,16 В и что такое инжекция питания — подкачка по длине. В симуляторе мы посчитаем потери на числах, а схему точек подкачки я собрал в таблицу. С законами тока мы уже работали в уроке про закон Ома — здесь та же физика, только амперы другие.
Почему нельзя от Arduino
Начну с частого вопроса: пин 5V на Uno — это же пять вольт, чего ещё ленте надо? Проблема не в вольтах, а в пути тока. На Uno питание с USB проходит через полифьюз на 500 мА, и лента, подключённая к пину 5V, течёт через тот же предохранитель, что и сама плата. Десяток пикселей — терпимо; тридцать белым — 1,8 А, и предохранитель либо отрубает всё, либо греется, а напряжение в плате проседает и начинаются самопроизвольные перезагрузки. Своего мощного стабилизатора у Uno нет: стабилизатор на плате обслуживает логику, а не свет. Поэтому рабочий предел — около восьми-десяти пикселей, и дальше разговор один: отдельный блок 5 В нужного тока.
Схема разделённого питания при этом проста, и в ней есть ровно одна ловушка. Плюс блока идёт на плюс ленты, минус блока — на минус ленты, а провод данных — с пина Arduino через резистор 330–470 Ом. Ловушка: земля должна быть общей. Минус блока, минус ленты и GND платы соединяются в одну точку, потому что сигнал данных — это разность потенциалов между проводом данных и землёй, и без общей земли сигнал не имеет опоры; сам язык, на котором пиксели разговаривают по этому проводу, мы разбирали в уроке про однопроводной протокол. Я видел два вечера странной работы ленты, потерянные из-за того, что земля шла через тонкий хвост от USB, а блок висел на своей земле отдельно.
Теперь про саму ленту как провод. Плюс и минус в ленте — это медные дорожки вдоль всей её длины, тонкие, миллиметра два шириной. Когда весь ток идёт с одного конца, он течёт по этим дорожкам всё дальше и дальше, и на каждом сантиметре часть напряжения оседает. Тот же эффект есть и в фидерных проводах от блока, только там всё решается сечением. Итог один: дальние пиксели получают меньше пяти вольт, и белый на них желтеет, потому что красному кристаллу для полного накала нужно меньше напряжения, чем синему и зелёному.
Арифметика просадки на числах
Норма питания WS2812B — 5 В плюс-минус полвольта. Ниже примерно 4,5 В белый начинает теплеть, ниже 4,2 — желтеет заметно, а синие и зелёные оттенки тускнеют первыми: красному кристаллу хватает и трёх с половиной вольт, поэтому желтизна — это сигнал, а не просто эстетика. Считается просадка школьным законом Ома: сопротивление медного провода равно удвоенная длина (туда и обратно!) умножить на 0,0175 Ом·мм²/м и поделить на сечение в квадратных миллиметрах. Провод 0,5 мм² длиной два метра имеет сопротивление туда-обратно около 0,14 Ом; при токе в шесть ампер на нём оседает 0,84 В — и до дальнего конца доходит уже 4,16 В.
Заметьте, шесть ампер для примера взяты не с потолка: это сто пикселей белым, лента ровно в полтора метра при плотности 60 штук на метр. И это ещё не всё: даже при идеальном фидере шесть ампер текут вдоль дорожек самой ленты и на пятом метре тоже создают падение — поэтому с лентами длиннее пары метров борются не только толщиной проводов, но и подкачкой. Коварство просадки в том, что средние пиксели выглядят нормально, и глаз ловит проблему только тогда, когда заметит желтизну на дальнем конце — на белом режиме и с тёмного угла комнаты.
В симуляторе ниже лента горит белым — это наша нагрузка, а вся физика уходит в Serial: движок провода не моделирует, и врать картинкой я не буду. Раз в полторы секунды печатается сценарий фидера — длина, сопротивление туда-обратно в миллиомах на метр, просадка в милливольтах и то, сколько вольт остаётся дальнему концу. Три сценария: тонкий провод два метра, толстый два метра и толстый пять метров — по ним видно, что решает сечение, а что длина.
Инжекция: подкачка питания по длине
Инжекция — это когда плюс и минус блока подводятся не в одну точку ленты, а в несколько: к началу, к концу, а на длинных лентах ещё и в середину. Ток теперь течёт с двух (трёх) сторон навстречу друг другу, путь каждого ампера вдвое-втрое короче, и просадка падает во столько же раз. Правило, от которого я не отступаю: одна точка питания уверенно обслуживает метр-полтора ленты плотности 60 или два метра плотности 30; длиннее — добавляй точку. Сечение фидера при этом тоже растёт с током: 0,5 мм² хватает на три ампера, 0,75–1 мм² — на пять, а для шести-десяти ампер беру 1,5 мм² и выше.
Три монтажных правила, которые экономят вечера. Первое: инжектировать нужно и землю, не только плюс — земля несёт тот же ток обратным путём, и тонкая земляная дорожка ленты проседает так же, как плюсовая. Второе: у каждой точки подкачки ставится конденсатор 1000 мкФ между плюсом и минусом — тот самый, что мы обсуждали в уроке про подключение ленты: он сглаживает пики тока при резких сменах кадра. Третье: провода к точкам инжекции ведите от клемм блока, а не от первой точки ленты — цепочка «плюс к плюсу через хвосты» размывает весь смысл подкачки.
| Длина ленты | Точки питания | Что важно не упустить |
|---|---|---|
| до 1 м (60 px плотности 60) | один вход в начало | конденсатор 1000 мкФ у входа |
| 1–2 м | оба конца | земля идёт к блоку с обоих концов |
| 3–5 м | оба конца плюс середина | сечения фидеров по току, 1–1,5 мм² |
| матрицы и большие экраны | по периметру каждые ~1 м | общая земля с платой в одной точке |
Итого типовая схема для гирлянды на окно, с которой я живу сейчас: блок 5 В на 10 А стоит у окна, от его клемм расходятся три пары проводов 1 мм² — на начало ленты, в середину и на дальний конец; у каждой точки конденсатор; земля блока сходится с GND Arduino в одной точке, провод данных — через резистор с пина 6. Резистор, конденсатор и общая земля — те самые три детали защиты, с которых начинается первый урок раздела; сложную сборку полезно сперва нарисовать на бумаге — как читать такие схемы, показано в уроке про чтение схем. Белый на всех ста пятидесяти пикселях теперь одинаково белый. Никакой магии: просто у тока стало три коротких пути вместо одного длинного.
Пара напутствий по границам применимости. Если лента живёт на аккумуляторах 18650 — считайте бюджет особенно честно: банка держит два-три ампера отдачи безболезненно, и сто пикселей белым для неё уже перебор. Для очень длинных линий смотрите в сторону лент на 12 В вроде WS2815: ток при той же мощности втрое ниже, просадки слабее, хотя пиксель дороже. И запомните запрет, который дороже всех советов: плюсы двух разных блоков питания между собой не соединяют никогда — если блоков два, у них общая только земля, иначе блоки начинают воевать друг с другом за напряжение.
#include <FastLED.h> #define LED_PIN 6#define NUM_LEDS 100 CRGB leds[NUM_LEDS]; // ВНИМАНИЕ: 100 px * 60 мА = до 6 А. Только внешний блок 5 В,// никогда не от пина 5V платы!void setup() { Serial.begin(9600); FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS); FastLED.setBrightness(255); fill_solid(leds, NUM_LEDS, CRGB(255, 255, 255)); FastLED.show(); Serial.print("px="); Serial.println(NUM_LEDS); Serial.print("tokMa="); Serial.println(NUM_LEDS * 60);} void loop() { // лента горит белым на полную: идём глазами от входа к концу. // Где белый превратился в янтарный — там питание просело, // и в этой зоне нужна точка инжекции. delay(1000);}- Пин 5V Arduino — не источник для ленты: полифьюз 500 мА держит максимум 8–10 пикселей
- Схема раздельного питания: плюс блока на ленту, данные с пина через резистор, земля блока и платы — общая
- Норма WS2812B — 5 ± 0,5 В; просадка = ток × сопротивление провода туда-обратно: 2 м 0,5 мм² при 6 А роняют 0,84 В
- Инжекция: подкачка плюса и минуса в начало, конец и середину — путь тока сокращается во столько же раз; конденсатор у каждой точки
- Плюсы двух блоков между собой не соединяют никогда — общая только земля
- 1. Почему дальний конец ленты желтеет в белом режиме?
- 2. Сколько вольт останется на дальнем конце фидера 2 м из 0,5 мм² при токе 6 А?
- 3. Что такое инжекция питания ленты?
- 4. Как правильно подключить два блока питания к длинной ленте?
- 5. Почему земля тоже участвует в инжекции?
Частые вопросы по теме урока
- Почему дальний конец ленты желтеет в белом режиме?
- Красному кристаллу хватает меньшего напряжения, чем синему и зелёному. Падение питания проявляется пожелтением белого и тусклыми холодными оттенками. Просевшее напряжение первым выбивает синий и зелёный кристаллы, а красный дотягивает
- Сколько вольт останется на дальнем конце фидера 2 м из 0,5 мм² при токе 6 А?
- Сопротивление туда-обратно 2 × 2 × 0,0175 / 0,5 = 0,14 Ом; 6 А × 0,14 Ом = 0,84 В. До конца доходит 4,16 В — ниже нормы 5 ± 0,5 В. Около 4,16 В: на проводе оседает 0,84 В
- Что такое инжекция питания ленты?
- Ток подаётся с обоих концов и из середины: путь каждого ампера короче, просадка падает пропорционально. Землю инжектируют так же, как плюс. Подвод плюса и минуса блока в несколько точек по длине ленты
- Как правильно подключить два блока питания к длинной ленте?
- Блоки с разными настройками начинают перетягивать ток, если их плюсы встречаются. Общим между блоками и платой остаётся только минус. Каждый блок кормит свой участок, плюсы не встречаются, земли сходятся в одну точку
- Почему земля тоже участвует в инжекции?
- Ток замыкается по кругу: сколько ампер ушло по плюсу, столько вернётся по земле. Тонкая земляная дорожка проседает и ломает опору сигнала данных. Земля несёт тот же ток обратным путём и проседает так же, как плюс