ir2  2.0.0.0
Main Page

IR 2 click

PRVIH_PAR_RECENICA_SA_PRODUCT_PAGE_DA_ISPRATE_CELINU

[click Product page](CLICK_PRODUCT_PAGE_LINK)


Click library

  • Author : Stefan Filipovic
  • Date : Jan 2022.
  • Type : PWM type

Software Support

We provide a library for the IR 2 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Library Description

This library contains API for IR 2 Click driver.

Standard key functions :

Example key functions :

  • ir2_get_out_pin This function returns the OUT pin logic state.
    uint8_t ir2_get_out_pin ( ir2_t *ctx );
  • ir2_nec_send_data This function sends an address and data bytes using NEC protocol.
    void ir2_nec_send_data ( ir2_t *ctx, uint8_t address, uint8_t data_in );
  • ir2_nec_read_data This function reads an address and data bytes by using NEC protocol.
    err_t ir2_nec_read_data ( ir2_t *ctx, uint8_t *address, uint8_t *data_out );

Example Description

This example demonstrates the use of an IR 2 click board by showing

the communication between the two click boards configured as a receiver and transmitter using the NEC protocol.

The demo application is composed of two sections :

Application Init

Initializes the driver and logger and displays the selected application mode.

void application_init ( void )
{
log_cfg_t log_cfg;
ir2_cfg_t ir2_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
ir2_cfg_setup( &ir2_cfg );
IR2_MAP_MIKROBUS( ir2_cfg, MIKROBUS_1 );
if ( PWM_ERROR == ir2_init( &ir2, &ir2_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
log_printf( &logger, "- - - - - - - - - - - - \r\n" );
#ifdef IR2_TRANSMITTER_MODE
log_printf( &logger, "- Transmitter mode - \r\n" );
#else
log_printf( &logger, "- Receiver mode - \r\n" );
#endif
log_printf( &logger, "- - - - - - - - - - - - \r\n" );
}

Application Task

Depending on the selected mode, it sends a desired message using NEC protocol or

reads all the received data and displays them on the USB UART.

void application_task ( void )
{
#ifdef IR2_TRANSMITTER_MODE
log_printf( &logger, " Sending message." );
for ( uint8_t cnt = 0; cnt < sizeof ( IR2_DATA ); cnt++ )
{
log_printf( &logger, "." );
}
log_printf( &logger, "\r\n Message has been sent! \r\n" );
log_printf( &logger, "- - - - - - - - - - - - \r\n" );
Delay_ms( 500 );
#else
uint8_t address;
uint8_t rx_data;
if ( IR2_OK == ir2_nec_read_data ( &ir2, &address, &rx_data ) )
{
log_printf( &logger, "Address: 0x%.2X, Data: %c\r\n", ( uint16_t ) address, rx_data );
}
#endif
}

The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe github account.

Other Mikroe Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.IR2

Additional notes and informations

Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all MikroElektronika compilers.


ir2_nec_read_data
err_t ir2_nec_read_data(ir2_t *ctx, uint8_t *address, uint8_t *data_out)
IR 2 NEC read data function.
ir2_cfg_setup
void ir2_cfg_setup(ir2_cfg_t *cfg)
IR 2 configuration object setup function.
application_task
void application_task(void)
Definition: main.c:74
ir2_cfg_t
IR 2 Click configuration object.
Definition: ir2.h:128
ir2_get_out_pin
uint8_t ir2_get_out_pin(ir2_t *ctx)
IR 2 get OUT pin function.
ir2_t
IR 2 Click context object.
Definition: ir2.h:109
ir2_init
err_t ir2_init(ir2_t *ctx, ir2_cfg_t *cfg)
IR 2 initialization function.
application_init
void application_init(void)
Definition: main.c:35
IR2_OK
@ IR2_OK
Definition: ir2.h:147
ir2_nec_send_data
void ir2_nec_send_data(ir2_t *ctx, uint8_t address, uint8_t data_in)
IR 2 NEC send data function.
IR2_MAP_MIKROBUS
#define IR2_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: ir2.h:85
IR2_DATA
#define IR2_DATA
Definition: main.c:30
IR2_ADDRESS
#define IR2_ADDRESS
Definition: main.c:29