Результаты опроса: Нужна ли вам такая функция на телевизоре?

Голосовавшие
191. Вы ещё не голосовали в этом опросе
  • Нет.

    28 14.66%
  • Да.

    129 67.54%
  • Нужна , только руки кривые, самому не осилить

    34 17.80%
Страница 68 из 93 ПерваяПервая ... 18586263646566676869707172737478 ... ПоследняяПоследняя
Показано с 671 по 680 из 921
  1. #671
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

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

    Идеи есть, лент пока нету, как приедут буду пробовать.

  2. #672
    Пользователь
    Регистрация
    12.11.2011
    Возраст
    47
    Сообщений
    37
    Вес репутации
    160

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

    Цитата Сообщение от Chip Посмотреть сообщение
    Идеи есть, лент пока нету, как приедут буду пробовать.
    А ты откуда ленту заказал? Если уже заказал и если не секрет
    Я видел эти ленты на aliexpress по 20$ за метр, но доставка больше 100$
    Либо по ссылке в предыдущих сообщениях с adafruit но там с контроллером LPD8806 без ШИМ.
    Пока приемлемых цен на комплект ленты с доставкой к сожалению не нашел

  3. #673
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

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

    Я еще не заказал, тоже в поиске
    Я гдето вычитал что LPD8806 имеет ШИМ 7 бит на цвет

  4. #674
    Пользователь
    Регистрация
    12.11.2011
    Возраст
    47
    Сообщений
    37
    Вес репутации
    160

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

    Извиняюсь, дезинформировал.
    По ссылке на adafruit используется контроллер LPD8806, он со встроенным ШИМ. Спутал по описанию в статье на cxem.net про светодиоды с контроллером LPD6803, который не имеет ШИМ, и про который в статье также написано будьте внимательны что возможен такой вариант при приобретении.
    Сорри за невнимательность

  5. #675
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

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

    Цитата Сообщение от Userrex Посмотреть сообщение
    Да именно так зоны и сделаю, даже с небольшим перекрытием. Седня разведу плату и потом после тестов выложу. 27 октября уеду, не будет 1,5 недели, так что я не потерялся .
    И, думаю, все значительные изменения и добавления(конечно после проверки) стоит вынести в шапку, дабы люди не шарились по 70 страницам.
    Как успехи? Жду тестов , что бы в шапку выложить скетч и плату

  6. #676
    Пользователь
    Регистрация
    23.09.2011
    Возраст
    34
    Сообщений
    37
    Вес репутации
    162

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

    Вот что у меня получилось с DIP корпусами. Изначально делал под односторонний текстолит с перемычками, потом нашёл кусок двухсторонний и кое что допилил.
    размеры получились высота90 ширина 170(примерно)

    п.с. строго не судите первый раз делал.

    в планах сегодня: разведу хлорное железо, фотки выложу.
    кстати как его с водой бодяжить какие пропорции? железо безводное.
    Нажмите на изображение для увеличения. 

Название:	42chanel.jpg 
Просмотров:	873 
Размер:	130.3 Кб 
ID:	13465

    Нажмите на изображение для увеличения. 

Название:	42chanel_1lay.jpg 
Просмотров:	812 
Размер:	113.4 Кб 
ID:	13466
    и исходник с картинками в одном архиве
    Desktop.rar
    Последний раз редактировалось asuz; 28.11.2011 в 01:22.

  7. #677
    Пользователь
    Регистрация
    23.09.2011
    Возраст
    34
    Сообщений
    37
    Вес репутации
    162

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

    вот что вышло.... Травил плату первый раз в жизни... Технология ЛУТ рулит щас просвердю отверстий, пролужу глицерином соберу и покажу конечный результат.
    Нажмите на изображение для увеличения. 

Название:	IMG_5171.jpg 
Просмотров:	764 
Размер:	70.4 Кб 
ID:	13468
    Нажмите на изображение для увеличения. 

