Показать сообщение отдельно
Старый 25.04.2016, 16:03   #5
ali_vlad
Старший Пользователь
 
Регистрация: 21.06.2014
Возраст: 46
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
ali_vlad is on a distinguished road
По умолчанию

Цитата:
Сообщение от Demon083 Посмотреть сообщение
Данное описание актуально для магнитол, у которых проводной вход для подключения подрулевых кнопок имеет протокол NEC (на некоторых магнитолах встречается вход, чувствительный к сопротивлению).
На ИК-диод подается модулированный сигнал частотой 38кГц (описание протокола NEC http://radiohlam.ru/teory/nec.htm ), с ИК приемника подается без несущей частоты.
На вход магнитолы необходимо подавать сигнал без несущей частоты. Для этого правил библиотеку IRremote.cpp (в место включения и выключения ШИМ выдавал в порт логические 1, 0), в функции sendNEC в место enableIROut(38); записал pinMode(3, OUTPUT);, в функциях marc, space: в место TCCR2A… записал digitalWrite(3, HIGH) (для mark), digitalWrite(3, LOW) (для space). Вход у магнитолы может быть инверсный, тогда digitalWrite(3, LOW) (mark), digitalWrite(3, HIGH) (space).
После такого вмешательства в библиотеку работа с ИК-диодом не возможна.
PHP код:
void IRsend::sendNEC(unsigned long dataint nbits)
{
  
pinMode(3OUTPUT);
  
digitalWrite(3HIGH);
  
digitalWrite(3LOW);
  for (
int i 0nbitsi++) {
    if (
data TOPBIT) {
      
digitalWrite(3HIGH);
      
digitalWrite(3LOW);
    } 
    else {
      
digitalWrite(3HIGH);
      
digitalWrite(3LOW);
    }
    
data <<= 1;
  }
  
digitalWrite(3HIGH);
  
space(0); 
Если так, то всё равно не работает.

Последний раз редактировалось admin; 15.10.2018 в 23:34.
ali_vlad вне форума   Ответить с цитированием