Arduino для запуска и светодиодная лента длиной до 100 м

Я работаю над проектом по запуску полосы RGB вокруг большой комнаты и изменению цвета с помощью Arduino Uno. Я столкнулся с рядом проблем и ищу разъяснений.

Первой полосой, которую я использовал, была полоса 12 В со скоростью 1 А / м. Это работало бы нормально, за исключением того, что требования к питанию немного нелепы, и, похоже, мне нужно вставить свой массив МОП-транзисторов в каждую точку подачи питания.

Именно тогда я решил поэкспериментировать с адресуемой полосой 5 В, чтобы сделать это. Работа с системой 5 В облегчила мне задачу, поскольку требования к питанию ниже, а список запчастей также минимален, но после некоторых исследований выяснилось, что сигнальная линия значительно ухудшится при таком количестве WS2812B / длина линии.

Я полагаю, что я мог бы встроить транзистор через каждые n полос длиной 5 м (аналогично силовым инжекторам), однако я хотел бы спросить мнения сообщества о других проблемах, с которыми я могу столкнуться, и о том, является ли это правильным решением для работы.

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

Основные проблемы, которые я вижу, - это требования к питанию (я думаю, что я отсортировал это для версии 5 В, но не для версии 12 В) и получение сигнала на конечный светодиод. На полосе 60 светодиодов / м это может быть порядка 6000 светодиодов, и это кажется очень много.

Каковы ваши мнения/ рекомендации?

Ваше здоровье!

, 👍0

Обсуждение

Что заставляет вас думать, что сигнал будет ухудшаться из-за такого количества светодиодов?, @Majenko

@Majenko Я где-то читал это на форуме arduino. Если это не так, то это круто. Я думаю, что в сообщении на форуме говорилось, что они получают помехи от других проводов в непосредственной близости от сигнальной линии (возможно, питание или что-то в этом роде), я, по сути, новичок в этом - прошло много времени с тех пор, как я возился с микроэлектроникой, и я снова все переучиваю, лол. Если мои утверждения неверны, я буду рад конструктивной критике :), @Michael Coxon

В техническом описании WS2812B указано: Встроенная схема изменения формы сигнала после изменения формы волны на следующий драйвер гарантирует, что искажения формы волны не накапливаются. - По сути, "расстояние" - это всегда только расстояние между двумя соседними светодиодами., @Majenko

@Majenko Это потрясающая новость. Так что не должно быть слишком большой проблемы с управлением таким количеством светодиодов с помощью Uno? Согласно моим исследованиям, 60 (светодиодов на метр) * 100 * 3 (байт / светодиод) дают мне 18 Тыс. памяти, необходимой для хранения состояния. Поскольку у Uno есть 32K, я должен быть в порядке, не так ли?, @Michael Coxon

... Я думаю, что есть несколько видеороликов на YouTube, которые показывают, как падение напряжения может повлиять на цвет при длительных пробегах. Вероятно, из-за колебаний ШИМ из-за небольшой разницы в напряжении между точкой подачи питания и дальним концом. Кроме того, чем длиннее строка адресуемых светодиодов, тем больше объем передаваемых данных и тем медленнее скорость преднамеренного изменения. Я бы, по крайней мере, проложил более крупные силовые провода и подал питание в нескольких местах., @st2000

"... дает мне 18 тысяч памяти, необходимой для хранения состояния. Поскольку у ООН есть 32 тысячи, я должен быть в порядке, верно? " Будут ли все светодиоды настроены на один и тот же цвет? Я не уверен, как работает драйвер, но если вы настроите все адресуемые светодиоды на один и тот же цвет, то зачем вам сохранять настройки цвета каждого светодиода? Конечно, если бы все светодиоды были настроены на один и тот же цвет, вы могли бы обойтись гораздо более дешевой светодиодной лентой типа RGB и Gnd., @st2000

Кажется, я неправильно запомнил - у него всего 2 КБ оперативной памяти. Так что это проблема. Я думаю, мне нужно перейти к MEGA или Nano 33, чтобы сохранить значения. Основная причина, по которой он сохраняет значения @st2000, заключается в том, что я использую для этого библиотеку FastLED. Но вы правы - если я сам напишу код "установщика", то мне не понадобится память., @Michael Coxon

@st2000 Раньше я использовал настройку 12V -RGB, но требования к питанию и моя предполагаемая потребность в коробке MOSFET-транзисторов время от времени удерживали меня от этой идеи. 100 метров света при таком напряжении требовали 100А мощности, и это казалось опасным. Система должна быть надежной и стабильной., @Michael Coxon

@ st2000 ... вот почему я думаю, что адресуемый вариант лучше, потому что они просто подключаются друг к другу и имеют питание при каждом подключении, чтобы при необходимости подавать питание., @Michael Coxon

... Я никогда особо не задумывался о 100-метровом пробеге адресуемых светодиодов, поэтому мне неудобно говорить, сработает то, что вы предлагаете, или нет (я думаю, что сработает, но у вас могут возникнуть некоторые неожиданные проблемы, над которыми вам придется подумать). Подумайте о поиске людей, которые "отделывают свои дома" этими типами светодиодных лент. Некоторые из проблем, над которыми они работали, могут вас заинтересовать., @st2000


1 ответ


1

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

Требования к питанию: Использование WS2812Bs позволяет отказаться от собственных схем управления MOSFET, хотя общая мощность будет в том же диапазоне. Когда вы включаете светодиоды на полную интенсивность белого цвета (полная интенсивность R, G и B), каждый светодиод потребляет около 60 мА. При 60 светодиодах на метр и длине 100 м у вас есть 6000 светодиодов, что соответствует максимальному току 360А. Это очень много. Вероятно, вам понадобится несколько источников питания. Я думаю, что вы можете приобрести источники питания 5 В мощностью около 70 А у обычных розничных продавцов. Конечно, есть и такие, которые обеспечивают больше, но вы также захотите уменьшить максимальную длину кабеля, по которому будет протекать ток (поместив каждый источник питания рядом с той частью полосы, которую он питает).

Кроме того, вы должны подавать питание на ленту каждые 1-1, 5 м, чтобы оставаться в безопасности. Выше вы можете увидеть ухудшение качества через некоторое время (я вводил каждые 2,5 м один раз, и светодиоды все еще работают, но вы можете видеть ухудшение качества материала полосы, и он нагревается при включении).

ВАЖНО: Когда вы покупаете типичные кирпичные блоки питания, в них часто используется цилиндрический разъем. Но с этими токами вы не должны их использовать. В одном из моих собственных проектов мне в настоящее время приходится заменять их на более качественные разъемы, потому что цилиндрические разъемы начали плавиться от высокой температуры и дымиться. Я знаю, что используются маленькие разъемы типа "банан", которые также используются для двигателей дронов. Они могут выдерживать гораздо больший ток, не нагреваясь. Кроме того, ваш кабель должен быть достаточно толстым, чтобы выдерживать ток, не нагреваясь.

Контроллер:

Как вы уже знаете, с Uno вы попадете в лимит памяти. Ваша оценка необходимой памяти для использования библиотеки FastLED (или библиотеки NeoPixel) верна. Вам понадобится 18 КБ только для буфера (не включая остальные переменные программы).

Теперь вы можете либо

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

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

,

Спасибо за это - действительно информативно. Потребность в питании - это то, что меня действительно пугает. Я думал о блоке питания 8-10 А через каждые 5 метров [продукт, который я мог бы использовать] (https://www.altronics.com.au/p/x3223a-ws2812b-addressable-rgb-magic-led-strip-light-5m /) - производитель говорит, что 6-8A должен работать 5 м., @Michael Coxon

используйте не менее 10А на 5 метров. Источник питания может стать менее эффективным при максимальной мощности, и он будет сильно нагреваться при 8А. Использованные расходные материалы 8A для проекта, о котором я упоминал, и они становятся действительно горячими. В силе нет ничего по-настоящему опасного. При 5 В вы не можете причинить большого вреда людям. Хотя вам нужно убедиться, что каждая часть проекта способна обрабатывать гораздо больше информации, чем вам нужно. Если они станут слишком горячими, это может привести к пожару., @chrisl

И, пожалуйста, не используйте цилиндрические разъемы, которые используются большинством кирпичных источников питания. Они не могут выдерживать токи свыше нескольких ампер. Мои плавились с 8A, поэтому в настоящее время я заменяю их маленькими разъемами типа "банан"., @chrisl

И это моя главная забота. Он будет переключаться между цветами каждые 40 секунд или около того, но я могу запрограммировать систему, которую я создаю, чтобы либо исключить белый цвет, либо сделать его тусклым. Единственные цвета, которые я поддерживаю, - это значения RGB [отсюда] (https://cdn.sparkfun.com/assets/learn_tutorials/7/2/1/TertiaryColors.png ) так что я не думаю, что требования к питанию будут огромными, но все равно их будет достаточно, чтобы потребовалось несколько точек впрыска., @Michael Coxon

С полосой длиной 100 метров вы уже находитесь на действительно высокой территории, даже если приглушить яркость светодиодов. В этой ситуации я бы планировал со всей возможной мощью. Это становится более безопасным, когда ваша система способна обрабатывать больше энергии, но требует меньше. И это становится менее безопасным, когда ваша система может потреблять меньше энергии, а необходимая мощность приближается к максимальной. Так что глиссирование с большим запасом хода более безопасно., @chrisl

RE: бочки - Да, в конечном продукте, вероятно, будут использоваться лопастные соединители [вот так] (https://www.altronics.com.au/p/h2309-2-way-15a-male-and-female-inline-connector /) для подачи питания. Я думаю, это должно быть прекрасно., @Michael Coxon

Лично для питания я использую небольшие понижающие регуляторы (3A) через равные промежутки времени (в зависимости от плотности светодиодов) и питаю их от источников питания с более высоким напряжением, меньшим током. Например, источник питания 24 В 10 А должен быть способен работать примерно до 36 А при 5 В, распределенном по 12 регуляторам понижающего напряжения 24 В-> 5 В, и не терять столько по проводам питания., @Majenko

@Majenko это была тема для обсуждения между мной и моим приятелем. Используя 48 В (что-то вроде PoE), протяните какой-нибудь провод вокруг здания, а затем отрегулируйте его до нужного напряжения., @Michael Coxon

Re “_эта статья о синхронизации на WS2812B_”: я использовал технику, описанную в этой статье, и [это сработало довольно хорошо] (https://wiki .logre.eu/index.php/%C3%89clairage_%C3%A0_base_de_ruban_%C3%A0_LEDs_SK6812-RGBW/en ) даже на ATtiny13A, который имеет всего 64 байта оперативной памяти., @Edgar Bonet

Также есть третий вариант решения проблемы с оперативной памятью: используйте несколько микроконтроллеров и реализуйте некоторую форму шины связи между ними., @Majenko

@Majenko это было у меня на уме, но я действительно хочу избежать этого, лол. Система будет развернута в местах, где я не смогу отлаживать, поэтому отладка мертвого светодиода или блока питания проста. Но попытка заставить кого-то сбросить все контроллеры из-за проблемы со связью не входит в рамки проекта., @Michael Coxon