Показать сообщение отдельно
Старый 19.04.2020, 08:29   #972
blackride
Senior Member
 
Аватар для blackride
 
Регистрация: 15.06.2011
Сообщений: 738
По умолчанию

Цитата:
Сообщение от vad2 Посмотреть сообщение
Собрал тоже приблуду на ардуино взамен недавно помершему igorplug2. Прошил скетч из темы, подобрал коды, вроде все заработало. Но пользоваться невозможно из-за маленьких задержек между посылками. При самом коротком нажатии курсор скачет через 2 позиции. Пульт - универсальный Thomson, на нем выбран профиль какого-то ТВ Самсунг. Можно ли как-то увеличить программно задержки между посылками? Или только замена профиля на другой? К этому я уже привык и почти все кнопки пульта в ней задействованы. Уже упоминавшийся igorplug2 раздражал своей тупостью из-за слишком больших и нерегулируемых задержек с этим же пультом, а тут с точностью до наоборот.
UPD. Поставил другой профиль в пульте. С задержками стало все нормально, но нарисовалась другая проблема. Уже была давно в теме, но ответа не нашел
Сообщение от Shino Kuyo Посмотреть сообщение
кстати, пользуюсь пультом от ATV2
при зажатой кнопке сначала передается код кнопки и потом 0хFFFFFFFF пока не отпустишь.
т.е. нет повтора. можно как-то заставить ардуину повторять при этом последний код клавиши?
Да, можно - там пара строчек всего. Я даже вроде предусматривал это в своём скетче, но точно уже не помню - надо смотреть.
__________________
добавляете рядом еще одну кнопку (допустим у кнопки первый код 2DF31FF5):
case 0x2DF31FF5:
case 0хFFFFFFFF:

А по первому вопросу - задержка регулируется здесь (delay):
Код:
decode_results ir_data;
void loop()
{
  byte cNewKey  = 0;
  byte cModKey  = 0;
  byte cModKey2 = 0;
 
  if ( irrecv.decode( &ir_data ))
  {
    delay(30);
    if ( ir_data.decode_type == 3 ) ir_data.value |= 0x800;
    else if ( ir_data.decode_type == 4 ) ir_data.value |= 0x8000;
 
    Serial.print( "   type = " );
    Serial.print( ir_data.decode_type, DEC );
    Serial.print( "   code = " );
    Serial.print( ir_data.value, HEX );
    Serial.print( "   bits = " );
    Serial.println( ir_data.bits, DEC );
Но задержка зависит и от самой версии программы и от ОС, допустим в linux скетч заливать одна задержка, в windows - другая. Пробуйте также и другие профили в своем универсальном пульте Thomson. Думаю там нет такой проблемы как Logitech Harmony 300/350, когда какой бы профиль не настраивался, но на переключения все равно была задержка.
blackride вне форума   Ответить с цитированием