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:
21:5e3955335251
Parent:
20:f0e446e5b209
Child:
23:2817d2f3145d
diff -r f0e446e5b209 -r 5e3955335251 main.cpp
--- a/main.cpp	Sun May 14 16:25:11 2017 +0000
+++ b/main.cpp	Sun May 14 19:56:54 2017 +0000
@@ -39,17 +39,14 @@
 IQS62xDisplay terminal;   // class to display IQS62x registers on a terminal
 IQS62xIO iqs62x;          // class for basic IQS62x block read and write
 
-int main()
-{
-    terminal.helloMessage(false); // say hello and don't wait for user keypress to continue
+int main() {
+    terminal.helloMessage(false); // say hello but don't wait for a keypress
     iqs62x.configure(); // configure the IC
-    while(1) { // main loop where we continuously display all the registers
+    char * color = iqs62x.getTable(color_any_register_that_changed_in_the_previous_20_reads) ;
+    while(1) {
         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 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
-    }
+        terminal.showRegisters(iqs62x.registers, color, false); // display registers, color the registers that changed
+    }    
 }
-
 // end of IQS624_HelloWorld.cpp
\ No newline at end of file