 /* timer variables */
 unsigned long currentMillis;        // store the current value from millis()
 unsigned long previousMillis;       // for comparison with currentMillis
-int samplingInterval = 50;          // how often to run the main loop (in ms)
+int samplingInterval = 200;          // how often to run the main loop (in ms)
+#define MINIMUM_SAMPLE_DELAY 150
+#define ANALOG_SAMPLE_DELAY 50
+
 
 /* i2c data */
 struct i2c_device_info {

      }
      pinConfig[pin] = INPUT;
      
    }
    break;
  case OUTPUT:

        digitalWrite(PIN_TO_DIGITAL(pin), LOW); // disable internal pull-ups
      }
      pinConfig[pin] = ANALOG;
      lastAnalogReads[PIN_TO_ANALOG(pin)] = -1;
    }
    break;
  case INPUT:
