#include int i; unsigned int x, y; float accum, fout, fval = 0.001; // these are variables for a simple low-pass (smoothing) filter - fval of 1 = no filter - .001 = max filter long threshold = 0; const int capR = 4; const int capS = 3; const int ledPin = 0; void setup() { pinMode (capR, INPUT); pinMode (capS, OUTPUT); pinMode (ledPin, OUTPUT); for (short i = 0; i < 10; i++) { long max; y = 0; x = 0; for (short i = 0; i < 4; i++) { digitalWrite(capS, HIGH); while (!digitalRead(capR)) { x++; } delay(1); digitalWrite(capS, LOW); while(digitalRead(capR)) { y++; } delay(1); } max = (x > y ? x : y); threshold = (threshold > max ? threshold : max); } } void loop() { for (short i = 0; i < 4; i++) { digitalWrite(capS, HIGH); while (digitalRead(capR) == LOW) { x++; } delay(1); digitalWrite(capS, LOW) ; while (digitalRead(capR) == HIGH) { y++; } delay(1); fout = (fval * (float)x) + ((1-fval) * accum); accum = fout; } { digitalWrite(ledPin, HIGH); delay(x / 100); digitalWrite(ledPin, LOW); delay(x / 100); } }