Advertisement
talofer99

mpr121 - on off

May 31st, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.50 KB | None | 0 0
  1. #include <MPR121.h>
  2. #include <Wire.h>
  3.  
  4. #define numElectrodes 2
  5.  
  6. #define LEDPIN 3
  7.  
  8. void setup()
  9. {
  10.   Serial.begin(115200);
  11.   Serial.println("System started");
  12.   pinMode(LEDPIN, OUTPUT);
  13.  
  14.   Wire.begin();
  15.  
  16.   // 0x5C is the MPR121 I2C address on the Bare Touch Board
  17.   if (!MPR121.begin(0x5A)) {
  18.     Serial.println("error setting up MPR121");
  19.     switch (MPR121.getError()) {
  20.       case NO_ERROR:
  21.         Serial.println("no error");
  22.         break;
  23.       case ADDRESS_UNKNOWN:
  24.         Serial.println("incorrect address");
  25.         break;
  26.       case READBACK_FAIL:
  27.         Serial.println("readback failure");
  28.         break;
  29.       case OVERCURRENT_FLAG:
  30.         Serial.println("overcurrent on REXT pin");
  31.         break;
  32.       case OUT_OF_RANGE:
  33.         Serial.println("electrode out of range");
  34.         break;
  35.       case NOT_INITED:
  36.         Serial.println("not initialised");
  37.         break;
  38.       default:
  39.         Serial.println("unknown error");
  40.         break;
  41.     }
  42.     while (1);
  43.   }
  44.  
  45.  
  46.   MPR121.setInterruptPin(4);
  47.   MPR121.setTouchThreshold(40);
  48.   MPR121.setReleaseThreshold(20);
  49.   MPR121.updateTouchData();
  50. }
  51.  
  52. void loop()
  53. {
  54.   if (MPR121.touchStatusChanged()) {
  55.     MPR121.updateTouchData();
  56.     for (int i = 0; i < numElectrodes; i++) {
  57.       if (MPR121.isNewTouch(i)) {
  58.         if (i == 0) {
  59.           digitalWrite(LEDPIN, HIGH);
  60.         }
  61.  
  62.       } else if (MPR121.isNewRelease(i)) {
  63.         if (i == 1) {
  64.           digitalWrite(LEDPIN, LOW);
  65.         }
  66.       }
  67.     }
  68.   }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement