@amperka/ir-receiver

Модуль для работы с модулем ИК-приёмника и другими приёмниками серии TSOP22.

Для считывания ИК-сигнала требуется опрашивать датчик в аккуратно выверенные временные окна, преобразовывать высокие и низкие сигналы в единицы и нули, и уже их преобразовывать в конечные коды кнопок. Все эти сложности спрятаны в реализации библиотеки.

var myReceiver = require('@amperka/ir-receiver').connect(P2);
 
myReceiver.on('receive', function(code, repeat) {
  if (repeat) {
    console.log('Key with code', code, 'is keeped pressed');
  } else {
    console.log('Key with code', code, 'was just pressed');
  }
});

connect(pin)

Возвращает новый объект Receiver для работы с приёмником подключённому к пину pin.

Receiver

Класс для работы с приёмником. Для создания экземпляра используйте функцию connect.

Receiver.on('receive', callback)

Событие возникает, когда приёмник успешно декодирует нажатие кнопки ИК-пульта. Вызывается обработчик callback(code, repeat):

  • code — целое число, декодированный код клавиши.
  • repeattrue, если код пришёл повторно в результате зажатия кнопки на пульте, а не её повторного нажатия; false если пришёл первый сигнал после нажатия кнопки.

Обратите внимание, что не все пульты посылают специальный код о зажатии кнопки.

Список кодов

Если вы используете ИК-пульт с логотипом Амперки, можно воспользоваться готовым объектом с набором кодов.

  • POWER — включить / выключить,
  • MINUS — минус,
  • PLUS — плюс,
  • RED — красный,
  • GREEN — зелёный,
  • BLUE — синий,
  • CROSS — крест,
  • SQUARE — квадрат,
  • TRIANGLE — треугольник,
  • TOP_LEFT — вверх влево,
  • TOP — вверх,
  • TOP_RIGHT — вверх вправо,
  • LEFT — влево,
  • PLAY — воспроизвести / пауза,
  • RIGHT — вправо,
  • BOTTOM_LEFT — вниз влево,
  • BOTTOM — вниз,
  • BOTTOM_RIGHT — вниз вправо,
  • X — X,
  • Y — Y,
  • Z — Z
var receiver = require('@amperka/ir-receiver')
  .connect(P3);
 
receiver.on('receive', function(code) {
  if (code === receiver.keys.TOP) {
    print('TOP');
  }
  if (code === receiver.keys.POWER) {
    print('POWER');
  }
  if (code === receiver.keys.LEFT) {
    print('LEFT');
  }
  if (code === receiver.keys.RIGHT) {
    print('RIGHT');
  }
});