Название:	IMG_5184.jpg 
Просмотров:	847 
Размер:	157.9 Кб 
ID:	13469

  8. #678
    Пользователь
    Регистрация
    23.09.2011
    Возраст
    34
    Сообщений
    37
    Вес репутации
    162

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

    появилась проблема не могу переделать скей для 42ух зон

    работает всё равно 30 а остальные не хотят.

    делаю вот так
    Код:
    //нужно нужно заменить 60 на по возможности меньшее значение. 
    //Начиная с какого-то значения, программу начнет не по-деццки глючить. 
    //Нужно выбрать значение процентов на 10 больше, чем пороговое. Чем меньше значение, тем выше частота мигания светодиодов.
    #define TCNT2_Const 256-15 //256-8 
    
    #define BrightnessSize 42 //число каналов 
    
    unsigned long blank=0; //таймер простоя  
    
    uint8_t volatile PWM_Counter=0; 
    uint8_t color[BrightnessSize]; 
    
    int mode = 0;
    
    //Текущий цвет
    int currentColorR = 0;
    int currentColorG = 0;
    int currentColorB = 0;
    
    //новый цвет
    int nextColorR = 0;
    int nextColorG = 0;
    int nextColorB = 0;
    
    int R,G,B,switchTime;
    
    void setup()   
    {  
            pinMode(10, OUTPUT);   //SS SPI вывод для управления защелкой 
            pinMode(11, OUTPUT);    // SPI DATA 
            pinMode(13, OUTPUT);   // SPI Clock 
            digitalWrite(10,LOW); 
            digitalWrite(11,LOW); 
            digitalWrite(13,LOW); 
            SPSR = (1<<SPI2X);       // SPI set clock rate fck/2 
            SPCR = (1<<SPE)|(1<<MSTR); // Enable SPI, Master 
             
        for (int i=0;i<BrightnessSize;i++) //обнулить массив 
        { 
            color[i]=0; 
        } 
    
        Serial.begin(115200); 
    
        TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2   
        TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика  
        TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика  
        TCCR2B |= (1<<CS22); //установка предделителя 64 
        ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора  
        TCNT2 = TCNT2_Const; //  16000000/256/100/64=8 tcnt2=256-8=248.      
        TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2. 
        sei();  
    }  
    
    void loop()   
    {  
      if (Serial.available() >= BrightnessSize)   
      {   
          if (Serial.read() == 255)  //проверка прификса        
            { 
                for (int i = 0; i < BrightnessSize; i++)   
                 {                  
                   color[i] = Serial.read();  // прочитать данные о цветах из порта в массив  
                 }          
                 blank=0;  
                 mode = 0;
            }  
      } else { if (mode==0)
        {
          if(blank>50000) { 
            blank=0;
            mode =1; 
            for (byte i = 0; i < BrightnessSize; i++)  color[i] = 0;
          }  
          blank++;  
        }
        if (mode == 1)
        {
          if(currentColorR==nextColorR && currentColorG==nextColorG && currentColorB==nextColorB)
          {
            //Генерируем новый цвет, исключая похожий на белый, иначе генерируем еще раз
            do {
              nextColorR = random(256);
              nextColorG = random(256);
              nextColorB = random(256);
            } 
            while(abs(nextColorR-nextColorG)<50 && abs(nextColorR-nextColorB)<50);
            //Время перехода
            switchTime = random(10,50);
    
            //Случайно отключаем один из каналов
            //1,2,3 - красный, зеленый, синий соответственно.
            switch(random(1,9)) {
            case 1:
              nextColorR = 0;
              break;
            case 2:
              nextColorG = 0;
              break;
            case 3:
              nextColorB = 0;
              break;
            case 4:
              nextColorB = 0;
              nextColorR = 0;
              break;
            case 5:
              nextColorB = 0;
              nextColorG = 0;
              break;
            case 6:
              nextColorR = 0;
              nextColorG = 0;
              
            }
          }
    
    
    
    
          //Выясняем на каком канале увеличивать яркость, а на каком уменьшать
          if(nextColorR>currentColorR) R=1; 
          else R=-1;
          if(nextColorG>currentColorG) G=1; 
          else G=-1;
          if(nextColorB>currentColorB) B=1; 
          else B=-1;
    
          //Переходим к нужному цвету
    
          if(currentColorR!=nextColorR){
            currentColorR+=R;
          }
          if(currentColorG!=nextColorG){
            currentColorG+=G;
          }
          if(currentColorB!=nextColorB){
            currentColorB+=B;
          }
    
          for (int i=0;i<BrightnessSize;i=i+3)
          {
            color[i]=currentColorR;
            color[i+1]=currentColorG;
            color[i+2]=currentColorB;
          }
          delay(switchTime);
    
        }
             }    
    } 
    
    SIGNAL(TIMER2_OVF_vect) 
    {  
    uint8_t PWM_Counter_v=PWM_Counter; // поскольку PWM_Counter объявлена как valotile, обращение к ней - всегда обращение в память. Поэтому создаем локальную копию, она будет храниться в регистре. 
    TCNT2 = TCNT2_Const;  
    uint8_t i = 0;  
    
    uint8_t byte_shift; 
    uint8_t nbit; // делаем переменную для хранения сдвинутого бита, чтобы у компилятора не возникало желания каждый раз в цикле сдвигать 1 на bt бит влево 
    
    byte_shift = 0; 
    
    for (uint8_t bt=0; bt<8; bt++)      
      {  
         byte_shift = byte_shift<<1;
        if(color[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit 
         i++;  
      } 
    SPDR = byte_shift; //отправляем в шину SPI  
    //************************************** 
    
    byte_shift = 0; 
    for (uint8_t bt=0; bt<8; bt++)      
      {  
         byte_shift = byte_shift<<1;
        if(color[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit 
         i++;  
      } 
    SPDR = byte_shift; //отправляем в шину SPI  
    //************************************** 
    //************************************** 
    
    byte_shift = 0; 
    for (uint8_t bt=0; bt<8; bt++)      
      {  
         byte_shift = byte_shift<<1;
        if(color[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit 
         i++;  
      } 
    SPDR = byte_shift; //отправляем в шину SPI  
    //************************************** 
    byte_shift = 0; 
    for (uint8_t bt=0; bt<8; bt++)      
      {  
         byte_shift = byte_shift<<1;
        if(color[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit 
         i++;  
      } 
    SPDR = byte_shift; //отправляем в шину SPI  
    //************************************** 
    byte_shift = 0; 
    for (uint8_t bt=0; bt<8; bt++)      
      {  
         byte_shift = byte_shift<<1;
        if(color[i]>PWM_Counter_v) byte_shift|= 1; // тут соответственно использщуем nbit 
         i++;  
      } 
    SPDR = byte_shift; //отправляем в шину SPI  
    //************************************** 
    
    
        PORTB |= (1<<PIN2); //формируем положительный импульс защелки 
            PWM_Counter++; 
            while(!(SPSR & (1<<SPIF)));   // Ожидание завершения передачи данных 
        PORTB &= ~(1<<PIN2); 
    }
    Всё что жирным я поменял каналов было 30 сделал 42 и внизу было числа 6 сделал 8(чисто эксперементально)

    Первые 4 регистра работают нормально а 5 и 6 путают выводы. работать вроде работает но на разьёмах ерунда.

    п.с. в печатке ошибка!!! как запущу всё целиком выложу подробный отчёт.
    Последний раз редактировалось asuz; 28.11.2011 в 16:44.

  9. #679
    Пользователь Аватар для Eraser
    Регистрация
    09.12.2010
    Возраст
    42
    Сообщений
    62
    Вес репутации
    177

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

    В ранее упоминаемой мной программе появилась поддержка Ardulight.
    Программа позволяет выставлять требуемое количество зон.
    Если кому будет интересно, пишите!

    PS Раз хоть кому-то интересно, то выкладываю

    PSS Для работы с Ardulight не забудьте cнять галку "Посылать данные только при обновлении цвета" на вкладке "Отладка".
    Вложения Вложения
    Последний раз редактировалось Eraser; 03.12.2011 в 12:42.

  10. #680
    Пользователь
    Регистрация
    16.05.2010
    Сообщений
    49
    Вес репутации
    180

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

    Спасибо :-)

Страница 68 из 93 ПерваяПервая ... 18586263646566676869707172737478 ... ПоследняяПоследняя

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

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

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

Метки этой темы

Ваши права

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