ЭЛЕКТРОНИКА Проект на нескольких синхронизированных адресных лентах

Melkiades

✩✩✩✩✩✩✩
8 Июн 2021
2
0
Всем привет!

Взялся за интересный проект по адресной ленте. И столкнулся с вопросами.
Если у кого будут мысли - заранее огромное спасибо!

Проект в следующем.
Есть 1 длинная лента из 4 * 5м. = 20м. WS2813 (30 диодов на метр) (взял 2813 для надёжности и ИП67 для ещё б0льшей надёжности)

Минимальный необходимый эффект - бегущая полоска длиной в условные 0,5 .. 1 метр. То есть, соответственно, в один момент времени на всей этой полоске будут гореть 15..30 диодов.

Питание для этой полоске предполагается как на схеме из FAQ-a (рис. 1).

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

Далее, привожу общую схему проекта (рис. 2).

Здесь горизонтальная длинная лента - та самая, 20-метровая.
Помимо неё будет 11 других лент, каждая длиной 2 метра (далее- маленькие ленты).
Начинаться они должны от большой длинной ленты и идти перпендикулярно ей.
При этом каждая следующая 2-м. лента должна физически отстоять от предыдущей на 1,8 метра.
С питанием этих маленьких лент всё понятно - от той же земли и плюса.

А вот с управлением - здесь вопрос - 2.
Эффекты на 1 и остальных лентах должны быть синхронизированы. Соответственно, 2, 3, ... n-ная лента получает команды от той же Ардуины, что и первая.
С написанием программы проблем не возникнет. С памятью - посчитал - Меги тоже будет достаточно.
Вопрос - с экранированием дальних (от Ардуины) лент (вопрос обозначил на схеме оранжевым цветом).
Когда свиваются земля и один сигнальный кабель - всё понятно. А вот как (физически) свить несколько сигнальных и 1 Земля-кабель?
И будет ли всё это работать, или надо проверять уже эмпирически?
Возможно, есть другие способы экранирования?

Вопрос-3 - не будет ли Ардуина греться от одновременной отправки сигналов на 12 каналов?

Ну и вопрос-4 - вдруг есть ещё какие-то подводные камни?


P.S. Поправьте меня, пожалуйста, если в чём-то топик не соответствует правилам Форума.
 

Вложения

Геннадий П

★★★★★★✩
14 Апр 2021
1,969
632
44
Возможно, кто-нибудь по опыту сможет сказать приблизительное нормальное расстояние между точками входа питания?
Самое простое: визуально смотришь, где уже заметно снижается яркость - примерно там и ставишь дополнительную точку питания. Можешь в этом месте прибором ткнуть на питание ленты и посмотреть на сколько просаживается напряжение, скорее всего будет в районе 4 В и ниже.

вдруг есть ещё какие-то подводные камни?
Для защиты входов ардуины нужно ставить последовательно резисторы примерно 1кОм.

Примерно так:
1624373091137.png
 
  • Лойс +1
Реакции: Melkiades

bort707

★★★★★★✩
21 Сен 2020
3,062
912
Вопрос-3 - не будет ли Ардуина греться от одновременной отправки сигналов на 12 каналов?
не будет, хотя бы просто потому. что Мега в принципе не может "одновременно отправлять сигналы на 12 каналов", такая возможность на меге не поддерживается.
Сигналы на все куски ленты будут идти последовательно, с точки зрения программы это будет не 12 параллельных кусков ленты. а одна общая длиной в 20 + 2*11 = 42м
Кстати, можете так сразу и соединять - последовательно - тогда вопрос о нескольких сигнальных проводах(вопрос 2) - отпадает сам собой
 
Изменено:

Melkiades

✩✩✩✩✩✩✩
8 Июн 2021
2
0
Самое простое: визуально смотришь, где уже заметно снижается яркость - примерно там и ставишь дополнительную точку питания. Можешь в этом месте прибором ткнуть на питание ленты и посмотреть на сколько просаживается напряжение, скорее всего будет в районе 4 В и ниже.

Для защиты входов ардуины нужно ставить последовательно резисторы примерно 1кОм.
А, ну понял, спасибо!
Будем измерять напряжение при фактической нагрузке...

Про резисторы помню, конечно, забыл их пририсовать!

Супер, кажется понял вашу идею, спасибо!

Сигналы на все куски ленты будут идти последовательно, с точки зрения программы это будет не 12 параллельных кусков ленты. а одна общая длиной в 20 + 2*11 = 42м
Кстати, можете так сразу и соединять - последовательно - тогда вопрос о нескольких сигнальных проводах(вопрос 2) - отпадает сам собой
Получится, как на варианте B (прикрепил рисунок. Там сначала вариант А нарисовал, но понял, что там есть неэкранированные участки)

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

У меня на Нано получалось синхронизировать две ленты как на MicroLED:

C++:
#define LED1_PIN 2   
#define LED2_PIN 3   
#define NUMLEDS_1 50 
#define NUMLEDS_2 10

#define COLOR_DEBTH 3
#include <microLED.h> 

microLED<NUMLEDS_1, LED1_PIN, MLED_NO_CLOCK, LED_WS2818, ORDER_GRB, CLI_AVER> strip_1;
microLED<NUMLEDS_2, LED2_PIN, MLED_NO_CLOCK, LED_WS2818, ORDER_GRB, CLI_AVER> strip_2;

//......
так и на ФастЛЕД:

C++:
#include <FastLED.h>

#define NUM_STRIPS 2
#define NUM_LEDS_PER_STRIP_1 50
#define NUM_LEDS_PER_STRIP_2 10

CRGB leds_1[NUM_LEDS_PER_STRIP_1];
CRGB leds_2[NUM_LEDS_PER_STRIP_2];

void setup() {

  // tell FastLED there's 60 NEOPIXEL leds on pin 10
  FastLED.addLeds<NEOPIXEL, 2>(leds_1, NUM_LEDS_PER_STRIP_1);

  // tell FastLED there's 60 NEOPIXEL leds on pin 11
  FastLED.addLeds<NEOPIXEL, 3>(leds_2, NUM_LEDS_PER_STRIP_2);
 
  //.....
}
Выходит, на Меге так не прокатит?.. (это так, уже для развития)
 

Вложения

bort707

★★★★★★✩
21 Сен 2020
3,062
912
@Melkiades, на меге можно так же, как вы сделали на нано. Только с точки зрения вывода на ленту это никакое не параллельное подключение, а точно такое же последовательное, как будто вы все куски ленты соединили одну за другой и подключили на один пин.
Откройте исходник библиотеки фастлед и убедитесь