Despite its compact size and a variety of available sensors, each of them provides a range of features which improve the accuracy and reliability. The IC contains a regulated power source, providing precise and thermally stabilized voltage reference for all the sensors. The Automatic Tuning Implementation (ATI) is a sophisticated technology which allows an optimized performance by ensuring that the sensitivity of the sensors is not affected by external influences such as temperature, parasitic capacitance, and changes in the GND reference. Aside from IoT, ProxFusion® 2 click can be used for applications related to white goods and appliances, home automation and lighting control, human-machine interfaces (HMI), and more.
How does it work?
ProxFusion® 2 click is based on the IQS621, a multifunctional sensor with the ambient light (ALS), capacitive touch, Hall-effect, and inductance sensing capabilities, from Azoteq. Their IQ Switch® ProxFusion® sensor series are one of the first sensors that incorporate several sensory functions on a same die. This makes the IQS62x series perfectly suited for compact designs, such as those used in IoT or in various home automation systems.
The IQS621 IC does not sacrifice any feature in favor of having multiple sensors on the same chip; on the contrary, it offers all the key features commonly found on other stand-alone sensors. The sensitivity of IQS621 is improved by using a regulated and stable internal power supply, along with the Automatic Tuning Implementation (ATI) technology, which provides consistent readings, regardless of environmental conditions.
The capacitive sensor is based on the proven ProxSense® technology. It allows self-capacitance sensing, adjustable proximity and touch thresholds, alternative ATI modes, and individual sensitivity setups. The IQS621 offers two distinctive user interfaces, that can be used with the capacitive sensor: Discrete Button UI, and Hysteresis UI. Both interfaces offer a set of programmable registers used to set up the sensing parameters such as thresholds, filter settings, ATI settings, etc. While the Discrete prox/touch UI is more suited to be used as the ON/OFF switch detector, the Hysteresis UI can be used to program sensing of more complex events.
An inductive sensor is also present on this IC. It can be used to detect the presence of metal objects. Again, two distinct user interfaces are available, each with its own set of registers. There is a Discrete Button UI, as well as the Hysteresis UI. The detection thresholds are widely adjustable, allowing a reliable detection of even smaller metallic objects. ProxFusion® 2 click has the PCB trace coil area, which allows inductive detection. The same area of the Click board™ is used to sense capacitive events.
The IQS621 also features an ambient light sensor (ALS). The ALS UI outputs readings directly in Lux, so it requires no additional conversion. The ALS response is calibrated according to a human eye. It also features an IR filter, reducing the influence of the infra-red light. The ALS includes selectable range, as well as two threshold settings for day/night indication. ALS enables design of smart light switches: detecting night/day event might be used to regulate the lighting, for example.
Hall-effect sensor can be used to detect changes in the magnetic field. Unlike the capacitive and inductive sensors, the Hall-sensor does not require any external parts, since Hall-plates are embedded into the IC itself. Hall-sensor allows several events to be detected, as it is supported by an advanced signal processing algorithm. Besides other features, it has an ability to detect field poles orientation (N/S), allowing it to be used as a switch. This allows it to be used for different kinds of contactless HMIs.
A temperature sensor is one of the most commonly used sensors. It can be found even on other types of sensors, such as pressure or humidity sensors, since the temperature is one of the parameters that affect readings. The role of the thermal sensor in IQS621 is no different: it is used to provide calibration base for other sensors on this IC. However, this sensor is also available to be used to monitor the ambient temperature in any application.
Finally, each of the detected ON/OFF type events can be monitored in the Global events register. This is very useful as the host MCU does not to poll many different registers to discover these events. The communication with the IQS621 is done over the I2C interface, with the additional RDY pin. This pin is routed to the INT pin of the mikroBUS™ and indicates a communications window.
The Click board™ is designed to work with 3.3V only. When using it with MCUs that use 5V levels for their communication, a proper level translation circuit should be used.
Specifications
Type
Capacitive
Applications
ProxFusion 2 click can be used for the IoT-based application development, but also for applications related to white goods and appliances, home automation and lighting control, human-machine interfaces (HMI), and more.
On-board modules
IQS621, a multifunctional sensor with the ambient light (ALS), capacitive touch, Hall-effect, and inductance sensing capabilities, from Azoteq.
Key Features
Multifunctional sensor IC which offers several high-quality sensors on a same die, cutting expenses and development time. Low power consumption, programmable thresholds for each sensor, ATI engine that allows automatic fine-tuning for improved detection, etc.
Interface
I2C
Feature
No ClickID
Compatibility
mikroBUS™
Click board size
M (42.9 x 25.4 mm)
Input Voltage
3.3V
Pinout diagram
This table shows how the pinout on ProxFusion® 2 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 | – | – | Power LED Indicator |
Software support
We provide a library for the ProxFusion® 2 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
The library initializes and defines the I2C bus or SPI bus driver and drivers that offer a choice for writing data in register. The library includes function for read ambient light, hall-effect and temperature and function for detect touch. The user also has the function for initializes chip and configuration chip.
Key functions:
void proxfusion
2_configuration()
– Function for configuration chipuint8_t proxfusion
2_init()
– Function for initializes chipuint8_t proxfusion
2_detectTouch()
– Function for detect Touchuint8_t proxfusion
2_detectDark_Light(uint8_t *ALS_range)
– Function for read ambient lightuint8_t proxfusion
2_detectHall()
– Function for read Hall-effect
Examples description
The application is composed of the three sections :
- System Initialization – Initializes I2C module and sets INT pin as INPUT
- Application Initialization – Initializes Driver init and configuraton and init chip
- Application Task – (code snippet):
- Checks whether Touch is detected and measures the output detection.
- Measures Ambient lighting – whether it’s Light or Dark, ALS range and ALS output.
- Checks the orientation of the magnet and measures the HALL output.
void applicationTask() { mikrobus_logWrite("_________________________________________________________________________", _LOG_LINE); mikrobus_logWrite("| TOUCH | T - UI | AMBIENT | ALS RANGE | ALS UI | HALL | HALL UI |",_LOG_LINE); // TOUCH Touch = proxfusion2_readByte(0x13); if ((Touch & 0x02) != 0) { mikrobus_logWrite("| YES |", _LOG_TEXT); } else { mikrobus_logWrite("| NO |", _LOG_TEXT); } dataRead = proxfusion2_readData( _PROXFUSION2_HYSTERESIS_UI_OUTPUT ); IntToStr(dataRead, demoText); mikrobus_logWrite(demoText, _LOG_TEXT); mikrobus_logWrite(" |",_LOG_TEXT); // AMBIENT darkLight_ambient = proxfusion2_detectDark_Light(&ALS_range); if (darkLight_ambient == _PROXFUSION2_DARK_AMBIENT ) { mikrobus_logWrite(" DARK |",_LOG_TEXT); } else { mikrobus_logWrite(" LIGHT |",_LOG_TEXT); } IntToStr(ALS_range, demoText); mikrobus_logWrite(demoText, _LOG_TEXT); mikrobus_logWrite(" |",_LOG_TEXT); dataRead = proxfusion2_readData( _PROXFUSION2_ALS_UI_OUTPUT ); IntToStr(dataRead, demoText); mikrobus_logWrite(demoText, _LOG_TEXT); mikrobus_logWrite(" |",_LOG_TEXT); // HALL hall_detect = proxfusion2_detectHall(); if (hall_detect != 0) { if( hall_detect == 1 ) { mikrobus_logWrite(" NORTH |",_LOG_TEXT); } else { mikrobus_logWrite(" SOUTH |",_LOG_TEXT); } } dataRead = proxfusion2_readData( _PROXFUSION2_HALL_EFFECT_UI_OUTPUT ); IntToStr(dataRead, demoText); mikrobus_logWrite(demoText, _LOG_TEXT); mikrobus_logWrite(" |",_LOG_LINE); Delay_ms(3000); }
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
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.