#1 2019-03-15 11:36:57

Usver23
Учасник
Зареєстрований: 2019-03-15
Повідомлень: 2

Sk6812

Помогите разобраться с SK6812 добрые люди!!! Вопрос в следующем: нужно подключить несколько адресных светодиодных лент к одному ардуино контроллеру. Допустим:
1 лента - к пину D4,
2 - D5,
3 - D6,
4 - D7
При этом каждая лента должна выполнять назначенную  программу адресованную именно ей. В интернете ничего найти не смог. Все что нашел, так это работа только с одним пином ардуино. Возможно ли реализовать это? Если да то дайте пожалуйста простой пример для дальнейшего допиливания...

Неактивний

#2 2019-03-15 12:18:49

Вячеслав Азаров
Учасник
Зареєстрований: 2017-05-25
Повідомлень: 1,732

Re: Sk6812

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

Остання редакція Вячеслав Азаров (2019-03-15 12:25:21)

Неактивний

#3 2019-03-15 13:34:27

Kino
Учасник
Зареєстрований: 2019-02-28
Повідомлень: 51

Re: Sk6812

Чаще с одним пином, потому-что работают с лентой на аппаратном уровне, например подключают по SPI или UART, а этих интерфейсов на mega328 по одному, если делать программно, то можно хоть на все ноги ленты повесить, будет сказываться только на скорости, т.к. выброс информации в ленты будет происходить последовательно.

#define LED_DDR DDRB
#define LED_PORT PORTB
#define LED_PIN PINB
#define LED_BIT _BV(0)
#define NOP __asm__("nop\n\t")

void Ai_WS2811::sendLedData(void) 
{
  cli();
  register byte *p = m_pData;
  register byte *e = m_pDataEnd;
  volatile uint8_t b;
  while(p != e) 
  { 
    b   = *p++;    // Current byte value
    byte i=8;
    do {
      if ((b&0x80)==0) {
        // Send a '0'
        if (F_CPU==16000000L) {
          LED_PIN=LED_BIT;NOP;// Hi (start)
          NOP;NOP;            // Hi
          LED_PIN=LED_BIT;NOP;// Lo (250ns)
          NOP;NOP;            // Lo
          NOP;NOP;            // Lo (500ns)
        }   
        else if (F_CPU==8000000L) {
          LED_PIN = LED_BIT;  // Hi (start)
          NOP;                // Hi
          LED_PIN = LED_BIT;  // Lo (250ns)
          NOP;                // Lo
          NOP;                // Lo (500ns)
          NOP;                // Lo (data bit here!)  
          NOP;                // Lo (750ns)
        }   
      }   
      else {
        // Send a '1'
        if (F_CPU==16000000L) {
          LED_PIN=LED_BIT;NOP;// Hi (start)
          NOP;NOP;            // Hi
          NOP;NOP;            // Hi (250ns)
          NOP;NOP;            // Hi
          NOP;NOP;            // Hi (500ns)
          LED_PIN=LED_BIT;    // Lo (625ns)
        }   
        else if (F_CPU==8000000L) {
          LED_PIN = LED_BIT;  // Hi (start)
          NOP;                // Hi
          NOP;                // Hi (250ns)
          NOP;                // Hi
          NOP;                // Hi (500ns)
          NOP;                // Hi (data bit here!)
          LED_PIN = LED_BIT;  // Lo (750ns)
        }   
      }   
      b = b+b;
    } while (--i!=0);
  }
  sei();
}  

Неактивний

#4 2019-03-15 13:46:27

Вячеслав Азаров
Учасник
Зареєстрований: 2017-05-25
Повідомлень: 1,732

Re: Sk6812

Для хорошего восприятия видеоэффектов необходимо минимум 20-24 fps. Легко сосчитать загрузку процессора, при программной реализации, зная количество пикселей в лентах.

Неактивний

#5 2019-03-15 14:44:47

Usver23
Учасник
Зареєстрований: 2019-03-15
Повідомлень: 2

Re: Sk6812

Спасибо за ответы. Буду пробовать...  В реалиях проекта нужно задействовать 6 лент, которые имеют от 60 до 160 пикселей. На каждую в принципе можно повесить свой Ардуино нано, обьединить все это дело UARTом и во главе всего поставить Мегу,  чтобы дергала за веревочки. Но както громозко получится по-моему.

Неактивний

#6 2019-03-15 15:13:30

Kino
Учасник
Зареєстрований: 2019-02-28
Повідомлень: 51

Re: Sk6812

Ага, и затормозить это всё дело еще и UARTом )))

Неактивний

#7 2019-03-16 00:25:22

lkj
Учасник
Зареєстрований: 2016-02-03
Повідомлень: 104

Re: Sk6812

посмотрите, даже библиотека smile https://www.pololu.com/product/2527/resources/

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму