talofer99 icon

MPR121 show values

talofer99 | PRO | 11/14/18 05:38:57 AM UTC | 0 ⭐ | 323 👁️ | Never ⏰ | []
C |

2.49 KB

|

None

|

0 👍

/

0 👎

#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