Задать вопрос

Как расшифровать данные, поступающие с ИК-пульта управления?

Есть пульт от вертолета Gyro 24019_big.jpg и ИК-датчик от того же вертолета.
Датчик подключен к Ардуино, ниже скетч.
Когда даю газу на пульте, сериал порт получает следующее:

241.233.148.175
36.83.114.194
235.27.57.87
58.89.239.35
155.23.106.142
142.77.6.66

Никакой системы и логики уловить не могу.

#include <IRremote.h>
int RECEIVE_PIN = 2;
IRrecv irrecv(RECEIVE_PIN);
decode_results results;
int a, b, c, d;
 
void setup() 
   {
    Serial.begin(9600);
    irrecv.enableIRIn();
   }
 
void loop() 
   {
     if (irrecv.decode(&results)) 
        {
     //Serial.println("0x");     
     //Serial.println(results.value, HEX);
     a=(results.value&0x000000FF); 
     b=(results.value&0x0000FF00)>>8; 
     c=(results.value&0x00FF0000)>>16; 
     d=(results.value&0xFF000000)>>24;
     Serial.print(a);Serial.print(".");
     Serial.print(b);Serial.print(".");
     Serial.print(c);Serial.print(".");
     Serial.println(d);
     delay(50);
     irrecv.resume();
       }
   }


UPD. Попробовал сделать так : Arduino + IRremote.h + пульт ДУ игрушечного вертолетика?
Выдает следующее:

6DB6983E
Unknown encoding: 6DB6983E (32 bits)
Raw (68): 8686 2000 -1900 300 -300 300 -300 250 -750 250 -700 300 -700 300 -700 300 -700 300 -700 300 -250 300 -300 300 -700 300 -700 350 -650 300 -650 350 -650 350 -650 250 -750 250 -350 250 -300 350 -250 300 -300 300 -300 300 -350 200 -400 200 -350 250 -350 250 -300 300 -300 300 -350 250 -350 250 -350 200 -750 250
  • Вопрос задан
  • 4457 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
radiogranit
@radiogranit
Я пользую usbuirt для этих целей.
Ответ написан
cjbars
@cjbars
Попробуйте представить данные в двоичном коде. Возможно какая-то логика появится.
Чаще всего данные передаются именно в двоичной форме. Например первый бит означает направление вращения. И так далее
Ответ написан
gorbln
@gorbln
Инженер-разработчик
Ага, а ещё в РУ тематике принято кодирование сигналов управления шириной импульса, где 1000 мкс - это 0%, а 2000 мкс - это 100% канала управления. Ни разу не удивлюсь, если по ик передаются все каналы управления друг за другом именно в такой "кодировке". А для разделения пачек каналов используется пауза. Ну то есть ((2+2)*4)+4мс пауза для разделения пачек.
Вообще, если есть осциллограф - неплохо бы прицепиться к светодиоду на пульте и посмотреть, что на него поступает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы