optoencoder5  2.1.0.0
Main Page

Opto Encoder 5 click

Opto Encoder 5 Click is a compact add-on board that offers non-contact switching with unparalleled accuracy and precision. This board features the OPB666N, a Photologic® slotted optical switch from TT Electronics, ensuring top-notch performance and reliability. It integrates an 890nm infrared LED and a monolithic integrated circuit with a photodiode, linear amplifier, and Schmitt trigger, all powered effectively by a 5V supply from the mikroBUS™ power rail. The board features an NPN open-collector output configuration and is TTI/LST TL compatible, highlighting its ease of use and versatility.

click Product page


Click library

  • Author : Stefan Ilic
  • Date : Dec 2023.
  • Type : GPIO type

Software Support

We provide a library for the Opto Encoder 5 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 Opto Encoder 5 Click driver.

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of the Opto Encoder 5 Click board by detecting eclipse states.

The demo application is composed of two sections :

Application Init

Initialization of GPIO module, log UART and enables the slotted optical switch.

void application_init ( void )
{
log_cfg_t log_cfg;
optoencoder5_cfg_t optoencoder5_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
optoencoder5_cfg_setup( &optoencoder5_cfg );
OPTOENCODER5_MAP_MIKROBUS( optoencoder5_cfg, MIKROBUS_1 );
if ( DIGITAL_OUT_UNSUPPORTED_PIN == optoencoder5_init( &optoencoder5, &optoencoder5_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
optoencoder5_enable( &optoencoder5 );
log_info( &logger, " Application Task " );
}

Application Task

When the beam from the slotted optical switch is broken by placing an object in

the gap ( like a piece of paper ), the counter is incremented by one when the sensor is triggered.

void application_task ( void )
{
out_state = optoencoder5_get_out_state( &optoencoder5 );
if ( cmp_state != out_state )
{
{
log_printf( &logger, " Counter: %u \r\n", cnt );
cnt++;
}
cmp_state = out_state;
}
}

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.OptoEncoder5

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.


optoencoder5_get_out_state
uint8_t optoencoder5_get_out_state(optoencoder5_t *ctx)
Opto Encoder 5 get state function.
OPTOENCODER5_MAP_MIKROBUS
#define OPTOENCODER5_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: optoencoder5.h:86
optoencoder5_cfg_t
Opto Encoder 5 Click configuration object.
Definition: optoencoder5.h:109
optoencoder5_t
Opto Encoder 5 Click context object.
Definition: optoencoder5.h:98
application_task
void application_task(void)
Definition: main.c:64
optoencoder5_disable
void optoencoder5_disable(optoencoder5_t *ctx)
Opto Encoder 5 disable function.
OPTOENCODER5_OUT_STATE_SWITCH_CLOSED
#define OPTOENCODER5_OUT_STATE_SWITCH_CLOSED
Definition: optoencoder5.h:68
optoencoder5_cfg_setup
void optoencoder5_cfg_setup(optoencoder5_cfg_t *cfg)
Opto Encoder 5 configuration object setup function.
application_init
void application_init(void)
Definition: main.c:33
optoencoder5_init
err_t optoencoder5_init(optoencoder5_t *ctx, optoencoder5_cfg_t *cfg)
Opto Encoder 5 initialization function.
optoencoder5_enable
void optoencoder5_enable(optoencoder5_t *ctx)
Opto Encoder 5 enable function.