Ultra Low Power (5uA) 2D Rotating Magnetic Angle Sensor + Touch + Inductive Proximity (Metal Detect)

Dependencies:   IQS62x IQSDisplayTerminal mbed

IQS624 Hello World

Ultra Low Power (5uA) I2C ProxFusion™ sensor for 2D Magnetic Angle + Touch + Proximity

/media/uploads/AzqDev/iqs624-and-lpc1768-tiny.gif
IQS624 connected to mbed LPC1768. The five wires are - 2x I2C, 2x Power, 1x RDY.
You can get get a low cost (<$10) evaluation kit containing the small board shown above (cables & LPC1768 not included) from Mouser - http://bit.ly/IQS624-Eval-Kit-Mouser

IQS624 Information

Azoteq IQS624 is an ultra low power (5uA) I2C sensor for 2D Rotating Magnetic Fields, Capactive Touch and Inductive Proximity.
Designed for next generation user interfaces.

Data sheet & eval kit info: http://www.azoteq.com/products/proxfusion/iqs624?mbed

IQS624 mbed Component Link

Components / IQS624
Ultra low power sensor for rotating magnetic field, capacitive touch, and inductive proximity. Empowers next-generation user interfaces.

IQS624 Pinout

/media/uploads/AzqDev/iqs624-5-pinout-for-i2c-ultra-low-power-sensor-with-2d-magnetic-angle-capacitive-touch-inductive.gif

IQS624 Data Sheet & Evaluation Kit Information


http://www.azoteq.com/products/proxfusion/iqs624?mbed

IQS624 Interconnection

/media/uploads/AzqDev/iqs624-3-connect-mbed-i2c-ultra-low-power-sensor-with-2d-magnetic-angle-capacitive-touch.gif
/media/uploads/AzqDev/iqs624-and-teensy-tiny.gif
IQS624 connected to mbed Teensy 3.1 (actually Teensy 3.2) using 5 wires - 2x I2C, 2x Power, 1x RDY.

IQS624 YouTube Links


IQS624 1-minute YouTube video: http://bit.ly/IQS624Video

ProxFusion for active pens: https://youtu.be/tUImswNPQY4

Revision:
19:691019fc9891
Parent:
18:cd47f802bb36
Child:
20:f0e446e5b209
--- a/main.cpp	Sat May 13 09:29:41 2017 +0000
+++ b/main.cpp	Sat May 13 16:12:26 2017 +0000
@@ -39,22 +39,14 @@
 IQS62xDisplay terminal;   // class to display IQS62x registers on a terminal
 IQS62xIO iqs62x;          // class for basic IQS62x block read and write
 
-int main() {
+int main() { 
     terminal.helloMessage(false); // say hello and don't wait for user keypress to continue
     iqs62x.configure(); // configure the IC
-    while(1) {
+    while(1) { // main loop where we continuously display all the registers
         iqs62x.readIqsRegisters(0,NUMBER_OF_REGISTERS); // read all the registers
         terminal.showStatus(iqs62x.I2Cspeed,iqs62x.I2CErrorCount); // show heading and number of I2C errors
-        
-        char * highlightTable; // a highlight table contains 1 byte for every register
-        // if a byte in a highlight table is nonzero, the corresponding register value will be highlighted during display
-        highlightTable = 0;                    // use a NULL table to make all registers print plain with no highlighting
-        highlightTable = iqs62x.writeFlag;     // special table to highlight all registers that were initialized - can be used to verify configure()
-        highlightTable = iqs62x.writeChanges;  // special table to highlight all registers that were written/configured but now contain a different value
-        highlightTable = iqs62x.readChanges;   // special table to highlight all registers that changed since the previous read
-        
-        terminal.showRegisters(iqs62x.registers, highlightTable); // display the registers and highlight the ones marked in the table
-        
+        char * highlightTable = iqs62x.readChanges; // table that contains all registers that changed since the previous read
+        terminal.showRegisters(iqs62x.registers, highlightTable); // display the registers and highlight the ones marked in the highlight table
     }
 }