25.04.2016, 16:03
|
#5
|
Старший Пользователь
Регистрация: 21.06.2014
Возраст: 47
Регион: 05
Машина: Hyundai Accent II
Сообщений: 556
|
Цитата:
Сообщение от 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 data, int nbits) { pinMode(3, OUTPUT); digitalWrite(3, HIGH); digitalWrite(3, LOW); for (int i = 0; i < nbits; i++) { if (data & TOPBIT) { digitalWrite(3, HIGH); digitalWrite(3, LOW); } else { digitalWrite(3, HIGH); digitalWrite(3, LOW); } data <<= 1; } digitalWrite(3, HIGH); space(0);
Если так, то всё равно не работает.
Последний раз редактировалось admin; 15.10.2018 в 23:34.
|
|
|