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:
20:f0e446e5b209
Parent:
19:691019fc9891
Child:
21:5e3955335251
--- a/main.cpp	Sat May 13 16:12:26 2017 +0000
+++ b/main.cpp	Sun May 14 16:25:11 2017 +0000
@@ -25,8 +25,8 @@
 // 10. mbed LPC11U24            Azoteq adapter AZP690E01 [SDA,SCL,RDY] wired to LPC11U24 [p28,p27,p26]
 
 // These two boards additionally require the USBDevice library: https://developer.mbed.org/users/mbed_official/code/USBDevice/
-// 11. Teensy 3.1               Azoteq adapter AZP690E01 [SDA,SCL,RDY] wired to Teensy 3.1 [p18,p19,p2] 
-// 12. Teensy 3.2               Azoteq adapter AZP690E01 [SDA,SCL,RDY] wired to Teensy 3.2 [p18,p19,p2] 
+// 11. Teensy 3.1               Azoteq adapter AZP690E01 [SDA,SCL,RDY] wired to Teensy 3.1 [p18,p19,p2]
+// 12. Teensy 3.2               Azoteq adapter AZP690E01 [SDA,SCL,RDY] wired to Teensy 3.2 [p18,p19,p2]
 
 // Direct wiring of ST Micro Nucleo boards to AZP690E01 (IQS621-EVAL-1 board)
 // CN10-3 = SCL, CN10-5 = SDA, CN10-33 = RDY, CN11 = GND, CN7-16 = 3.3V
@@ -39,14 +39,16 @@
 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) { // 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 = 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
+        char * highlightTable = iqs62x.readChanges; // table with all registers that changed during previous 20 reads
+#define DUMP_ALL_REGISTERS false /* dump (or not) all 16 registers on each line - nonexisting registers return 0xee */
+        terminal.showRegisters(iqs62x.registers, highlightTable, DUMP_ALL_REGISTERS); // color all registers flagged in the highlight table
     }
 }