Узнаем код кнопки ИК-пульта c помощью LaunchPad

Как известно, каждый пульт имеет встроенный инфракрасный передатчик, с помощью которого передается на приемник в закодированном формате поток данных, например код нажатой кнопки. На основе полученных данных приемника устройство выполняет заданную ему операцию. Например, телевизор, при нажатии на определенные кнопки ИК-пульта, телевизора происходит регулировка звука, переключение каналов, вызов меню и прочее.

Чтобы узнать код нажатой кнопки будет использована платформа LaunchPad MSP430 и ИК-приемник BRM-1020.

00003309

Стоимость фотоприемника BRM-1020 не превышает 1$. Работает от 3-х вольт, подробная характеристика и описание приемника приложено после статьи. Основываясь на DataSheet, можно сказать, что ИК-приемник BRM-1020 работает с кодировками NEC и RC5.

Для расшифровки ИК-сигнала была использована демо-программа, которая входит в состав программы Energia (File / Examples / IRremote / IRrecvDemo). Обратите внимание, что программа использует дополнительную библиотеку IRremote.

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
}
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }
}

Подключение ИК-приемника BRM-1020 к LaunchPad выполняется следующим образом:

  1. первую ногу (OUTPUT) ИК-приемником, соединяем с 11 ногой микроконтроллера (P2_3). Распознать ее можно после прочтения описания ИК-приемника. В конце статьи дана ссылка на Datasheet ИК-приемника BRM-1020;
  2. вторая нога ИК-приемника – VCC;
  3. третья нога ИК-Приемника – GND.

В процессе работы был использован МК MSP430G2553. После прошития микроконтроллера запустите Serial Monitor, возьмите в руки пульт и нажимайте на кнопки. В Serial Monitor должен отображаться код кнопки представленный в 16-тиричной системе счисления (HEX). Обратите внимание на положения джамперов UART на платформе LaunchPad. При не правильной установки джамперов, номер кнопки отобразить в Serial Monitor будет не возможно.