Управление через ПДУ

Не отправляет сигнал IRSend

Ответить
Alexnet135
Рядовой
Сообщения: 5
Зарегистрирован: 01.10.2018{, 16:48}
Репутация: 0
Имя: Александр

Управление через ПДУ

#1

Сообщение Alexnet135 » 19.11.2018{, 01:02}

Здравствуйте. Необходимо управлять устройством через IR сигнал при нажатии кнопок. Сделал на блоке IR send. Проблема в том, что когда считываю команды с другого ПДУ некоторые определяются как nknown encoding. Компилирую, заливаю, те команды которые определились работают правильно, а не определенные не работают.
Считал при помощи примера ардуино коды:
CE1972FD
Unknown encoding: CE1972FD (32 bits)
Raw (68): 11750 -4350 850 -450 800 -500 800 -450 850 -450 850 -450 800 -500 800 -450 850 -450 800 -1550 850 -1550 800 -1550 850 -1550 850 -450 800 -1550 800 -1550 850 -1550 850 -1500 850 -1550 850 -450 850 -450 800 -500 750 -500 800 -500 800 -500 750 -500 800 -500 800 -1550 800 -1550 850 -1550 800 -1600 750 -1600 800 -1600 750
D4DD0381
Unknown encoding: D4DD0381 (32 bits)
Raw (68): 11700 -4400 800 -500 800 -450 850 -450 850 -450 800 -450 850 -500 800 -450 800 -500 800 -1550 850 -1550 850 -1500 850 -1550 850 -450 800 -1550 850 -1550 800 -1550 850 -450 850 -1550 850 -450 800 -450 850 -500 800 -450 800 -450 850 -500 800 -1550 850 -450 800 -1550 850 -1550 850 -1500 850 -1550 850 -1550 800 -1550 850.
Как сделать чтоб они тоже работали?
Мой скетч:

Код: Выделить всё

[/#include <IRremote.h>
IRsend _IR_Sender;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _IR_Sender_1_TOI_159369281 = 0;
bool _IR_Sender_1_TOI_160756913 = 0;
bool _IR_Sender_1_TOI_123583955 = 0;
bool _IR_Sender_1_TOI_142091701 = 0;
bool _IR_Sender_1_TOI_154078413 = 0;
bool _IR_Sender_1_TOI_134304680 = 0;
bool _IR_Sender_1_TOI_96889421 = 0;
bool _IR_Sender_1_TOI_210754616 = 0;
bool _IR_Sender_1_TOI_115424394 = 0;
bool _IR_Sender_1_TOI_165929683 = 0;
bool _count1I = 0;
int _count1P = 0;
bool _mkb1C1xP1 = 0;
bool _mkb1C1xP2 = 0;
bool _mkb1C1xP3 = 0;
bool _mkb1C1xP4 = 0;
bool _mkb1C1xP5 = 0;
bool _mkb1C2xP1 = 0;
bool _mkb1C2xP2 = 0;
bool _mkb1C2xP3 = 0;
bool _mkb1C2xP4 = 0;
bool _mkb1C2xP5 = 0;
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
bool _trgs1 = 0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(5, OUTPUT);

pinMode(10, INPUT);
digitalWrite(10, HIGH);
pinMode(9, INPUT);
digitalWrite(9, HIGH);
pinMode(8, INPUT);
digitalWrite(8, HIGH);
pinMode(7, INPUT);
digitalWrite(7, HIGH);
pinMode(6, INPUT);
digitalWrite(6, HIGH);
pinMode(12, OUTPUT);
digitalWrite(12, HIGH);
pinMode(11, OUTPUT);
digitalWrite(11, HIGH);
}
void loop()
{



digitalWrite(12, 0);
_mkb1C1xP1 = ! (digitalRead(10));
_mkb1C1xP2 = ! (digitalRead(9));
_mkb1C1xP3 = ! (digitalRead(8));
_mkb1C1xP4 = ! (digitalRead(7));
_mkb1C1xP5 = ! (digitalRead(6));
digitalWrite(12, 1);
digitalWrite(11, 0);
_mkb1C2xP1 = ! (digitalRead(10));
_mkb1C2xP2 = ! (digitalRead(9));
_mkb1C2xP3 = ! (digitalRead(8));
_mkb1C2xP4 = ! (digitalRead(7));
_mkb1C2xP5 = ! (digitalRead(6));
digitalWrite(11, 1);
if (1) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0;}
 if (_gen1I) {  if ( _isTimer ( _gen1P , 1000 )) { _gen1P = millis(); _gen1O = ! _gen1O;}}

if (_gen1O) 
   { 
   if (! _count1I)  
      {
       _count1P = _count1P+1;
       _count1I = 1;
      }
   }
else
   {
   _count1I=0;
   }
if (( (( (( (( (( (_mkb1C2xP4) || (_mkb1C1xP1) )) || (( (_mkb1C1xP3) || (_mkb1C1xP4) )) )) || (( (( (_mkb1C1xP5) || (_mkb1C2xP1) )) || (( (_mkb1C2xP2) || (_mkb1C2xP3) )) )) )) || (_mkb1C2xP5) )) || ((_count1P) >= (16)) )) _count1P = 0;
if(( ((_count1P) >= (15)) && (_trgs1) )) {_tim1O = 1; _tim1I = 1;} else { if(_tim1I) {_tim1I = 0; _tim1P = millis();} else { if (_tim1O) {if ( _isTimer(_tim1P, 2000)) _tim1O = 0;}}}
if(( (( (( (( (_mkb1C2xP4) || (_mkb1C1xP1) )) || (( (_mkb1C1xP3) || (_mkb1C1xP4) )) )) || (( (( (_mkb1C1xP5) || (_mkb1C2xP1) )) || (( (_mkb1C2xP2) || (_mkb1C2xP3) )) )) )) || (_mkb1C2xP5) )) _trgs1 = 1;
if(_mkb1C1xP2) _trgs1 = 0;
digitalWrite(13, (_count1P) >= (5));
digitalWrite(5, !(_tim1O));
if (_mkb1C1xP4) {if (!(_IR_Sender_1_TOI_159369281)) {_irSend(0xFF50AF, 3, 32);}
_IR_Sender_1_TOI_159369281 = 1;} else {_IR_Sender_1_TOI_159369281 =0;}
if (_mkb1C1xP5) {if (!(_IR_Sender_1_TOI_160756913)) {_irSend(0xFF906F, 3, 32);}
_IR_Sender_1_TOI_160756913 = 1;} else {_IR_Sender_1_TOI_160756913 =0;}
if (_mkb1C2xP1) {if (!(_IR_Sender_1_TOI_123583955)) {_irSend(0xFFA857, 3, 32);}
_IR_Sender_1_TOI_123583955 = 1;} else {_IR_Sender_1_TOI_123583955 =0;}
if (_mkb1C2xP2) {if (!(_IR_Sender_1_TOI_142091701)) {_irSend(0xFF8877, 3, 32);}
_IR_Sender_1_TOI_142091701 = 1;} else {_IR_Sender_1_TOI_142091701 =0;}
if (_mkb1C2xP3) {if (!(_IR_Sender_1_TOI_154078413)) {_irSend(0xFF10EF, 3, 32);}
_IR_Sender_1_TOI_154078413 = 1;} else {_IR_Sender_1_TOI_154078413 =0;}
if (_mkb1C2xP4) {if (!(_IR_Sender_1_TOI_134304680)) {_irSend(0xFF28D7, 3, 32);}
_IR_Sender_1_TOI_134304680 = 1;} else {_IR_Sender_1_TOI_134304680 =0;}
if (_mkb1C2xP5) {if (!(_IR_Sender_1_TOI_96889421)) {_irSend(0xFF6897, 3, 32);}
_IR_Sender_1_TOI_96889421 = 1;} else {_IR_Sender_1_TOI_96889421 =0;}
if (_mkb1C1xP1) {if (!(_IR_Sender_1_TOI_210754616)) {_irSend(0xCE1972FD, -1, 32);}
_IR_Sender_1_TOI_210754616 = 1;} else {_IR_Sender_1_TOI_210754616 =0;}
if (_mkb1C1xP2) {if (!(_IR_Sender_1_TOI_115424394)) {_irSend(0xD4DD0381, -1, 32);}
_IR_Sender_1_TOI_115424394 = 1;} else {_IR_Sender_1_TOI_115424394 =0;}
if (_mkb1C1xP3) {if (!(_IR_Sender_1_TOI_165929683)) {_irSend(0x9BA392C1, -1, 32);}
_IR_Sender_1_TOI_165929683 = 1;} else {_IR_Sender_1_TOI_165929683 =0;}




}
bool _isTimer(unsigned long startTime, unsigned long period )
  {
  unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
  }
void _irSend(long code, byte manufactureCode, byte length)
{
switch (manufactureCode) {
    case 1:
_IR_Sender.sendNEC(code, length); 
      return;
    case 2:
_IR_Sender.sendSony(code, length); 
      return;
    case 3:
_IR_Sender.sendRC5(code, length); 
      return;
    case 4:
_IR_Sender.sendRC6(code, length); 
      return;
    case 5:
_IR_Sender.sendDISH(code, length); 
      return;
    case 6:
_IR_Sender.sendSharp(code, length); 
      return;
    case 7:
_IR_Sender.sendPanasonic(code, length); 
      return;
    case 8:
_IR_Sender.sendJVC(code, length, 1); 
      return;
    case 11:
_IR_Sender.sendSAMSUNG(code, length); 
      return;
    default:
      // default is optional
    break;
  }}code]
  
  
 Считал при помощи примера ардуино коды: 
 CE1972FD
Unknown encoding: CE1972FD (32 bits)
Raw (68): 11750 -4350 850 -450 800 -500 800 -450 850 -450 850 -450 800 -500 800 -450 850 -450 800 -1550 850 -1550 800 -1550 850 -1550 850 -450 800 -1550 800 -1550 850 -1550 850 -1500 850 -1550 850 -450 850 -450 800 -500 750 -500 800 -500 800 -500 750 -500 800 -500 800 -1550 800 -1550 850 -1550 800 -1600 750 -1600 800 -1600 750
D4DD0381
Unknown encoding: D4DD0381 (32 bits)
Raw (68): 11700 -4400 800 -500 800 -450 850 -450 850 -450 800 -450 850 -500 800 -450 800 -500 800 -1550 850 -1550 850 -1500 850 -1550 850 -450 800 -1550 850 -1550 800 -1550 850 -450 850 -1550 850 -450 800 -450 850 -500 800 -450 800 -450 850 -500 800 -1550 850 -450 800 -1550 850 -1550 850 -1500 850 -1550 850 -1550 800 -1550 850.
Как сделать чтоб они тоже работали?

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 674
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 47
Имя: Виктор

Управление через ПДУ

#2

Сообщение ViktorPetrov » 19.11.2018{, 02:04}

Есть информация эти две библиотеки конфликтуют
СпойлерПоказать
13.png
У меня заработало ,когда одну удалил и вторую на IRremote Ver 2.0.1 заменил ,до этого частично на командах производителя не правельно определяло.

Alexnet135
Рядовой
Сообщения: 5
Зарегистрирован: 01.10.2018{, 16:48}
Репутация: 0
Имя: Александр

Управление через ПДУ

#3

Сообщение Alexnet135 » 25.11.2018{, 19:55}

Коды слил верно. Проверял на других ПДУ, там код производителя определяется.

Ответить

Вернуться в «Infrared (IR)»