rmstodc2 2.1.0.0
Main Page

RMS to DC 2 click

‍RMS to DC 2 Click is a compact add-on board that converts the RMS of the input signal into a DC voltage. This board features the AD8436, a low-cost, low-power, true RMS-to-DC converter from Analog Devices. The AD8436 is a translinear precision, low-power, true RMS-to-DC converter that delivers true RMS or average rectified value of AC waveform. It features high accuracy, a wide dynamic input range (100μV rms to 3V rms), a wide bandwidth of up to 1MHz, and more. This Click board™ makes the perfect solution for the development of various true RMS digital multimeter applications, panel meters and gauges, AC + DC measurement applications, a true RMS measurement of an audio signal, and other similar applications that require accurate RMS value readings.

click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Apr 2023.
  • Type : ADC/I2C type

Software Support

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

Standard key functions :

Example key functions :

  • rmstodc2_set_vref This function sets the voltage reference for RMS to DC 2 click driver.
    err_t rmstodc2_set_vref ( rmstodc2_t *ctx, float vref );
    err_t rmstodc2_set_vref(rmstodc2_t *ctx, float vref)
    RMS to DC 2 set vref function.
  • rmstodc2_read_voltage This function reads raw ADC value and converts it to proportional voltage level.
    err_t rmstodc2_read_voltage ( rmstodc2_t *ctx, float *voltage );
    err_t rmstodc2_read_voltage(rmstodc2_t *ctx, float *voltage)
    RMS to DC 2 read voltage level function.

Example Description

‍This example demonstrates the use of the RMS to DC 2 click board by measuring the RMS voltage of the input signal.

The demo application is composed of two sections :

Application Init

‍Initializes the driver and logger.

void application_init ( void )
{
log_cfg_t log_cfg;
rmstodc2_cfg_t rmstodc2_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
rmstodc2_cfg_setup( &rmstodc2_cfg );
RMSTODC2_MAP_MIKROBUS( rmstodc2_cfg, MIKROBUS_1 );
err_t init_flag = rmstodc2_init( &rmstodc2, &rmstodc2_cfg );
if ( ( ADC_ERROR == init_flag ) || ( I2C_MASTER_ERROR == init_flag ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
#define RMSTODC2_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition rmstodc2.h:108
void application_init(void)
Definition main.c:29

Application Task

‍Reads the RMS voltage of the input signal and displays the results on the USB UART approximately once per second.

void application_task ( void )
{
float voltage = 0;
if ( RMSTODC2_OK == rmstodc2_read_voltage ( &rmstodc2, &voltage ) )
{
log_printf( &logger, " RMS voltage : %.3f[V]\r\n\n", voltage * RMSTODC2_RMS_VOLTAGE_COEF );
Delay_ms ( 1000 );
}
}
#define RMSTODC2_RMS_VOLTAGE_COEF
RMS to DC 2 RMS voltage calculation setting.
Definition rmstodc2.h:75
void application_task(void)
Definition main.c:60
@ RMSTODC2_OK
Definition rmstodc2.h:168

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

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.