IR

Overview

The most easiest way to get a user input is using push button switches.

However, Many pins on mbed have a peripheral and we can't use their pin if we use the peripherals.

It's OK to add a few switches. But over 10 switches ... It's not good way to get a user inputs. It's not beautiful way for it.

So I created IR remote transmitter and receiver class library.

You can get a user inputs with only a pin if you use this class library.

Now we can control many machines that have a IR port.

http://mbed.org/media/uploads/shintamainjp/remoteir.png

The simple interfaces

To setup the receiver.

#include "ReceiverIR.h"
ReceiverIR ir_rx(p15);

To use the receiver.

RemoteIR::Format format;
uint8_t buf[32];
int bitcount;
if (ir_rx.getState() == ReceiverIR::Received) {
    bitcount = ir_rx.getData(&format, buf, sizeof(buf) * 8);
}

To setup the transmitter.

#include "TransmitterIR.h"
TransmitterIR ir_tx(p21);

To use the transmitter.

RemoteIR::Format format = RemoteIR::SONY;
uint8_t buf[] = { 0x80, 0x00 };
int bitcount = 12;
if (ir_tx.getState() == TransmitterIR::Idle) {
    bitcount = ir_tx.setData(format, buf, bitcount);
}

That's it all.

It's easy to setup your IR remote application.

API

Import library

Public Types

enum   State
 

State.

More...

Public Member Functions

  ReceiverIR (PinName rxpin)
  Constructor.
  ~ReceiverIR ()
  Destructor.
State   getState ()
  Get state.
int  getData (RemoteIR::Format *format, uint8_t *buf, int bitlength)
  Get data.

Import library

Public Member Functions

  TransmitterIR (PinName txpin)
  Constructor.
  ~TransmitterIR ()
  Destructor.
State  getState (void)
  Get state.
int  setData (RemoteIR::Format format, uint8_t *buf, int bitlength)
  Set data.

Library

Import libraryRemoteIR

RemoteIR.

Example application

Import programRemoteIR_TestProgram

A test program for RemoteIR library.

The receiver

/media/uploads/shintamainjp/_scaled_circuit_for_ir_rx.png

The transmitter

/media/uploads/shintamainjp/_scaled_circuit_for_ir_tx.png

References