c7seg2  2.1.0.0
Main Page

7-SEG 2 Click

7-SEG 2 Click is a compact add-on board that represents an easy solution for adding a numeric or hexadecimal display to your application. This board features the LDT-M2804RI, a three-digit seven-segment display from Lumex. The display has a 0.28” height, red LED segments, gray faces, and white diffused segments. All three digits come with a following dot point that can be used as a decimal point in displaying the number values.

Click Product page


Click library

  • Author : MikroE Team
  • Date : Sep 2023.
  • Type : I2C type

Software Support

We provide a library for the 7-SEG 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 7-SEG 2 Click driver.

Standard key functions :

Example key functions :

  • c7seg2_set_segments_current This function is used to set the current value of the segment's leds.
    err_t c7seg2_set_segments_current ( c7seg2_t *ctx, float current_val );
  • c7seg2_write_segment This function is used to write a number [0..9] to a selected segment [0..2] with or w/o a decimal pointer.
    err_t c7seg2_write_segment ( c7seg2_t *ctx, uint8_t segment, uint8_t number, uint8_t dpt );
  • c7seg2_write_number This function is used to write a number [0..999] to a selected segment [0..2] with or w/o a decimal pointer.
    err_t c7seg2_write_number ( c7seg2_t *ctx, uint16_t number, uint8_t dpt );

Example Description

The example demonstrates the use of the 7-SEG 2 Click board by displaying a counter number [0.00-9.99] which is incremented by 0.01 at a desired rate.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs default configuration, sets the device in output enabled mode and checks communication by reading device ID.

void application_init ( void )
{
log_cfg_t log_cfg;
c7seg2_cfg_t c7seg2_pnp_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
c7seg2_cfg_setup( &c7seg2_pnp_cfg );
C7SEG2_MAP_MIKROBUS( c7seg2_pnp_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == c7seg2_init( &c7seg2, &c7seg2_pnp_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
uint8_t device_id = 0;
c7seg2_read_reg( &c7seg2, C7SEG2_REG_DEVICE_ID, &device_id );
if ( C7SEG2_DEVICE_ID != device_id )
{
log_error( &logger, " Communication error." );
for ( ; ; );
}
if ( C7SEG2_ERROR == c7seg2_default_cfg ( &c7seg2 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Writes a counter number [0.00-9.99] to the display as frequently as possible. The displayed counter value is incremented by 0.01 at a rate defined with the C7SEG2_NUM_COUNTER_RATE macro.

void application_task ( void )
{
static uint16_t counter = 0;
static uint16_t time = 0;
if ( ++time >= C7SEG2_NUM_COUNTER_RATE )
{
if ( ++counter > C7SEG2_MAX_NUMBER )
{
counter = 0;
}
time = 0;
}
}

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

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.


c7seg2_default_cfg
err_t c7seg2_default_cfg(c7seg2_t *ctx)
7-SEG 2 default configuration function.
c7seg2_t
7-SEG 2 Click context object.
Definition: c7seg2.h:221
C7SEG2_MAX_NUMBER
#define C7SEG2_MAX_NUMBER
Definition: c7seg2.h:161
c7seg2_init
err_t c7seg2_init(c7seg2_t *ctx, c7seg2_cfg_t *cfg)
7-SEG 2 initialization function.
application_task
void application_task(void)
Definition: main.c:78
c7seg2_write_number
err_t c7seg2_write_number(c7seg2_t *ctx, uint16_t number, uint8_t dpt)
7-SEG 2 number writing function.
C7SEG2_ERROR
@ C7SEG2_ERROR
Definition: c7seg2.h:258
c7seg2_read_reg
err_t c7seg2_read_reg(c7seg2_t *ctx, uint8_t reg, uint8_t *data_out)
7-SEG 2 I2C register reading function.
C7SEG2_DEVICE_ID
#define C7SEG2_DEVICE_ID
7-SEG 2 description setting.
Definition: c7seg2.h:167
C7SEG2_NUM_COUNTER_RATE
#define C7SEG2_NUM_COUNTER_RATE
Definition: main.c:29
C7SEG2_MAP_MIKROBUS
#define C7SEG2_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: c7seg2.h:208
c7seg2_set_segments_current
err_t c7seg2_set_segments_current(c7seg2_t *ctx, float current_val)
7-SEG 2 set segments current value function.
c7seg2_cfg_setup
void c7seg2_cfg_setup(c7seg2_cfg_t *cfg)
7-SEG 2 configuration object setup function.
c7seg2_write_segment
err_t c7seg2_write_segment(c7seg2_t *ctx, uint8_t segment, uint8_t number, uint8_t dpt)
7-SEG 2 single segment writing function.
application_init
void application_init(void)
Definition: main.c:34
C7SEG2_REG_DEVICE_ID
#define C7SEG2_REG_DEVICE_ID
7-SEG 2 description register.
Definition: c7seg2.h:73
c7seg2_cfg_t
7-SEG 2 Click configuration object.
Definition: c7seg2.h:238
C7SEG2_DP_AT_SEGMENT_2
#define C7SEG2_DP_AT_SEGMENT_2
Definition: c7seg2.h:135