Mikroe Moisture Click - Skin Hydration and Moisture Capacitance Sensor - FDC2112
- Product ID: 7492
- MPN: MIKROE-3084
The simplicity and a low number of external components required for operation, make the FDC2112 IC an ideal solution for using it in a range of different applications that are based on the capacitance measurement. The Click board™ allows evaluation of the FDC2112 IC, utilizing it for a range of skin hydration and moisture measurement applications, which involve an accurate and reliable measurement of the capacitive properties of the skin, in order to determine the percentage of hydration or moisture.
How does it work?
As already mentioned, the working principle of the Moisture click is based on measuring the skin capacitance property in order to determine the skin moisture level or hydration state of the outer epidermis. The studies show that various skin hydration measurement methods are complementary and no single method gives 100% accurate result for all skin conditions. However, measurement of the capacity turned out to be the most effective and reliable of measuring the skin hydration. Therefore, Moisture click uses the FDC2112 IC, a very precise 12bit capacitance to digital converter, from Texas Instruments.
The main challenge for all the capacitive sensing applications is the presence of EMI and noise, which can reduce the sensitivity. The FDC2112 IC employs an innovative narrow band architecture, which reduces the electromagnetic interferences (EMI) and noise influence. It uses an L-C resonator, (L-C tank) and monitors changes of its resonant frequency, which occurs as a result of a change in the capacitance. The IC features an internal referent frequency generator, which is compared with the measured oscillation frequency of the L-C tank. The 16bit conversion result is stored on the 12bit output registers, and it is available via the I2C interface. The digital gain function allows a higher dynamic range of the measurement to be obtained, by shifting the internal 16bit value.
The device features 2 internal sensing channels, of which only one is required for this application. There are two connections, IN0A and IN0B, forming the necessary L-C resonator circuit, along with the copper trace that serves as the capacitance sensor. By placing a finger on the pad, the capacitance of the resonator is changed, and the frequency is shifted. This frequency shift is measured and stored at the output registers.
The working parameters of this circuit can be configured by the appropriate registers, such for example - the input deglitch filter which suppresses EMI and ringing above the sensor frequency, conversion time, sequencing mode through the channels, and so on. The FDC2112 datasheet offers a complete description of all the registers and their functions.
There are two power modes available, used to reduce the power consumption. The device goes into the Sleep mode right after the POR (Power-ON Reset), waiting to be configured. When the Sleep Mode Enable bit in the status register is cleared, the device enters the Normal mode, ready to make measurements. The manufacturer recommends configuring the device only while in the Sleep mode. If frequent data acquisition is not required, the device can be put into the Sleep mode between the readings, saving power that way. The configuration data is retained in this mode, and the I2C interface is operational.
The configurable INTB pin of the FDC2112 IC can be used for the host controller notification. It can be configured to notify the host MCU for a range of different functions, including data ready event, watchdog error, amplitude too low or too high error, etc. Each of these events can be set to raise a flag and be reported by asserting the INTB pin. This pin is open-drain configuration and it is pulled to a LOW logic level when asserted. It is routed to the mikroBUS™ INT pin.
I2C address of the FDC2112 IC can be selected with the SMD jumper labeled as ADD SEL. This jumper sets the state of the least significant bit (LSB) of the I2C slave address, to either 0 or 1, according to the jumper position it occupies (labeled as 0 and 1).
Lines of the I2C interface are routed to the appropriate mikroBUS™ pins (SCL and SDA) providing an easy and reliable connection with the host MCU. This Click board™ requires only 3.3V for the operation and it should not be interfaced with the MCUs operating with 5V signal levels without a proper logic voltage level shifter.
Temperature / Humidity
This Click board™ is an ideal solution for development of skin moisture/skin hydration applications, based on a reliable and innovative capacitive sensing technology
FDC2112 IC, a very precise 12bit capacitance to digital converter, from Texas Instruments
Noise and electromagnetic interference (EMI) immunity, low power consumption, configurable interrupt pin, low number of external components required, and more
Click board size
L (57.15 x 25.4 mm)
This table shows how the pinout on Moisture click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard jumpers and settings
|LD1||PWR||-||Power LED indicator|
|JP1||ADDR SEL||Left||I2C address LSB selection: left position 0, right position 1|
We provide a demo application for Moisture click on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
The library initializes and defines the I2C bus driver and drivers that offer a choice for writing data in the register. The library includes a function for calibration chip for measurement, a function for reading moisture data. The user also has the function for initializes chip, set offset, gain and clock divider and software reset.
Key functions :
uint8_t moisture_init(uint16_t gain, uint16_t offset, uint16_t clk_div) - Functions for initializing the chip
uint8_t moisture_getData() - Functions for measurement data in percent.
void moisture_calibration() - Functions for calibration chip for measurement
The application is composed of three sections :
- System Initialization - Initializes I2C module
- Application Initialization - Initializes Driver init and sets moisture gain, offset data and clock divider. Calibration chip for measurement - don't touch the sensor while calibrating.
- Application Task - (code snippet) - Measure moisture data in percentage every 500ms. To make the measurement successful, touch the sensor and wait until values are stabilized.
mikrobus_logWrite(" Moisture data : ", _LOG_TEXT);
moistureData = moisture_getData();
Delay_ms( 500 );
The full application code, and ready to use projects can be found on our
Other mikroE Libraries used in the example:
Additional notes and information
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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
This click board is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
For more information about mikroSDK, visit the official page.