talofer99

MPR121 show values

Nov 14th, 2018
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.49 KB | None | 0 0
  1. #include <MPR121.h>
  2. #include <Wire.h>
  3.  
  4. #define numElectrodes 12
  5.  
  6. void setup()
  7. {
  8.   Serial.begin(115200);
  9.   Serial.println("System started");
  10.  
  11.   Wire.begin();
  12.  
  13.   // 0x5C is the MPR121 I2C address on the Bare Touch Board
  14.   if (!MPR121.begin(0x5A)) {
  15.     Serial.println("error setting up MPR121");
  16.     switch (MPR121.getError()) {
  17.       case NO_ERROR:
  18.         Serial.println("no error");
  19.         break;
  20.       case ADDRESS_UNKNOWN:
  21.         Serial.println("incorrect address");
  22.         break;
  23.       case READBACK_FAIL:
  24.         Serial.println("readback failure");
  25.         break;
  26.       case OVERCURRENT_FLAG:
  27.         Serial.println("overcurrent on REXT pin");
  28.         break;
  29.       case OUT_OF_RANGE:
  30.         Serial.println("electrode out of range");
  31.         break;
  32.       case NOT_INITED:
  33.         Serial.println("not initialised");
  34.         break;
  35.       default:
  36.         Serial.println("unknown error");
  37.         break;
  38.     }
  39.     while (1);
  40.   }
  41.   Serial.println("WE ARE COOL");
  42.   // pin 4 is the MPR121 interrupt on the Bare Touch Board
  43.   MPR121.setInterruptPin(4);
  44.  
  45.   // this is the touch threshold - setting it low makes it more like a proximity trigger
  46.   // default value is 40 for touch
  47.   MPR121.setTouchThreshold(40);
  48.  
  49.   // this is the release threshold - must ALWAYS be smaller than the touch threshold
  50.   // default value is 20 for touch
  51.   MPR121.setReleaseThreshold(20);
  52.  
  53.   // initial data update
  54.   MPR121.updateTouchData();
  55.  
  56.   pinMode(2, OUTPUT);
  57.  
  58. }
  59.  
  60. void loop()
  61. {
  62.   //if(MPR121.touchStatusChanged()){
  63.   MPR121.updateTouchData();
  64.  
  65.  
  66.   for (int i = 0; i < numElectrodes; i++) {
  67.  
  68.  
  69.     if (MPR121.isNewTouch(i)) {
  70.       MPR121.updateFilteredData();
  71.       MPR121.updateBaselineData();
  72.       int filter = MPR121.getFilteredData(i);
  73.       int base = MPR121.getBaselineData(i);
  74.       Serial.println("filter - " + String(filter));
  75.       Serial.println("base - " + String(base));
  76.       Serial.print("electrode ");
  77.       Serial.print(i, DEC);
  78.       Serial.println(" was just touched");
  79.       digitalWrite(2, HIGH);
  80.     } else if (MPR121.isNewRelease(i)) {
  81.       MPR121.updateFilteredData();
  82.       MPR121.updateBaselineData();
  83.       int filter = MPR121.getFilteredData(i);
  84.       int base = MPR121.getBaselineData(i);
  85.       Serial.println("filter - " + String(filter));
  86.       Serial.println("base - " + String(base));
  87.       Serial.print("electrode ");
  88.       Serial.print(i, DEC);
  89.       Serial.println(" was just released");
  90.       digitalWrite(2, LOW);
  91.     }
  92.   }
  93.  
  94.   //}
  95. }
Advertisement
Add Comment
Please, Sign In to add comment