#include <MPR121.h>
#include <Wire.h>
#define numElectrodes 12
void setup()
{
Serial.begin(115200);
Serial.println("System started");
Wire.begin();
// 0x5C is the MPR121 I2C address on the Bare Touch Board
if (!MPR121.begin(0x5A)) {
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);
}
Serial.println("WE ARE COOL");
// pin 4 is the MPR121 interrupt on the Bare Touch Board
MPR121.setInterruptPin(4);
// this is the touch threshold - setting it low makes it more like a proximity trigger
// default value is 40 for touch
MPR121.setTouchThreshold(40);
// this is the release threshold - must ALWAYS be smaller than the touch threshold
// default value is 20 for touch
MPR121.setReleaseThreshold(20);
// initial data update
MPR121.updateTouchData();
pinMode(2, OUTPUT);
}
void loop()
{
//if(MPR121.touchStatusChanged()){
MPR121.updateTouchData();
for (int i = 0; i < numElectrodes; i++) {
if (MPR121.isNewTouch(i)) {
MPR121.updateFilteredData();
MPR121.updateBaselineData();
int filter = MPR121.getFilteredData(i);
int base = MPR121.getBaselineData(i);
Serial.println("filter - " + String(filter));
Serial.println("base - " + String(base));
Serial.print("electrode ");
Serial.print(i, DEC);
Serial.println(" was just touched");
digitalWrite(2, HIGH);
} else if (MPR121.isNewRelease(i)) {
MPR121.updateFilteredData();
MPR121.updateBaselineData();
int filter = MPR121.getFilteredData(i);
int base = MPR121.getBaselineData(i);
Serial.println("filter - " + String(filter));
Serial.println("base - " + String(base));
Serial.print("electrode ");
Serial.print(i, DEC);
Serial.println(" was just released");
digitalWrite(2, LOW);
}
}
//}
}
Comments