#include #include #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); } } //} }