Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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);
- }
- }
- //}
- }
Advertisement
Add Comment
Please, Sign In to add comment