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

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

    28 14.66%
  • Да.

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

    34 17.80%
Страница 29 из 93 ПерваяПервая ... 19232425262728293031323334353979 ... ПоследняяПоследняя
Показано с 281 по 290 из 921
  1. #281
    Пользователь
    Регистрация
    07.12.2010
    Сообщений
    34
    Вес репутации
    172

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

    Делаю так что бы горели одни красные светодиоды, но вместе с красными горят и зеленые, и мерцают синие. задаю что б светили зеленые, но вместе с зелеными мерцают синие и еле заметно горят красные. и это при добавлении sei();

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

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

    так вроде еще есть скрол бар и тулс бар, он же не красного цвета

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

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

    Цитата Сообщение от IgorSokol Посмотреть сообщение
    Нужно ли ставить на выходах ключи?
    Все зависит от того сколько у тебя будет светодиодов на один канал

  4. #284
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    436

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

    sei() в прерывании позволяет прервать прерывание таймера на другие прерывания - к примеру, на обработку прихода символа в uart (больше прерываний вроде как не может быть). Поскольку приход символа может скушать заметно времени, может появляется мерцание. Но ни на что больше это влиять не должно в нормальных условиях.

    Сдвиг светящихся светодиодов может произойти, если прерывание по приходу символа не успевает обработаться до момента прихода еще одного символа. Размер аппаратного буфера - 1 байт. По прерыванию uart этот символ извлекается и перекладывается в программный буфер, из которого уже извлекаются символы в loop();

    Думаю, что loop лучше модифицировать на что-то вроде:
    Код:
    void loop()  
    {  
      if (Serial.available())   
      {   
          if (Serial.read() == 255)  //проверка прификса        
            { 
                for (int i = 0; i < BrightnessSize; i++)   
                 {                  
                   for (;(Serial.available()==0)&&(blank<=100000);blank++);
                   if Serial.available()
                   {
                       Brightness[i] = Serial.read();  // прочитать данные о цветах из порта в массив  
                       blank=0;  
                   }
                 }          
            }  
      } else {   
               if(blank>100000) { blank=0; for (byte i = 0; i < BrightnessSize; i++)  Brightness[i] = 15;}   
              blank++;   
             }    
    }
    В коде может и накосячил, протестить не на чем. Смысл в том, что не ждать, пока все данные загрузятся, а сразу менять Brightness, по приходу каждого байта.

    Не поленился и переписал с нуля главный цикл, так получается проще, хоть и выглядит страшнее. Принцип простой - есть символ - сразу читаем. Если i==BrightnessSize, то означает, что ждем 255-й символ. Иначе - присваиваем в Brightness[i]

    Код:
    uint8_t i;
    uint16_t blank;
    setup()
    {
    ...
     i=BrightnessSize;
     blank=0;
    }
    
    loop()
    {
      if (Serial.available())
      {
          uint8_t b=(Serial.read();
          if (i=BrightnessSize)
          {
            if (b == 255)
              i=0;
            else
              blank++;
          }
          else
          {
          	Brightness[i]=b;
          	blank=0;
               i++;
          }
      }
      else
      {
       _delay_us(200);
       if (blank<MaxBlank)
    	blank++;
       else	
       {
       	for (uint8_t j = 0; j < BrightnessSize; j++)
       	  Brightness[j] = 15;
       	blank=MaxBlank;
       }
      }
    
    }
    Последний раз редактировалось SBorovkov; 18.12.2010 в 03:32.

  5. #285
    Пользователь
    Регистрация
    22.11.2010
    Возраст
    45
    Сообщений
    20
    Вес репутации
    170

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

    Цитата Сообщение от Chip Посмотреть сообщение
    Все зависит от того сколько у тебя будет светодиодов на один канал
    понял. уже нашел даташит по "шифту". на мое кол-во диодов ключи не нужны, но... 74hc595 комутирует 5 В, следовательно подключить обычную РГБ ленту не получится из этого всего следует что нада ставить еще ULN2003 к каждому шифту...

    будет ли в таком случае коректно работать ШИМ?

  6. #286
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    436

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

    uln - это обычная сборка из двух транзисторов. Я не вижу причин, чтобы сборка работала медленно.

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

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

    SBorovkov, попробовал твой переписанный заново код, что то он у меня вообще светодиоды не загораются. а измененный loop все по прежднему не горят 3 светодиода которые сидят на Q2
    Последний раз редактировалось Tarko; 18.12.2010 в 15:08.

  8. #288
    Пользователь
    Регистрация
    21.11.2010
    Возраст
    41
    Сообщений
    26
    Вес репутации
    171

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

    взял 2 mega8 прошил обе кодом chip'а с первой страницы(немного подправив названия таймеров). соединил у обоих мег8 ногу RX вместе и чудо две меги заработали паралельно думаю теперь подправить код чтоб первая мега ловила первые 12 каналов а вторая с 13 по 24 канал. Как вам вообще такой вариант увеличения каналов ?

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

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

    Нормальный вариант, так как порт работает только на прием данных и никаких конфликтов не создается
    Еще можно на кардуино добавить 6 каналов вместо аналоговых входов
    Последний раз редактировалось Chip; 18.12.2010 в 21:43.

  10. #290
    Пользователь
    Регистрация
    07.12.2010
    Сообщений
    34
    Вес репутации
    172

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

    Цитата Сообщение от crazydnb Посмотреть сообщение
    взял 2 mega8 прошил обе кодом chip'а с первой страницы(немного подправив названия таймеров). соединил у обоих мег8 ногу RX вместе и чудо две меги заработали паралельно думаю теперь подправить код чтоб первая мега ловила первые 12 каналов а вторая с 13 по 24 канал. Как вам вообще такой вариант увеличения каналов ?
    Можно у тебя узнать как именно ты переправил названия таймеров?

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

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

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

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

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

Ваши права

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