Skip to content

Instantly share code, notes, and snippets.

@riebschlager
Created June 20, 2017 19:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save riebschlager/01b96e8856499a8605d3fe864e315e60 to your computer and use it in GitHub Desktop.
Save riebschlager/01b96e8856499a8605d3fe864e315e60 to your computer and use it in GitHub Desktop.
#include <MPR121.h>
#include <Wire.h>
#define numElectrodes 6
void setup()
{
Serial.begin(9600);
while (!Serial);
Wire.begin();
if (!MPR121.begin(0x5C)) {
Serial.println("error setting up MPR121");
switch (MPR121.getError()) {
case NO_ERROR:
Serial.println("no error");
break;
case ADDRESS_UNKNOWN:
Serial.println("incorrect address");
break;
case READBACK_FAIL:
Serial.println("readback failure");
break;
case OVERCURRENT_FLAG:
Serial.println("overcurrent on REXT pin");
break;
case OUT_OF_RANGE:
Serial.println("electrode out of range");
break;
case NOT_INITED:
Serial.println("not initialised");
break;
default:
Serial.println("unknown error");
break;
}
while (1);
}
MPR121.setInterruptPin(4);
MPR121.setTouchThreshold(40);
MPR121.setReleaseThreshold(20);
MPR121.updateTouchData();
}
void loop()
{
if (MPR121.touchStatusChanged()) {
MPR121.updateTouchData();
for (int i = 0; i < numElectrodes; i++) {
if (MPR121.isNewRelease(i)) {
Serial.print("0-");
Serial.print(i, DEC);
} else if (MPR121.isNewTouch(i)) {
Serial.print("1-");
Serial.print(i, DEC);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment