Показано с 1 по 10 из 469

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Новичок
    Регистрация
    30.03.2013
    Сообщений
    3
    Вес репутации
    0

    По умолчанию Re: Фоновая, пиксельная подсветка телевизора, Pixelight

    Мужики, есть проблема, проверяю ленту этим скетчем:
    PHP код:
    #include <SPI.h>

    typedef struct {uint8_t buint8_t guint8_t r;} RGB;
    RGB pixel[160];

    void setup() 
    {
      
    Serial.begin(115200);
      
    SPI.begin();
      
    SPI.setBitOrder(MSBFIRST);
      
    SPI.setDataMode(SPI_MODE0); 
      
    SPI.setClockDivider(SPI_CLOCK_DIV16);
      
    delay(1); 
    }

    void loop() 
    {
    run_pix(160); //количество тестируемых светодиодов в ленте
    }

    void run_pix(uint8_t num)
    {
          
    pixel[0].r=0
          
    pixel[0].g=200;
          
    pixel[0].b=255;
             
       for(
    uint8_t i=0i<numi++) 
       {
         
    pixel[i+1].r=pixel[i].r
          
    pixel[i+1].g=pixel[i].g;
          
    pixel[i+1].b=pixel[i].b;
          
    pixel[i].r=0
          
    pixel[i].g=0;
          
    pixel[i].b=0
          
    set_pix(num); 
          
    // delay(10); //пауза между вспышками светодиодов
       

    }

    void set_pix(uint8_t num)
    {
       for(
    uint8_t i=0i<numi++) 
       {   
          
    SPI.transfer(pixel[i].b);
          
    SPI.transfer(pixel[i].g);
          
    SPI.transfer(pixel[i].r);
        }
      
    delay(1);

    Проверяю красный канал:
    PHP код:
    pixel[0].r=255
    pixel[0].g=0;
    pixel[0].b=0
    лента светит синим.

    Проверяю зелёный канал:
    PHP код:
    pixel[0].r=0
    pixel[0].g=255;
    pixel[0].b=0
    лента светит зелёным.

    Проверяю синий канал:
    PHP код:
    pixel[0].r=0
    pixel[0].g=0;
    pixel[0].b=255
    лента светит красным.

  2. #2
    Новичок
    Регистрация
    30.03.2013
    Сообщений
    2
    Вес репутации
    0

    По умолчанию Re: Фоновая, пиксельная подсветка телевизора, Pixelight

    Вот тут порядок отправки байтов цвета неправильно стоит).
    PHP код:
    void set_pix(uint8_t num

       for(
    uint8_t i=0i<numi++)  
       {    
          
    SPI.transfer(pixel[i].b); 
          
    SPI.transfer(pixel[i].g); 
          
    SPI.transfer(pixel[i].r); 
        } 
      
    delay(1); 

    должно быть

    PHP код:
    void set_pix(uint8_t num

       for(
    uint8_t i=0i<numi++)  
       {    
          
    SPI.transfer(pixel[i].r); 
          
    SPI.transfer(pixel[i].g); 
          
    SPI.transfer(pixel[i].b); 
        } 
      
    delay(1); 

    просто бывают ленты где цвета перепутаны для них порядок отправки нужно менять.
    Последний раз редактировалось Rus935; 30.03.2013 в 06:20.

  3. #3
    Новичок
    Регистрация
    04.11.2012
    Возраст
    52
    Сообщений
    5
    Вес репутации
    158

    По умолчанию Re: Фоновая, пиксельная подсветка телевизора, Pixelight

    Тоже столкнулся с этой проблемой. Для моей ленты код должен быть таким:

    void set_pix(uint8_t num)
    {
    for(uint8_t i=0; i<num; i++)
    {
    SPI.transfer(pixel[i].r);
    SPI.transfer(pixel[i].b);
    SPI.transfer(pixel[i].g);
    }
    delay(1);
    }

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •