How does it work?
Oximeter 3 Click is based on the VCNL4020C-GS08, a fully integrated biosensor and ambient light sensor with an I2C interface from Vishay Semiconductor. The VCNL4020C-GS08 sensor comes with a built-in infrared emitter, and signal processing IC in a single package with a 16 bit ADC. It also has an ambient light PIN photodiode with close-to-human-eye sensitivity with excellent ambient light suppression through signal modulation. For biosensor functionality, it converts the current from the PIN photodiode to a 16-bit digital data output value, while for the ambient light sensing it converts the current from the ambient light detector, amplifies it, and converts it to a 16-bit digital output stream.
The integrated infrared emitter has a peak wavelength of 890 nm. It emits light that reflects off an object within 20 cm of the sensor and has a programmable drive current from 10 mA to 200 mA in 10 mA steps. The built-in infrared emitter and broader sensitivity photodiode also can work with the additional on-board green LED and IRLED as designed on this Click board™. As an additional light source true green color LED (VLMTG1300) with a 525nm peak wavelength is used, alongside an infrared dual-color emitting diode (VSMD66694) with 660 nm and 940 nm peak wavelength well suited for measuring the optical pulse oximetry.
The PIN photodiode receives the light that is reflected off the object and converts it to a current. It has a peak sensitivity of 890 nm, matching the peak wavelength of the emitter, and it is insensitive to ambient light. The VCNL4020C also provides ambient light sensing to support conventional backlight and display brightness auto-adjustment. The ambient light sensor receives the visible light and converts it to a current, and it has peak sensitivity at 540 nm and bandwidth from 430 nm to 610 nm.
Oximeter 3 Click communicates with the MCU using the standard I2C 2-wire interface with fixed slave address compatible with all I2C modes (Standard, Fast, and High-Speed). It allows easy access to a biosensor signal and light intensity measurements without complex calculations or programming. It also generates programmable interrupt signal routed on the INT pin of the mikroBUS™, that offers Wake-Up functionality for the MCU when a proximity event or ambient light change occurs, which reduces processing overhead by eliminating the need for continuous polling.
This Click board™ is designed to be operated with both 3.3V and 5V logic voltage levels that can be selected via VCC SEL jumper. This allows for both 3.3V and 5V capable MCUs to use the I2C communication lines properly.
Specifications
Type
Biometrics
Applications
Can be used for applications such as optical pulse oximetry and health monitoring.
On-board modules
Oximeter 3 Click is based on the VCNL4020C-GS08, a fully integrated biosensor and ambient light sensor with an I2C interface from Vishay Semiconductor.
Key Features
Low current consumption, onboard LEDs optimized for the oximetry measurements, high frequency bursts for biosensor signal measurement, programmable interrupt function, and more.
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
S (28.6 x 25.4 mm)
Input Voltage
3.3V or 5V
Pinout diagram
This table shows how the pinout on Oximeter 3 Click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | – | Power LED Indicator |
LD2 | VLMTG1300 | – | Green Measurement LED |
IR1 | VSMD66694 | – | Infrared Measurement LED |
JP1 | VCC SEL | Left | Power Supply Voltage Selection 3V3/5V: Left position 3V3, Right position 5V |
Oximeter 3 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | -0.3 | – | 5.5 | V |
Ambient Light Resolution | – | 0.25 | – | Ik |
IR1 Infrared Wavelenght | 660 | – | 940 | nm |
LD2 Green LED Wavelenght | – | 525 | – | nm |
Operating Temperature Range | -25 | – | +85 | V |
Software Support
We provide a library for the Oximeter 3 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.
Library Description
Library provides generic functions for reading and writig data to register and getting INT pin status. There is one specific function that reads data from sensor and returns it, which data returns depends on input parameter.
Key functions:
void oximeter3_generic_write ( uint8_t reg_addr, uint8_t write_data )
– Function for writing data to register address.uint8_t oximeter3_generic_read ( uint8_t reg_addr )
– Function for reading data from register address.uint16_t oximeter3_read_value ( uint8_t type_macro )
– Function for reading value from sensor.
Examples description
The application is composed of three sections :
- System Initialization – Initialization of I2C module and int pin
- Application Initialization – Check id status, configures device for previous selected mode
- Application Task – Appliction measures values of heart rate or proximity and als value. It depends of selected device mode.
void application_task ( ) { if ( OXIMETER3_HEART_RATE == dev_mode ) { rd_val = oximeter3_read_value( OXIMETER3_PROX ); WordToStr( rd_val, demo_txt ); mikrobus_logWrite( demo_txt, _LOG_TEXT ); mikrobus_logWrite( ",", _LOG_LINE ); Delay_ms( 3 ); } else { rd_val = oximeter3_read_value( OXIMETER3_PROX ); WordToStr( rd_val, demo_txt ); mikrobus_logWrite( " * Proximity: ", _LOG_TEXT ); mikrobus_logWrite( demo_txt, _LOG_LINE ); rd_val = oximeter3_read_value( OXIMETER3_ALS ); WordToStr( rd_val, demo_txt ); mikrobus_logWrite( " * ALS: ", _LOG_TEXT ); mikrobus_logWrite( demo_txt, _LOG_LINE ); mikrobus_logWrite( "********************", _LOG_LINE ); Delay_ms( 500 ); } }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- I2C
- UART
- Conversions
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. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
mikroSDK
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.